Results 1 -
2 of
2
Programming in an Integrated Functional and Logic Language
, 1999
"... Escher is a general-purpose, declarative programming language that integrates the best features of both functional and logic programming languages. It has types and modules, higher-order and meta-programming facilities, concurrency, and declarative input/output. The main design aim is to combine in ..."
Abstract
-
Cited by 63 (14 self)
- Add to MetaCart
Escher is a general-purpose, declarative programming language that integrates the best features of both functional and logic programming languages. It has types and modules, higher-order and meta-programming facilities, concurrency, and declarative input/output. The main design aim is to combine in a practical and comprehensive way the best ideas of existing functional and logic languages, such as Haskell and Godel. In fact, Escher uses the Haskell syntax and is most straightforwardly understood as an extension of Haskell. Consequently, this paper discusses Escher from this perspective. It provides an introduction to the Escher language, concentrating largely on the issue of programming style and the Escher programming idioms not provided by Haskell. Also the extra mechanisms needed to support these idioms are discussed.
Implementing the Rewriting Computational Model of Escher
- In 13th Workshop on Logic Programming (WLP'98
, 1998
"... In this paper we discuss implementation issues concerned with a new abstract machine for executing functional logic programs. This machine supports a pure rewriting computational model in the style of the programming language Escher. It is based on a simpli#ed version of the Spineless Tagless G-M ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
In this paper we discuss implementation issues concerned with a new abstract machine for executing functional logic programs. This machine supports a pure rewriting computational model in the style of the programming language Escher. It is based on a simpli#ed version of the Spineless Tagless G-Machine whichwas developed for the implementation of higher-order, lazy, purely functional languages. The simpli#cation is closer to conventional graph reduction, makes the machine model easier to modify, and is #exible enough for later optimisation. We showhow to add a representation for variables, a technique to deal with not su#ciently instantiated variable arguments in function calls and a mechanism to handle pattern matching on function symbols. We also outline how the implementation of Escher-speci#c system functions can be achieved.

