Source : Free On-Line Dictionary of Computing
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].