There are two kinds of reflexes in Escher:
Basis reflexes determine the basic arithmetic and data manipulation operations that Escher programs can ultimately perform, as well as external technologies that Escher programs might have access to.
There are various ways to design and implement small sets of arithmetic basis reflexes that would render circuit programs Turing-complete. We leave the design of such bases to the users of Escher, whose imagination and use cases might inform choices that we cannot predict from scratch.
We find that most Escher programs benefit from a few basic reflexes that control information flow. We have included a few in the default runtime and they are described in the following sections. These gates can be viewed as Escher's “synchronization” facilities.
Basis reflexes are also Escher's way of interacting with external technologies,
such as input/output devices. The POSIX systems is a canonical example of an
external technology and Escher has a dedicated os
faculty for it.
The most powerful feature of Escher is its recursive nature: Circuit programs
can create program circuits and materialize them into other circuit programs.
This programming pattern is enabled by the escher
faculty,
which among other things offers reflexes that materialize program circuits.