OBJ

from The Free On-line Dictionary of Computing (8 July 2008)
OBJ

   Joseph Goguen 1976.  A family of declarative "ultra high
   level" languages.  Abstract types, generic modules, subsorts
   (subtypes with {multiple inheritance}), pattern-matching
   modulo equations, E-strategies (user control over laziness),
   module expressions (for combining modules), theories and views
   (for describing module interfaces).  For the massively
   parallel RRM (Rewrite Rule Machine).

   ["Higher-Order Functions Considered Unnecessary for
   Higher-Order Programming", J.A. Goguen, in Research Topics in
   Functional Programming].
    

[email protected]