|
DYLAN- (Dynamic Languages) general-purpose, high-level programming
language. includes
- garbage collection,
- type-safety,
- error recovery,
- a module system, and
- a programmers control of run-time extensibility of programs.
Invented by Apple Computer.
Uses one construct for simple purposes through multi-method dispatch.
DYLAN is dynamic, anything that is not flagged constant can be changed at run-
time.It's common for a DYLAN class to start off using generic (weak) types, and
to later refine the types to be specialized (strong).
In DYLAN, methods don't belong to classes, they are basically functions,
organized into generic functions. Proponents claim that this makes adding
functionality much easier than having to modify classes or create subclasses to
add new methods.
Functions can have both positional and keyword arguments.
Doesn't enforce information hiding by class like JAVA or C++, it enforces it by
module. Modules can import, export, and re-export names, and imported names
can be mapped to different names to avoid names clashes.
Each class contains some number of slots, which hold objects. DYLAN's objects
are alot like SMALLTALK's: both have languages with "objects all the way down",
even a simple number is an instance of a class.
Supports multiple inheritance without redundantacy, to encourage a mix-in style
programming. Can descend from a base class more than once through multiple
inheritance, but will still only contain one copy of the base class.
Compiles like C++, compiler optimizes out much of the object-dispatch and
dynamic overhead that plagued SMALLTALK.
|