Fine Control of Demand in Haskell
@inproceedings{Harrison2002FineCO, title={Fine Control of Demand in Haskell}, author={William L. Harrison and Tim Sheard and James Hook}, booktitle={MPC}, year={2002} }
Functional languages have the ?-calculus at their core, but then depart from this firm foundation by including features that alter their default evaluation order. The resulting mixed evaluation--partly lazy and partly strict--complicates the formal semantics of these languages. The functional language Haskell is such a language, with features such as pattern-matching, case expressions with guards, etc., in troducing a modicum of strictness into the otherwise lazy language. But just how does…
21 Citations
The logic of demand in Haskell
- Computer ScienceJournal of Functional Programming
- 2005
A programming logic, P-logic, is introduced, which neatly formalizes the mixed evaluation in Haskell pattern-matching as a logic, thereby simplifying the task of specifying and verifying Haskell programs.
Reflecting Demand in Programming Logics : a case study for Haskell
- Computer Science
- 2003
A programming logic, P-logic, is introduced, which neatly formalizes the mixed evaluation in Haskell pattern-matching as a logic, thereby simplifying the task of specifying and verifying Haskell programs.
Pattern-driven Reduction in Haskell
- Computer Science
- 2003
This paper provides both an abstract semantics and a logical characterization of pattern-matching in Haskell and the reduction order that it entails.
Basic Pattern Matching Calculi: Syntax, Reduction, Confluence, and Normalisation
- Computer Science
- 2003
The pattern matching calculus is a refinement of λ-calculus that integrates mechanisms appropriate for fine-grained modelling of non-strict pattern matching by embedding into expressions the separate syntactic category of matchings.
A Simple Semantics for Polymorphic Recursion
- Computer ScienceAPLAS
- 2005
The semantics reported here contribute an essential building block to any semantics of Haskell: a model for first-order polymorphic recursion.
Precise Reasoning About Non-strict Functional Programs; How to Chase Bottoms, and How to Ignore Them
- Computer Science
- 2005
This thesis consists of two parts, a case study in program verification and reasoning about non-strict functional programming languages with partial and infinite values and lifted types, including lifted function spaces, and proved that if two closed terms have the same semantics in the total language, then they have related semantics inThe partial language.
Chasing Bottoms: A Case Study in Program Verification in the Presence of Partial and Infinite Values
- Computer ScienceMPC
- 2004
This work describes a method for testing properties of programs in the presence of partial and infinite values and proves that the programs they have written are in fact (more or less) inverses using first fixpoint induction and then the approximation lemma.
Automated soundness checking of a programming logic for Haskell
- Computer Science
- 2003
The paper develops a parametricity principle for predicates of P-logic, which justifies checking soundness of polymorphic rules at a particular type instance, by implementing the Haskell semantics with a meta-circular interpreter.
Structured generic programming in Eden
- Computer Science
- 2007
This thesis presents a reduced, structure-oriented approach to generic programming tailored for Eden’s needs, and presents generic methods for partitioning data structures as well as generic versions of the parallel map function.
Bimonadic Semantics for Basic Pattern Matching Calculi
- Computer ScienceMPC
- 2006
Using lifting and Maybe monads, the authors obtain standard Haskell semantics, and by adding another level of Maybe to both, they obtain a denotational semantics of the “matching failure as exceptions” approach of Erwig and Peyton Jones.
References
SHOWING 1-10 OF 26 REFERENCES
The essence of functional programming
- Computer SciencePOPL '92
- 1992
This paper explores the use monads to structure functional programs and describes the relation between monads and the continuation-passing style in a compiler for Haskell that is written in Haskell.
Secrets of the Glasgow Haskell Compiler inliner
- Computer ScienceJournal of Functional Programming
- 2002
The purpose of this paper is to articulate the key lessons the authors learned from a full-scale “production” inliner, the one used in the Glasgow Haskell compiler, and to provide some indicative measurements to substantiate the importance of various aspects of the inliner.
Monad transformers and modular interpreters
- Computer SciencePOPL '95
- 1995
A fully modular interpreter based on monad transformers that incudes features missing from Steele's, Espinosa's, and Wadler's earlier efforts is designed and implemented in Gofer, whose constructor classes provide just the added power over Haskell's type classes to allow precise and convenient expression of the ideas.
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
- Computer Science
- 1981
A Metalanguage for Programming with Bound Names Modulo Renaming
- Computer ScienceMPC
- 2000
This paper describes work in progress on the design of an ML-style metalanguage FreshML for programming with recursively defined functions on user-defined, concrete data types whose constructors may…
Implementing Lazy Functional Languages on Stock Hardware: The Spineless Tagless G-Machine
- Computer ScienceJ. Funct. Program.
- 1992
The Spineless Tagless G-machine is an abstract machine designed to support non-strict higher-order functional languages, and the STG language is an austere but recognizably-functional language, which as well as a denotational meaning has a well-defined operational semantics.
Semantics of programming languages - structures and techniques
- Computer ScienceFoundations of computing
- 1993
Semantics of Programming Languages exposes the basic motivations and philosophy underlying the applications of semantic techniques in computer science. It introduces the mathematical theory of…
A new approach to abstract syntax involving binders
- Computer ScienceProceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158)
- 1999
It is shown that in FM-set theory one can express statements quantifying over 'fresh' names and this is used to give a novel set-theoretic interpretation of name abstraction.