1999 · 76 citations · 0 references
ComputingComputer ScienceFormal MethodsProgramming LanguagesTheory Of ComputationFunctional ModelingFunctional ProgrammingFunctional SyntaxLogic ProgrammingPredicate LogicProgramming Language ImplementationComputational LogicFirst-order Logic ProgrammingFunctional Language DesignFunctional Modeling NotationsFunctional Software Design
Escher is a general-purpose, declarative programming language which 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. 1 Introduction Escher 1 is a general-purpose, declarative programming language which integrates the best features of both functional and logic programming language...