skip to main content
10.1145/944705acmconferencesBook PagePublication PagesicfpConference Proceedingsconference-collections
ICFP '03: Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
ACM2003 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
ICFP03: ACM SIGPLAN International Conference on Functional Programming Uppsala Sweden August 25 - 29, 2003
ISBN:
978-1-58113-756-9
Published:
25 August 2003
Sponsors:
Next Conference
Bibliometrics
Skip Abstract Section
Abstract

This volume contains the papers presented at ICFP 2003, the Eighth ACM SIGPLAN International Conference on Functional Programming. The meeting was held on 25-27 August, 2003, in Uppsala, Sweden, as part of PLI 2003, the Colloqium on Principles, Logics, and Implementations of High-Level Programming Languages. The scope of ICFP includes all languages that encourage programming with functions, including both purely applicative and imperative languages, as well as languages that support objects and concurrency. The topics covered range from principles to practice, from foundations to features, and from abstractions to application.Ninety-five papers were submitted in response to the conference's call for papers. Each paper was reviewed by at least three members of the program committee; in many cases these reviewers also solicited external reviews from outside experts. The twenty-four papers collected in this proceedings were selected at a one and a half day meeting in Cambridge, Massachusetts; all program-committee members attended the meeting.The paper submission and reviewing process was supported by the EDAS web-management system; I am grateful to Blair MacIntyre for his assistance with this package. Martin Rinard of the MIT Laboratory for Computer Science provided the space for the program-committee meeting.

Skip Table Of Content Section
Article
Conservation of information: applications in functional, reversible, and quantum computing

Microscopic physics is entirely reversible, yet almost all computation is done using irreversible processes. Adding two numbers together, for example, destroys information, unless one of the numbers is retained. Over the past few years, some advantages ...

Article
Scripting the type inference process

To improve the quality of type error messages in functional programming languages,we propose four techniques which influence the behaviour of constraint-based type inference processes. These techniques take the form of externally supplied type inference ...

Article
Discriminative sum types locate the source of type errors

We propose a type system for locating the source of type errors in an applied lambda calculus with ML-style polymorphism. The system is based on discriminative sum types---known from work on soft typing---with annotation subtyping and recursive types. ...

Article
MLF: raising ML to the power of system F

We propose a type system MLF that generalizes ML with first-class polymorphism as in System F. Expressions may contain second-order type annotations. Every typable expression admits a principal type, which however depends on type annotations. Principal ...

Article
An extension of HM(X) with bounded existential and universal data-types

We propose a conservative extension of HM(X), a generic constraint-based type inference framework, with bounded existential (a.k.a. abstract) and universal (a.k.a. polymorphic) data-types. In the first part of the article, which remains abstract of the ...

Article
CDuce: an XML-centric general-purpose language

We present the functional language CDuce, discuss some design issues, and show its adequacy for working with XML documents. Distinctive features of CDuce are a powerful pattern matching, first class functions, overloaded functions, a very rich type ...

Article
Compiling regular patterns

Pattern matching mechanisms based on regular expressions feature in a number of recent languages for processing tree-structured data such as XML. A compiler for such a language must address not only the familiar problems of pattern optimization for ML-...

Article
Software is discrete mathematics

A three-year study collected information bearing on the question of whether studying mathematics improves programming skills. An analysis of the data revealed significant differences in the programming effectiveness of two populations of students: (1) ...

Article
Global abstraction-safe marshalling with hash types

Type abstraction is a key feature of ML-like languages for writing large programs. Marshalling is necessary for writing distributed programs, exchanging values via network byte-streams or persistent stores. In this paper we combine the two, developing ...

Article
Dynamic rebinding for marshalling and update, with destruct-time ?

Most programming languages adopt static binding, but for distributed programming an exclusive reliance on static binding is too restrictive: dynamic binding is required in various guises, for example when a marshalled value is received from the network, ...

Article
Iterative-free program analysis

Program analysis is the heart of modern compilers. Most control flow analyses are reduced to the problem of finding a fixed point in a certain transition system, and such fixed point is commonly computed through an iterative procedure that repeats ...

Article
From Hilbert space to Dilbert space: context semantics as a language for games and flow analysis

