1994 · 105 citations · 10 references
ComputingComputer ScienceCompilersProgramming LanguagesSyntaxAbstract Syntax TreesCompiler ConstructionFunctional ProgrammingInterpreter DesignParsingType SystemsCompositionFunction CompositionInterpretersMonadic EffectsMonadic SemanticsMonads
We exhibit a set of functions coded in Haskell that can be used as building blocks to construct a variety of interpreters for Lisp-like languages. The building blocks are joined merely through functional composition. Each building block contributes code to support a specific feature, such as numbers, continuations, functions calls, or nondeterminism. The result of composing some number of building blocks is a parser, an interpreter, and a printer that support exactly the expression forms and data types needed for the combined set of features, and no more.
10
Imperative functional programming
Simon Jones, Philip Wadler · 1993 · 1.2K citations · Full text
Report on the programming language Haskell
Paul Hudak, Simon Peyton Jones, Philip Wadler et al. · ACM SIGPLAN Notices · 1992 · 1K citations · Full text
Philip Wadler · 1989 · 776 citations
The essence of functional programming
Philip Wadler · 1992 · 676 citations · Full text
Definitional interpreters for higher-order programming languages
John Reynolds · 1972 · 668 citations