skip to main content
10.1145/258948acmconferencesBook PagePublication PagesicfpConference Proceedingsconference-collections
ICFP '97: Proceedings of the second ACM SIGPLAN international conference on Functional programming
ACM1997 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
ICFP97: International Conference on Functional Programming 1997 Amsterdam The Netherlands June 9 - 11, 1997
ISBN:
978-0-89791-918-0
Published:
01 August 1997
Sponsors:
SIGPLAN, IFIP WG 2.8
Next Conference
October 12 - 18, 2025
Singapore , Singapore
Reflects downloads up to 08 Mar 2025Bibliometrics
Abstract

No abstract available.

Article
Free
A modular, polyvariant and type-based closure analysis

We observe that the principal typing property of a type system is the enabling technology for modularity and separate compilation [10]. We use this technology to formulate a modular and polyvariant closure analysis, based on the rank 2 intersection ...

Article
Free
Strongly typed flow-directed representation transformations (extended abstract)

We present a new framework for transforming data representations in a strongly typed intermediate language. Our method allows both value producers (sources) and value consumers (sinks) to support multiple representations, automatically inserting any ...

Article
Free
Type-driven defunctionalization

In 1972, Reynolds outlined a general method for eliminating functional arguments known as defunctionalization. The idea underlying defunctionalization is encoding a functional value as first-order data, and then realizing the applications of the encoded ...

Article
Free
Systematic realisation of control flow analyses for CML

We present a methodology for the systematic realisation of control flow analyses and illustrate it for Concurrent ML. We start with an abstract specification of the analysis that is next proved semantically sound with respect to a traditional small-step ...

Article
Free
Functional programming with graphs

Graph algorithms expressed in functional languages often suffer from their inherited imperative, state-based style. In particular, this impedes formal program manipulation. We show how to model persistent graphs in functional languages by graph ...

Article
Free
Catenable double-ended queues

Catenable double-ended queues are double-ended queues (deques) that support catenation (i.e., append) efficiently without sacrificing the efficiency of other operations. We present a purely functional implementation of catenable deques for which every ...

Article
Free
Statically checkable pattern abstractions

Pattern abstractions increase the expressiveness of pattern matthing, enabling the programmer to describe a broader class of regular forests with patterns. Furthermore, pattern abstractions support code reuse and code factoring, features that facilitate ...

Article
Free
Flexible representation analysis

Statically typed languages with Hindley-Milner polymorphism have long been compiled using inefficient and fully boxed data representations. Recently, several new compilation methods have been proposed to support more efficient and unboxed multi-word ...

Article
Free
The effectiveness of flow analysis for inlining

An interprocedural flow analysis can justify inlining in higher-order languages. In principle, more inlining can be performed as analysis accuracy improves. This paper compares four flow analyses to determine how effectively they justify inlining in ...

Article
Free
Lambda-splitting: a higher-order approach to cross-module optimizations

We describe an algorithm for automatic inline expansion across module boundaries that works in the presence of higher-order functions and free variables; it rearranges bindings and scopes as necessary to move nonexpansive code from one module to ...

Article
Free
Foundations for the implementation of higher-order subtyping

We show how to implement a calculus with higher-order subtyping and subkinding by replacing uses of implicit subsumption with explicit coercions. To ensure this can be done, a polymorphic function is adjusted to take, as an additional argument, a proof ...

Article
Free
A practical subtyping system for Erlang

We present a type system for the programming language Erlang. The type system supports subtyping and declaration-free recursive types, using subtyping constraints. Our system is similar to one explored by Aiken and Wimmers, though it sacrifices ...

Article
Free
On the complexity of set-based analysis

We define a general notion of set-based analysis --- any language whose operational semantics is defined by environment evaluation has a well defined set-based abstraction. This general definition covers both Aiken and Wimmers' type system and Heintze' ...

Article
Free
Tupling calculation eliminates multiple data traversals

Tupling is a well-known transformation tactic to obtain new efficient recursive functions by grouping some recursive functions into a tuple. It may be applied to eliminate multiple traversals over the common data structure. The major difficulty in ...

Article
Free
A bounds inference method for vector-based memoization

The dynamic-sized tabulation method can be used to eliminate redundant calls for certain classes of recursive programs. An innovative aspect of the method is the use of lambda abstractions that may subsequently be converted to bounded vectors, in order ...

Article
Free
On global dynamics of optimal graph reduction

Optimal graph reduction technology for the λ-calculus, as developed by Lamping, with modifications by Asperti, Gonthier, Abadl, and Lévy, has a well-understood local dynamics based on a standard menagerie of reduction rules, as well as a ...

Article
Free
The development of Erlang

This paper describes the development of the programming language Erlang during the period 1985--1997.Erlang is a concurrent programming language designed for programming large-scale distributed soft real-time control applications.The design of Erlang ...

Article
Free
Type specialisation for imperative languages

We extend type specialisation to a computational lambda calculus with first-class references. The resulting specialiser has been used to specialise a self-interpreter for this typed computational lambda calculus optimally. Furthermore, this specialiser ...

Article
Free
Compositional references for stateful functional programming

We introduce the notion of compositional references into the framework of monadic functional programming and propose a set of new primitives based on this notion. They enable us to use a wide range of mutable data structures. There, references may be ...

Article
Free
Monadic state: axiomatization and type safety

Type safety of imperative programs is an area fraught with difficulty and requiring great care. The SML solution to the problem, originally involving imperative type variables, has been recently simplified to the syntactic-value restriction. In Haskell, ...

Article
Free
Implementing bit-addressing with specialization

General media-processing programs are easily expressed with bit-addressing and variable-sized bit-fields. But the natural implementation of bit-addressing relies on dynamic shift offsets and repeated loads, resulting in slow execution. If the code is ...

Article
Free
Structuring graphical paradigms in TkGofer

In this paper we describe the implementation of several graphical programming paradigms (Model View Controller, Fudgets, and Functional Animations) using the GUI library TkGofer. This library relies on a combination of monads and multiple-parameter type ...

Article
Free
Functional reactive animation

Fran (Functional Reactive Animation) is a collection of data types and functions for composing richly interactive, multimedia animations. The key ideas in Fran are its notions of behaviors and events. Behaviors are time-varying, reactive values, while ...

Article
Free
Automatic management of operating-system resources

One of the attractive features of functional programming languages is that they provide automatic management of the store, in the form of garbage collection. However, the benefits of automatic resource management can be applied to other resources as ...

Article
Free
Formal models of distributed memory management

We develop am abstract model of memory management in distributed systems. The model is low-level enough so that we can express communication, allocation and garbage collection, but otherwise hides many of the lower-level details of an actual ...

Article
Free
The measured cost of copying garbage collection mechanisms

We examine the costs and benefits of a variety of copying garbage collection (GC) mechanisms across multiple architectures and programming languages. Our study covers both low-level object representation and copying issues as well as the mechanisms ...

Article
Free
Article
Free
Graphs in compilation (poster)
Article
Free
Article
Free
Affordable dynamic types (poster)
Contributors
  • Epic Games, Inc.
  • IT University of Copenhagen
  • Rowan University

Recommendations

Acceptance Rates

ICFP '97 Paper Acceptance Rate 25 of 78 submissions, 32%;
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%