We give a tutorial and first-principles description of the context semantics of Gonthier, Abadi, and Lévy [5, 4], a computer-science analogue of Girard's geometry of interaction [3]. In the spirit of the invited presentation of Tom Knight (see this ...

Article
A theory of aspects

This paper define the semantics of MinAML, an idealized aspect-oriented programming language, by giving a type-directed translation from its user-friendly external language to its compact, well-defined core language. We argue that our framework is an ...

Article
Dependency-style generic haskell

Generic Haskell is an extension of Haskell that supports the construction of generic programs. During the development of several applications, such as an XML editor and compressor, we encountered a number of limitations with the existing (Classic) ...

Article
Functional automatic differentiation with dirac impulses

Functional Reactive Programming (FRP) is a framework for reactive programming in a functional setting. FRP has been applied to a number of domains, such as graphical animation, graphical user interfaces, robotics, and computer vision. Recently, we have ...

Article
A user-centred approach to functions in Excel

We describe extensions to the Excel spreadsheet that integrate user-defined functions into the spreadsheet grid, rather than treating them as a "bolt-on". Our first objective was to bring the benefits of additional programming language features to a ...

Article
A sound and complete axiomatization of delimited continuations

The shift and reset operators, proposed by Danvy and Filinski, are powerful control primitives for capturing delimited continuations. Delimited continuation is a similar concept as the standard (unlimited) continuation, but it represents part of the ...

Article
Call-by-value is dual to call-by-name

The rules of classical logic may be formulated in pairs corresponding to De Morgan duals: rules about & are dual to rules about V. A line of work, including that of Filinski (1989), Griffin (1990), Parigot (1992), Danos, Joinet, and Schellinx (1995), ...

Article
Disjunctive normal forms and local exceptions

All classical ?-terms typable with disjunctive normal forms are shown to share a common computational behavior: they implement a local exception handling mechanism whose exact workings depend on the tautology. Equivalent and more efficient control ...

Article
An effective theory of type refinements

We develop an explicit two level system that allows programmers to reason about the behavior of effectful programs. The first level is an ordinary ML-style type system, which confers standard properties on program behavior. The second level is a ...

Article
A static type system for JVM access control

This paper presents a static type system for JAVA Virtual Machine (JVM) code that enforces an access control mechanism similar to the one found, for example, in a JAVA implementation. In addition to verifying type consistency of a given JVM code, the ...

Article
Polish parsers, step by step

We present the derivation of a space efficient parser combinator library: the constructed parsers do not keep unnecessary references to the input, produce online results and efficiently handle ambiguous grammars. The underlying techniques can be applied ...

Article
Boxes go bananas: encoding higher-order abstract syntax with parametric polymorphism

Higher-order abstract syntax is a simple technique for implementing languages with functional programming. Object variables and binders are implemented by variables and binders in the host language. By using this technique, one can avoid implementing ...

Article
FreshML: programming with binders made simple

FreshML extends ML with elegant and practical constructs for declaring and manipulating syntactical data involving statically scoped binding operations. User-declared FreshML datatypes involving binders are concrete, in the sense that values of these ...

Article
Meta-programming through typeful code representation

By allowing the programmer to write code that can generate code at run-time, meta-programming offers a powerful approach to program construction. For instance, meta-programming can often be employed to enhance program efficiency and facilitate the ...

Article
Optimistic evaluation: an adaptive evaluation strategy for non-strict programs

Lazy programs are beautiful, but they are slow because they build many thunks. Simple measurements show that most of these thunks are unnecessary: they are in fact always evaluated, or are always cheap. In this paper we describe Optimistic Evaluation ---...

Article
Understanding aspects: extended abstract
Contributors
  • University of York
  • Epic Games, Inc.

Recommendations

Acceptance Rates

ICFP '03 Paper Acceptance Rate24of95submissions,25%Overall Acceptance Rate333of1,064submissions,31%
YearSubmittedAcceptedRate
ICFP '14852833%
ICFP '131334030%
ICFP '12883236%
ICFP '11923336%
ICFP '03952425%
ICFP '02762432%
ICFP '01662335%
ICFP '001102422%
ICFP '99812531%
ICFP '98773039%
ICFP '97782532%
ICFP '96832530%
Overall1,06433331%