The Moby Programming Language
Major features
- Modules
- Moby has an ML-style module system with opaque signature matching.
Definitional specifications are used instead of sharing constraints.
- Polymorphism
- Moby supports parametric polymorphism with explicit quantification (including
bounded quantification).
Because function types are explicit in the syntax, polymorphic recursion is supported.
- Subtyping
-
Moby supports structural subtyping on object types and by-name
subtyping on tagtypes and class types.
Subtyping is extended to other type constructors in the standard ways.
- Objects
- Moby supports objects with self-application semantics.
An object type specifies the interface of an object, but not its implementation.
- Classes
- Moby supports object creation via classes.
Unlike the more complicated class mechanisms of Java and C++,
Moby's class mechanism only supports those mechanisms that are intrinsic
to classes.
We rely on the module system to support namespace management and visibility control.
- Concurrency
- Moby supports
CML-style higher-order
concurrency.
- Data constructors
- Moby supports a variety of mechanisms for defining data constructors,
including ML-style datatypes, extensible tagtypes, and abstract value constructors.
- Pattern matching
- Moby supports ML-style pattern matching for control-flow and
data deconstruction.
Last modified: August 2, 2002.
Comments to:
John Reppy