Home

About

Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network
FAQHELPSITE MAPCONTACT US


  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
{apt,antoy}@cs.pdx.edu
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 "official" semantics for Curry [4], largely based on work by Hanus [6, 5],
is an operational semantics based on definitional 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