Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

A Monadic Semantics for Core Curry # Andrew Tolmach and Sergio Antoy

Summary: A Monadic Semantics for Core Curry #
Andrew Tolmach and Sergio Antoy
Dept. of Computer Science, Portland State University,
P.O.Box 751, Portland OR 97207, USA
12th Int. Workshop on Functional and (Constraint) Logic Programming (WFLP03), Valencia, Spain --- June 12­13, 2003.
Technical Report DSIC­II/13/03, Departmento de SistemÁ as y ComputatciÁ on, Universidad Polit’ ecnica de Valencia, pp. 33­46.
Abstract. We give a high­level operational semantics for the essential core of the
Curry language, including higher­order functions, call­by­need evaluation, non­
determinism, narrowing, and residuation. The semantics is structured in monadic
style, and is presented in the form of an executable interpreter written in Haskell.
1 Introduction
The functional logic language Curry combines lazy functional programming with logic
programming features based on both narrowing and residuation. Describing the seman­
tics of these features and their interaction in a common framework is a non­trivial task,
especially because functional and logic programming have rather different semantic tra­
ditions. The ``of£cial'' semantics for Curry [4], largely based on work by Hanus [6, 5],
is an operational semantics based on de£nitional trees and narrowing steps. Although
fairly low­level, this semantics says nothing about sharing behavior. Functional lan­
guages are typically given denotational or natural (``big step'') operational semantics.


Source: Antoy, Sergio - Department of Computer Science, Portland State University


Collections: Computer Technologies and Information Sciences