From Esolang
Jump to: navigation, search

ALPACA is a meta-language designed by Chris Pressey sometime around 1997-1999. The name stands for A Language for Programming Arbitrary Cellular Automata.

The primary motivation for ALPACA was to have a clean and concise notation in which to describe a successor to RUBE, namely REDGREEN. However, ALPACA is capable of describing many common cellular automata. The rules for John Conway's Game of Life, for instance, can be expressed as follows:

state Dead  " "
  to Alive when 3 Alive and 5 Dead;
state Alive "*"
  to Dead when 4 Alive or 7 Dead.

ALPACA is not, as its name implies, capable of describing truly arbitrary cellular automata; they must be at most 2-dimensional, and exist in a Cartesian geometry. It is, however, capable of describing 2-dimensional cellular automata with a Moore neighbourhood, or any neighbourhood which is a subset of the Moore neighbourhood.

Computational class

ALPACA is a meta-language, and thus a direct classification of its computational power is impossible. It can, however, describe John Conway's Game of Life, which is known to be Turing-complete. It might be argued, therefore, that ALPACA is "meta Turing-complete" (that is, able to describe Turing-complete systems.)

Also, any meta-language-plus-input is equivalent to a programming language. So a trivial extension to ALPACA which turns it into a Matrioshka language (like Thue or ODDBALL) would be Turing-complete.

External resources