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.