skip to main content
10.1145/317636acmconferencesBook PagePublication PagesicfpConference Proceedingsconference-collections
ICFP '99: Proceedings of the fourth ACM SIGPLAN international conference on Functional programming
ACM1999 Proceeding
  • Chairmen:
  • Didier Rémy,
  • Peter Lee
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
ICFP99: International Conference on Functional Programming Paris France September 27 - 29, 1999
ISBN:
978-1-58113-111-6
Published:
01 September 1999
Sponsors:
SIGPLAN, INRIA
Next Conference
Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
Article
Free
When is a functional program not a functional program?

In an impure functional language, there are programs whose behaviour is completely functional (in that they behave extensionally on inputs), but the functions they compute cannot be written in the purely functional fragment of the language. That is, the ...

Article
Objects, classes and modules in Objective Caml (invited lecture, abstract only)

In a programming language with procedures and assignments, it is often important to isolate uses of state to particular program fragments. The frameworks of type, region, and effect inference, and monadic state are technologies that have been used to ...

Article
Free
Monadic encapsulation in ML
Article
Free
Trampolined style

A trampolined program is organized as a single loop in which computations are scheduled and their execution allowed to proceed in discrete steps. Writing programs in trampolined style supports primitives for multithreading without language support for ...

Article
Free
From fast exponentiation to square matrices: an adventure in types

Square matrices serve as an interesting case study in functional programming. Common representations, such as lists of lists, are both inefficient---at least for access to individual elements---and error-prone, because the compiler cannot enforce "...

Article
Free
Tracing piece by piece: affordable debugging for lazy functional languages

The advantage of lazy functional languages is that programs may be written declaratively without specifying the exact evaluation order. The ensuing order of evaluation can however be quite involved which makes it difficult to debug such programs using ...

Article
Free
Atomic heap transactions and fine-grain interrupts

Languages such as Java, ML, Scheme, and Haskell provide automatic storage management, that is, garbage collection. The two fundamental operations performed on a garbage-collected heap are "allocate" and "collect." Because the heap is in an inconsistent ...

Article
Free
On embedding a microarchitectural design language within Haskell

Based on our experience with modelling and verifying microarchitectural designs within Haskell, this paper examines our use of Haskell as host for an embedded language. In particular, we highlight our use of Haskell's lazy lists, type classes, lazy ...

Article
Free
Recursion and dynamic data-structures in bounded space: towards embedded ML programming

We present a functional language with a type system such that well typed programs run within stated space-bounds. The language is a strict, first-order variant of ML with constructs for explicit storage management. The type system is a variant of Tofte ...

Article
Free
A simple proof technique for certain parametricity results

Many properties of parametric, polymorphic functions can be determined simply by inspection of their types. Such results are usually proven using Reynolds's parametricity theorem. However, Reynolds's theorem can be difficult to show in some settings, ...

Article
Free
Relating typability and expressiveness in finite-rank intersection type systems (extended abstract)

We investigate finite-rank intersection type systems, analyzing the complexity of their type inference problems and their relation to the problem of recognizing semantically equivalent terms. Intersection types allow something of type τ1 Λ &...

Article
Free
Type fixpoints: iteration vs. recursion

Positive recursive (fixpoint) types can be added to the polymorphic (Church-style) lambda calculus λ2 (System F) in several different ways, depending on the choice of the elimination operator. We compare several such definitions and we show that ...

Article
Free
Calling hell from heaven and heaven from hell

The increasing popularity of component-based programming tools offer a big opportunity to designers of advanced programming languages, such as Haskell. If we can package our programs as software components, then it is easy to integrate them into ...

Article
Free
Interlanguage working without tears: blending SML with Java

A good foreign-language interface is crucial for the success of any modern programming language implementation. Although all serious compilers for functional languages have some facility for interlanguage working, these are often limited and awkward to ...

Article
Free
Programming languages as operating systems (or revenge of the son of the lisp machine)

The MrEd virtual machine serves both as the implementation platform for the DrScheme programming environment, and as the underlying Scheme engine for executing expressions and programs entered into DrScheme's read-eval-print loop. We describe the key ...

Article
Free
Haskell and XML: generic combinators or type-based translation?

We present two complementary approaches to writing XML document-processing applications in a functional language.In the first approach, the generic tree structure of XML documents is used as the basis for the design of a library of combinators for ...

Article
Free
Type inference with rank 1 polymorphism for type-directed compilation of ML

This paper defines an extended polymorphic type system for an ML-style programming language, and develops a sound and complete type inference algorithm. Different frdm the conventional ML type discipline, the proposed type system allows full rank 1 ...

Article
Free
Type dispatch for named hierarchical types

Type dispatch constructs are an important feature of many programming languages. Scheme has predicates for testing the runtime type of a value. Java has a class cast expression and a try statement for switching on an exception's class. Crucial to these ...

Article
Free
Representing Java classes in a typed intermediate language

We propose a conservative extension of the polymorphic lambda calculus (Fω) as an intermediate language for compiling languages with name-based class and interface hierarchies. Our extension enriches standard Fω with recursive types, ...

Article
Free
Principals in programming languages: a syntactic proof technique

Programs are often structured around the idea that different pieces of code comprise distinct principals, each with a view of its environment. Typical examples include the modules of a large program, a host and its clients, or a collection of ...

Article
Free
Static interpretation of modules

This paper presents a technique for compiling Standard ML Modules into typed intermediate language fragments, which may be compiled separately and linked using traditional linking technology to form executable code. The technique is called static ...

Article
Free
Transparent modules with fully syntatic signatures

ML-style modules are valuable in the development and maintenance of large software systems, unfortunately, none of the existing languages support them in a fully satisfactory manner. The Official SML'97 Definition does not allow higher-order functors, ...

Article
Free
Flexible type analysis

Run-time type dispatch enables a variety of advanced optimization techniques for polymorphic languages, including tag-free garbage collection, unboxed function arguments, and flattened data structures. However, modern type-preserving compilers transform ...

Article
Free
Typer inference builds a short cut to deforestation

Deforestation optimises a functional program by transforming it into another one that does not create certain intermediate data structures. Short cut deforestation is a deforestation method which is based on a single, local transformation rule. In ...

Article
Free
Verification of Erlang programs using abstract interpretation and model checking

We present an approach for the verification of Erlang programs using abstract interpretation and model checking. In general model checking for temporal logics like LTL and Erlang programs is undecidable. Therefore we define a frame-work for abstract ...

Article
Free
Specialization of inductively sequential functional logic programs

Functional logic languages combine the operational principles of the most important declarative programming paradigms, namely functional and logic programming. Inductively sequential programs admit the definition of optimal computation strategies and ...

Contributors
  • INRIA Institut National de Recherche en Informatique et en Automatique

Recommendations

Acceptance Rates

ICFP '99 Paper Acceptance Rate25of81submissions,31%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%