OBJ (programming language): Difference between revisions

Content deleted Content added
m Add links, categories, etc.
 
(40 intermediate revisions by 27 users not shown)
Line 1:
'''OBJ''' is a [[programming language]] family introduced by [[Joseph Goguen]] in 1976, and further worked on by [[1976Jose Meseguer]].
 
==Overview==
AIt is a family of [[declarative programming|declarative]] "ultra high-level" languages. It features [[abstractAbstract data type|Abstractabstract types]], [[generic module|generic modules]]s, [[subsort|subsorts]]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|module interfaces]]s). Forfor the massively parallel RRM ([[Rewriterewrite Rulerule Machinemachine]]).<ref name="foldoc">{{foldoc|OBJ}}</ref>
Important membersMembers of the OBJ family of languages include [[CafeOBJ]], [[Eqlog]], [[FOOPS]], [[Kumo (OBJ)|Kumo]], [[Maude (OBJ)system|Maude]], [[OBJ2]], and [[OBJ3]].<ref>[https://cseweb.ucsd.edu/~goguen/sys/obj.html The OBJ family]</ref>
 
==OBJ2<!--'OBJ2' redirects here-->==
Important members of the OBJ family of languages include [[CafeOBJ]], [[Eqlog]], [[FOOPS]], [[Kumo (OBJ)|Kumo]], [[Maude (OBJ)|Maude]] and [[OBJ3]].
 
'''OBJ2''' is a [[programming language]] with [[Clear (specification language)|Clear]]-like parametrised modules and a functional system based on equations.
 
==OBJ3<!--'OBJ3' redirects here-->==
'''OBJ3'''<!--boldface per WP:R#PLA--> is a version of OBJ based on [[Order theory|order]]-sorted [[rewriting]]. OBJ3 is [[Intelligent agent|agent]]-oriented and runs on [[Kyoto Common Lisp]] AKCL.
 
==See also==
 
* [[Automated theorem proving]]
* [[FunctionalComparison of programming languages]]
* [[Formal methods]]
* [[Functional programming]]
 
==Reference==
 
* ''Higher-Order Functions Considered Unnecessary for Higher-Order Programming'', J.A. Goguen, in ''Research Topics in Functional Programming''.
 
==References==
{{Reflist}}
* ''J. A. Goguen, [http://cseweb.ucsd.edu/~goguen/pps/utyop.ps Higher-Order Functions Considered Unnecessary for Higher-Order Programming'', J.A]. Goguen, inIn ''Research Topics in Functional Programming'' (June 1990). pp. 309–351.
*"Principles of OBJ2", K. Futatsugi et al., 12th POPL, ACM 1985, pp.&nbsp;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]
*[httphttps://www.cscseweb.ucsd.edu/users/~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]]
*[http://vl.fmnet.info/obj/ The OBJ archive]
*[http://www.cs.ucsd.edu/users/goguen/sys/obj.html The OBJ family]
 
{{FOLDOC}}
 
[[Category:Formal methods]]
[[Category:Functional languages]]
[[Category:Logic in computer science]]
[[Category:ProgrammingFormal specification languages]]
[[Category:SpecificationTheorem languagesproving software systems]]
[[Category:TheoremTerm-rewriting proversprogramming languages]]
 
{{compu-lang-stub}}
{{compu-soft-stub}}