OBJ (programming language): Difference between revisions
Comparison of programming languages added in see also. |
imported>Kvng foldoc attribution Template_talk:FOLDOC#It_doesn't_matter_whether_readers_care |
||
| Line 2: | Line 2: | ||
==Overview== | ==Overview== | ||
It is a family of [[declarative programming|declarative]] "ultra high-level" languages. It features [[Abstract data type|abstract types]], [[generic module]]s, [[subsort]]s (subtypes with [[multiple inheritance]]), [[pattern matching|pattern-matching]] modulo equations, E-strategies (user control over [[lazy evaluation|laziness]]), module expressions (for combining modules), theories and views (for describing [[module interface]]s) for the massively parallel RRM ([[rewrite rule machine]]). | It is a family of [[declarative programming|declarative]] "ultra high-level" languages. It features [[Abstract data type|abstract types]], [[generic module]]s, [[subsort]]s (subtypes with [[multiple inheritance]]), [[pattern matching|pattern-matching]] modulo equations, E-strategies (user control over [[lazy evaluation|laziness]]), module expressions (for combining modules), theories and views (for describing [[module interface]]s) for the massively parallel RRM ([[rewrite rule machine]]).<ref name="foldoc">{{foldoc|OBJ}}</ref> | ||
Members of the OBJ family of languages include [[CafeOBJ]], [[Eqlog]], [[FOOPS]], [[Kumo (OBJ)|Kumo]], [[Maude system|Maude]], [[OBJ2]], and [[OBJ3]].<ref>[https://cseweb.ucsd.edu/~goguen/sys/obj.html The OBJ family]</ref> | Members of the OBJ family of languages include [[CafeOBJ]], [[Eqlog]], [[FOOPS]], [[Kumo (OBJ)|Kumo]], [[Maude system|Maude]], [[OBJ2]], and [[OBJ3]].<ref>[https://cseweb.ucsd.edu/~goguen/sys/obj.html The OBJ family]</ref> | ||
| Line 35: | Line 35: | ||
[[Category:Theorem proving software systems]] | [[Category:Theorem proving software systems]] | ||
[[Category:Term-rewriting programming languages]] | [[Category:Term-rewriting programming languages]] | ||
{{compu-lang-stub}} | {{compu-lang-stub}} | ||
Latest revision as of 16:21, 6 August 2025
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).[1]
Members of the OBJ family of languages include CafeOBJ, Eqlog, FOOPS, Kumo, Maude, OBJ2, and OBJ3.[2]
OBJ2
OBJ2 is a programming language with Clear-like parametrised modules and a functional system based on equations.
OBJ3
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
<templatestyles src="Reflist/styles.css" />
Script error: No such module "Check for unknown parameters".
- J. A. Goguen, 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.
- Script error: No such module "citation/CS1".
External links
- REDIRECT Template:Prog-lang-stub