OBJ (programming language)
OBJ is a programming language family introduced by Joseph Goguen in 1976, and further worked on by Jose Meseguer.
Overview
It is a family of declarative "ultra high-level" languages. It features 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).
Members of the OBJ family of languages include CafeOBJ, Eqlog, FOOPS, Kumo, Maude, OBJ2, and OBJ3.[https://cseweb.ucsd.edu/~goguen/sys/obj.html The OBJ family]
OBJ2<!--'OBJ2' redirects here-->
OBJ2 is a programming language with Clear-like parametrised modules and a functional system based on equations.
OBJ3<!--'OBJ3' redirects here-->
OBJ3 is a version of OBJ based on order-sorted rewriting. OBJ3 is agent-oriented and runs on Kyoto Common Lisp AKCL.
See also
References
{{Reflist}}
- J. A. Goguen, [http://cseweb.ucsd.edu/~goguen/pps/utyop.ps Higher-Order Functions Considered Unnecessary for Higher-Order Programming]. In Research Topics in Functional Programming (June 1990). pp. 309–351.
- "Principles of OBJ2", K. Futatsugi et al., 12th POPL, ACM 1985, pp. 52–66.
- {{citation |last1=J. A. Goguen |last2=T. Winkler |last3=J. Meseguer |last4=K. Futatsugi |last5=J.-P. Jouannaud |chapter=Introducing OBJ | title=Software Engineering with OBJ: Algebraic Specification in Action |editor-last1=J. A. Goguen |editor-last2=G. Malcolm |date=2000 |publisher=Springer Science+Business Media, New York, NY |pages=3–167 |isbn=978-1-4757-6541-0}}
External links
- [https://web.archive.org/web/20051028140059/http://vl.fmnet.info/obj/ The OBJ archive]
- [https://cseweb.ucsd.edu/~goguen/sys/obj.html The OBJ family]
- [https://www-cse.ucsd.edu/~goguen/pps/iobj.ps Information and OBJ3 manual], PostScript format
Category:Academic programming languages
Category:Logic in computer science
Category:Formal specification languages
Category:Theorem proving software systems
Category:Term-rewriting programming languages
{{compu-lang-stub}}