Cabra

From Esolang
Jump to: navigation, search

Cabra is a formal "programming" language, the set of whose programs form an algebraic dioid (an idempotent semiring) under the operations of sequential composition (considered multiplicative) and parallel composition (considered additive), over the equivalence relation "computes the same function". Cabra was designed by Chris Pressey in 2007.

The fact that Cabra programs form an idempotent semiring means that they have some of the same properties as mathematical structures such as lattices. For example, it is sensical to take the max() or min() of a set of Cabra programs.

Despite a persistent "programming" motif (Cabra programs contain imperative updates, conditionals, and can fail to terminate,) Cabra is nowhere near Turing-complete, nor suitable for any serious programming. In fact, Cabra is not even equivalent to finite-state machines, since it cannot properly loop.

See also

External resources