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=== |