Category:CafeOBJ: Difference between revisions

Content added Content deleted
Line 2: Line 2:
==Basic Information==
==Basic Information==
CafeOBJ is a algebraic specification language.
CafeOBJ is a algebraic specification language.
It has an executable sub-language which is broadly similar to Haskell or ML.
It has an executable sub-language which is broadly similar to a first order subset Haskell or ML. CafeOBJ has many advanced features including: multiple logics, flexible mix-fix syntax, powerful and clear typing system with ordered sorts, parametric modules and views for instantiating the parameters, and module expressions, and more.
CafeOBJ has many advanced features including: multiple logics, flexible mix-fix syntax, powerful and clear typing system with ordered sorts, parametric modules and views for instantiating the parameters, and module expressions, and more.
CafeOBJ is primarily a first order specification language which can also be used as a functional programming language. Being first order, there are no higher order functions such as map. Higher order functions can be simulated to some degree using paramterized modules. CafeOBJ includes a minimal library of basic types such as natural numbers, integers, floating point number, and character strings.
CafeOBJ is primarily a first order specification language which can also be used as a functional programming language. Being first order, there are no higher order functions such as map. Higher order functions can be simulated to some degree using paramterized modules. CafeOBJ includes a minimal library of basic types such as natural numbers, integers, floating point number, and character strings.
There are no libraries for arrays, lists, trees, or graphs, hence the user written list below. Many of CafeOBJ features are inherited from [http://en.wikipedia.org/wiki/OBJ3 OBJ3]
There are no libraries for arrays, lists, trees, or graphs, hence the user written list below. Many of CafeOBJ features are inherited from [http://en.wikipedia.org/wiki/OBJ3 OBJ3]
Line 10: Line 9:
[https://cafeobj.org/intro/en/ Introduction] ,
[https://cafeobj.org/intro/en/ Introduction] ,
[https://www.preining.info/blog/2018/04/specification-and-verification-of-software-with-cafeobj-part-1-introducing-cafeobj/ Tutorial]
[https://www.preining.info/blog/2018/04/specification-and-verification-of-software-with-cafeobj-part-1-introducing-cafeobj/ Tutorial]
[http://www.jaist.ac.jp/~ogata/lecture/i217/ Lectures] ,
[http://www.jaist.ac.jp/~ogata/lecture/i217/ Lectures].
[https://www.youtube.com/watch?v=x9EImMXN6Rk Video-1] ,


===Examples===
===Examples===