Escher



Designed by: J.W. Lloyd


Escher (named for M.

C.

Escher, “a master of endless loops”) is a declarative programming language that supports both functional programming and logic programming models, developed by J.W. Lloyd in the mid-1990s.

It was designed mostly as a research and teaching vehicle.

The basic view of programming exhibited by Escher and related languages is that a program is a representation of a theory in some logic framework, and the program’s execution (computation) is a deduction from the theory.

The logic framework for Escher is Alonzo Church’s simple theory of types.

Apart from that, there are also a lot of web development languages available and used popularly by web developers.

Escher, notably, supports I/O through a monadic type representing the “outside world” in the style of Haskell.

One of the goals of Escher’s designers was to support meta-programming, and so the language has comprehensive support for generating and transforming programs.