ScienceDirect® Home Skip Main Navigation Links
You have guest access to ScienceDirect. Find out more.
 
Home
Browse
My Settings
Alerts
Help
 Quick Search
 Search tips (Opens new window)
    Clear all fields    
Theoretical Computer Science
Volume 388, Issues 1-3, 5 December 2007, Pages 290-318
 
Font Size: Decrease Font Size  Increase Font Size
 Abstract - selected
Purchase PDF (636 K)

  E-mail Article   
  Add to my Quick Links   
Bookmark and share in 2collab (opens in new window)
Request permission to reuse this article
  Cited By in Scopus (0)
 
 
 
Related Articles in ScienceDirect
View More Related Articles
 
View Record in Scopus
 
doi:10.1016/j.tcs.2007.09.014    How to Cite or Link Using DOI (Opens New Window)
Copyright © 2007 Elsevier Ltd All rights reserved.

Selective strictness and parametricity in structural operational semantics, inequationally

Janis Voigtländera, Corresponding Author Contact Information, E-mail The Corresponding Author and Patricia Johannb, E-mail The Corresponding Author

aInstitut für Theoretische Informatik, Technische Universität Dresden, 01062 Dresden, Germany bDepartment of Computer Science, Rutgers University, Camden, NJ 08102, USA

Received 8 June 2006; 
revised 2 February 2007; 
accepted 16 September 2007. 
Communicated by F. Pfenning. 
Available online 21 September 2007.

Purchase the full-text article



References and further reading may be available for this article. To view references and further reading you must purchase this article.

Abstract

Parametric polymorphism constrains the behavior of pure functional programs in a way that allows the derivation of interesting theorems about them solely from their types, i.e., virtually for free. The formal background of such ‘free theorems’ is well developed for extensions of the Girard–Reynolds polymorphic lambda calculus by algebraic datatypes and general recursion, provided the resulting calculus is endowed with either a purely strict or a purely nonstrict semantics. But modern functional languages like Clean and Haskell, while using nonstrict evaluation by default, also provide means to enforce strict evaluation of subcomputations at will. The resulting selective strictness gives the advanced programmer explicit control over evaluation order, but is not without semantic consequences: it breaks standard parametricity results. This paper develops an operational semantics for a core calculus supporting all the language features emphasized above. Its main achievement is the characterization of observational approximation with respect to this operational semantics via a carefully constructed logical relation. This establishes the formal basis for new parametricity results, as illustrated by several example applications, including the first complete correctness proof for short cut fusion in the presence of selective strictness. The focus on observational approximation, rather than equivalence, allows a finer-grained analysis of computational behavior in the presence of selective strictness than would be possible with observational equivalence alone.

Keywords: Clean; Haskell; Extensionality principles; Fixpoint recursion; Functional programming languages; Identity extension; Lambda calculus; Logical relations; Mixing strict and nonstrict semantics; Parametric polymorphism; Program transformations; View the MathML source; Short cut fusion; Theorems for free; Types


Theoretical Computer Science
Volume 388, Issues 1-3, 5 December 2007, Pages 290-318
 
Home
Browse
My Settings
Alerts
Help
Elsevier.com (Opens new window)
About ScienceDirect  |  Contact Us  |  Information for Advertisers  |  Terms & Conditions  |  Privacy Policy
Copyright © 2008 Elsevier B.V. All rights reserved. ScienceDirect® is a registered trademark of Elsevier B.V.