Category:CafeOBJ: Difference between revisions

Line 2:
==Basic Information==
CafeOBJ is a algebraic specification language.
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.
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 ⟶ 9:
[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]
[http://www.jaist.ac.jp/~ogata/lecture/i217/ Lectures] ,.
[https://www.youtube.com/watch?v=x9EImMXN6Rk Video-1] ,
 
===Examples===
101

edits