Welcome to the Dictionary of Programming Languages, a compendium
of computer coding methods assembled to provide information and
aid your appreciation for computer science history.
Browse the dictionary by clicking on a section:
Get a full dump of the dictionary:
List of Names
- Language type:
F - Functional or lambda-based
Escher is a declarative programming language
that supports both functional programming
and logic programming models. It was
designed mostly as a research and teaching
The basic view of programming exhibited by
Escher and related languages is the 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.
data types defined for Escher include:
booleans, integers, characters, and
program elements (such as functions).
Other data types provided by the base
language are strings, sets, and lists.
Real numbers are apparently not supported.
Like most declarative languages, Escher
supports declarations of data relationships
and rules, which imply various computations
during program execution.
Escher supports I/O through a monadic type
representing the 'outside world'. This is
more-or-less conventional for modern
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.
J.W. Lloyd, University of Bristol, 1995.
- See Also:
Basically, Escher is still a work in
progress. The initial implementation is not
- Sample code:
A simple example from J.W. Lloyd's 1995 paper:
FUNCTION Jane, Mary, John: One -> Person.
FUNCTION Mother : Person * Person -> Boolean.
x=Jane & y=Mary.
FUNCTION Wife : Person * Person -> Boolean.
x=John & y=Jane.
FUNCTION PrimitiveRel : (Person * Person -> Boolean) -> Boolean.
r=Mother \/ r=Wife.
FUNCTION Rel : (Person * Person -> Boolean) -> Boolean.
(r = LAMBDA [u] (SOME [z] (r1(Fst(u),z) & r2(z,Snd(u)))) &
PrimitiveRel(r1) & PrimitiveRel(r2))).
Descriptions in this dictionary are ©1997-99 Neal Ziring. Some
examples copyright of their respective authors. Some
technologies and languages are trademarked. Permission to
copy descriptions is granted as long as authorship credit is preserved.
Comments on this dictionary, corrections and suggestions, are all welcome.
Please use email, the address is firstname.lastname@example.org
[Ziring MicroWeb Home]
Dictionary and script maintained by Neal Ziring, last major modifications 3/18/98. Most recent
additions to dictionary and master list, 1/00.