skip to main content
10.1145/232627acmconferencesBook PagePublication PagesicfpConference Proceedingsconference-collections
ICFP '96: Proceedings of the first ACM SIGPLAN international conference on Functional programming
ACM1996 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
ICFP96: International Conference on Functional Programming Philadelphia Pennsylvania USA May 24 - 26, 1996
ISBN:
978-0-89791-770-4
Published:
15 June 1996
Sponsors:
Next Conference
October 12 - 18, 2025
Singapore , Singapore
Reflects downloads up to 08 Mar 2025Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
Article
Free
Let-floating: moving bindings to give faster programs

Virtually every compiler performs transformations on the program it is compiling in an attempt to improve efficiency. Despite their importance, however, there have been few systematic attempts to categorise such transformations and measure their ...

Article
Free
A reflection on call-by-value

A number of compilers exploit the following strategy: translate a term to continuation-passing style (CPS) and optimize the resulting term using a sequence of reductions. Recent work suggests that an alternative strategy is superior: optimize directly ...

Article
Free
Functional back-ends within the lambda-sigma calculus

We define a weak λ-calculus, λσw, as a subsystem of the full λ-calculus with explicit substitutions λσ⇑. We claim that λσw could be the archetypal output language of functional compilers, just as ...

Article
Free
Lag, drag, void and use—heap profiling and space-efficient compilation revisited

The context for this paper is functional computation by graph reduction. Our overall aim is more efficient use of memory. The specific topic is the detection of dormant cells in the live graph --- those retained in heap memory though not actually ...

Article
Free
Static and dynamic partitioning of pointers as links and threads

Identifying some pointers as invisible threads, for the purposes of storage management, is a generalization from several widely used programming conventions, like threaded trees. The necessary invariant is that nodes that are accessible (without threads)...

Article
Free
Storage use analysis and its applications

In this paper we present a new program analysis method which we call Storage Use Analysis. This analysis deduces how objects are used by the program and allows the optimization of their allocation. This analysis can be applied to both statically typed ...

Article
Free
The role of lazy evaluation in amortized data structures

Traditional techniques for designing and analyzing amortized data structures in an imperative setting are of limited use in a functional setting because they apply only to single-threaded data structures, yet functional data structures can be non-single-...

Article
Free
Deriving structural hylomorphisms from recursive definitions

In functional programming, small programs are often glued together to construct a complex program. Program fusion is an optimizing process whereby these small programs are fused into a single one and intermediate data structures are removed. Recent work ...

Article
Free
Analysis and caching of dependencies

We address the problem of dependency analysis and caching in the context of the λ-calculus. The dependencies of a λ-term are (roughly) the parts of the λ-term that contribute to the result of evaluating it. We introduce a mechanism ...

Article
Free
Optimality and inefficiency: what isn't a cost model of the lambda calculus?

We investigate the computational efficiency of the sharing graphs of Lamping [Lam90], Gonthier, Abadi, and Lévy [GAL92], and Asperti [Asp94], designed to effect so-called optimal evaluation, with the goal of reconciling optimality, efficiency, ...

Article
Free
Inductive, coinductive, and pointed types

An extension of the simply-typed lambda calculus is presented which contains both well-structured inductive and coinductive types, and which also identifies a class of types for which general recursion is possible. The motivations for this work are ...

Article
Free
A new look at pattern matching in abstract data types

In this paper we present a construction smoothly integrating pattern matching with abstract data types. We review some previous proposals [19, 23, 20, 6, 1] and their drawbacks, and show how our proposal can solve them. In particular we pay attention to ...

Article
Free
Simplifying subtyping constraints

This paper studies type inference for a functional, ML-style language with subtyping, and focuses on the issue of simplifying inferred constraint sets. We propose a powerful notion of entailment between constraint sets, as well as an algorithm to check ...

Article
Free
Complexity of kernel Fun subtype checking

System kernel Fun is an abstract version of the system Fun defined by Cardelli's and Wegner's seminal paper [CW85], and is strictly related to system F≤. Extensions of these two systems are currently the basis of most proposals for strong type ...

Article
Free
The semantics of Scheme with future

We present the formal semantics of future in a Scheme-like language which has both side-effects and first-class continuations. Correctness is established by proving that programs annotated by future have the same observable behaviour as their non-...

Article
Free
First-class synchronization barriers

Our purpose is to promote a second-class mechanism --- the synchronization barrier --- to a first-class value. We introduce the synchron, a novel synchronization mechanism that enables the coordination of a dynamically varying set of concurrent threads ...

Article
Free
pHluid: the design of a parallel functional language implementation on workstations

This paper describes the distributed memory implementation of a shared memory parallel functional language. The language is Id, an implicitly parallel, mostly functional language that is currently evolving into a dialect of Haskell. The target is a ...

Article
Free
Cogen in six lines

We have designed and implemented a program-generator generator (PGG) for an untyped higher-order functional programming language. The program generators perform continuation-based multi-level offline specialization and thus combine the most powerful and ...

Article
Free
A probabilistic approach to the problem of automatic selection of data representations

The designs and implementations of efficient aggregate data structures have been important issues in functional programming. It is not clear how to select a good representation for an aggregate when access patterns to the aggregate are highly variant, ...

Article
Free
A theory of weak bisimulation for core CML

Concurrent ML (CML) is an extension of Standard ML of New Jersey with concurrent features similar to those of process algebra. In this papes we build upon John Reppy's reduction semantics for CML by constructing a compositional operational semantics for ...

Article
Free
A provable time and space efficient implementation of NESL

In this paper we prove time and space bounds for the implementation of the programming language NESL on various parallel machine models. NESL is a sugared typed λ-calculus with a set of array primitives and an explicit parallel map over arrays. ...

Article
Free
Synchronous Kahn networks

Synchronous data-flow is a programming paradigm which has been successfully applied in reactive systems. In this context, it can be characterized as some class of static bounded memory data-flow networks. In particular, these networks are not ...

Article
Free
Enriching the lambda calculus with contexts: toward a theory of incremental program construction

A context in the λ-calculus is a term with some holes. Hole filling differs from β-substitution in that name capture is intended. This seemingly simple feature transcends static scope and lies at the heart of modular and object-oriented ...

Article
Free
Sharing code through first-class environments

Nowadays the Net is one of the most obvious driving forces. Yet, to consider it as one global store through which values and code may be shared is still immature. This paper suggests first-class environments as a means to achieve that goal in a multi-...

Article
Free
Mixin modules

Mixin modules are proposed as a new construct for module languages, allowing recursive definitions to span module boundaries. Mixin modules are proposed specifically for the Standard ML language. Several applications are described, including the ...

Contributors
  • Carnegie Mellon University

Recommendations

Acceptance Rates

ICFP '96 Paper Acceptance Rate 25 of 83 submissions, 30%;
Overall Acceptance Rate 333 of 1,064 submissions, 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%