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