skip to main content
10.1145/351240acmconferencesBook PagePublication PagesicfpConference Proceedingsconference-collections
ICFP '00: Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
ACM2000 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
ICFP00: International Conference on Functional Programming
ISBN:
978-1-58113-202-1
Published:
01 September 2000
Sponsors:
Next Conference
Bibliometrics
Abstract

No abstract available.

Skip Table Of Content Section
Article
Free
The functional guts of the Kleisli query system

Kleisli is a modern data integration system that has made a significant impact on bioinformatics data integration. The primary query language provided by Kleisli is called CPL, which is a functional query language whose surface syntax is based on the ...

Article
Free
Regular expression types for XML

We propose regular expression types as a foundation for XML processing languages. Regular expression types are a natural generalization of Document Type Definitions (DTDs), describing structures in XML documents using regular expression operators (i.e., ...

Article
Free
The influence of browsers on evaluators or, continuations to program web servers

While developing the software of a browser-operated educational CD-ROM, we had to face a number of problems. This paper presents these problems and the solutions we found. Amusingly, most of our solutions rely on continuations. Are browsers and ...

Article
Free
Static enforcement of security with types

A number of security systems for programming languages have recently appeared, including systems for enforcing some form of access control. The Java JDK 1.2 security architecture is one such system that is widely studied and used. While the architecture ...

Article
Free
Information flow inference for free

This paper shows how to systematically extend an arbitrary type system with dependency information, and how soundness and non-interference proofs for the new system may rely upon, rather than duplicate, the soundness proof of the original system. This ...

Article
Free
Type-safe cast: (functional pearl)

In a language with non-parametric or ad-hoc polymorphism, it is possible to determine the identity of a type variable at run-time. With this facility, we can write a function to convert a term from one abstract type to another, if the two hidden types ...

Article
Free
Typed compilation of inclusive subtyping

I present a type-preserving translation that eliminates subtyping and bounded quantification without introducing any run-time costs. This translation is based on Mitchell and Pierce's encoding of bounded quantification using intersection types. I show ...

Article
Free
Fully reflexive intensional type analysis

Compilers for polymorphic languages can use runtime type inspection to support advanced implementation techniques such as tagless garbage collection, polymorphic marshalling, and flattened data structures. Intensional type analysis is a type-theoretic ...

Article
Free
More types for nested data parallel programming

This paper generalises the flattening transformation---a technique for the efficient implementation of nested data parallelism---and reconciles it with main stream functional programming. Nested data parallelism is significantly more expressive and ...

Article
Free
FranTk - a declarative GUI language for Haskell

FranTk is a new high level library for programming Graphical User Interfaces (GUIs) in Haskell. It is based on Fran (Functional Reactive Animation), and uses the notions of Behaviors and Events to structure code. Behaviors are time-varying, reactive ...

Article
Free
Functional programming in C++

This paper describes FC++: a rich library supporting functional programming in C++. Prior approaches to encoding higher order functions in C++ have suffered with respect to polymorphic functions from either lack of expressiveness or high complexity. In ...

Article
Free
Advanced module systems (invited talk): a guide for the perplexed

The past three decades have seen a plethora of language features for large-scale software composition. Some of these are fairly simple, others quite sophisticated. Each embodies an implicit claim that its particular combination of features is both ...

Article
Free
Breadth-first numbering: lessons from a small exercise in algorithm design

Every programmer has blind spots. Breadth-first numbering is an interesting toy problem that exposes a blind spot common to many---perhaps most---functional programmers.

Article
Free
Make it practical: a generic linear-time algorithm for solving maximum-weightsum problems

In this paper we propose a new method for deriving a practical linear-time algorithm from the specification of a maximum-weightsum problem: From the elements of a data structure x, find a subset which satisfies a certain property p and whose weightsum ...

Article
Free
Cheap eagerness: speculative evaluation in a lazy functional language

Cheap eagerness is an optimization where cheap and safe expressions are evaluated before it is known that their values are needed. Many compilers for lazy functional languages implement this optimization, but they are limited by a lack of information ...

Article
Free
An operational semantics for parallel lazy evaluation

We present an operational semantics for parallel lazy evaluation that accurately models the parallel behaviour of the non-strict parallel functional language GpH. Parallelism is modelled synchronously, that is, single reductions are carried out ...

Article
Free
Recursive monadic bindings

Monads have become a popular tool for dealing with computational effects in Haskell for two significant reasons: equational reasoning is retained even in the presence of effects; and program modularity is enhanced by hiding "plumbing" issues inside the ...

Article
Free
Deriving backtracking monad transformers

In a paper about pretty printing J. Hughes introduced two fundamental techniques for deriving programs from their specification, where a specification consists of a signature and properties that the operations of the signature are required to satisfy. ...

Article
Free
Intersection types and computational effects

We show that standard formulations of intersection type systems are unsound in the presence of computational effects, and propose a solution similar to the value restriction for polymorphism adopted in the revised definition of Standard ML. It differs ...

Article
Free
Syntactic accidents in program analysis: on the impact of the CPS transformation

We show that a non-duplicating CPS transformation has no effect on control-flow analysis and that it has a positive effect on binding-time analysis: a monovariant control-flow analysis yields equivalent results on a direct-style program and on its CPS ...

Article
Free
Recursive subtyping revealed: (functional pearl)

Algorithms for checking subtyping between recursive types lie at the core of many programming language implementations. But the fundamental theory of these algorithms and how they relate to simpler declarative specifications is not widely understood, ...

Article
Free
The duality of computation

We present the μ -calculus, a syntax for λ-calculus + control operators exhibiting symmetries such as program/context and call-by-name/call-by-value. This calculus is derived from implicational Gentzen's sequent calculus LK, a key classical ...

Article
Free
Understanding memory allocation of scheme programs

Memory is the performance bottleneck of modern architectures. Keeping memory consumption as low as possible enables fast and unobtrusive applications. But it is not easy to estimate the memory use of programs implemented in functional languages, due to ...

Article
Free
Non-stop Haskell

We describe an efficient technique for incorporating Baker's incremental garbage collection algorithm into the Spineless Tagless G-machine on stock hardware. This algorithm eliminates the stop/go execution associated with bulk copying collection ...

Article
Free
QuickCheck: a lightweight tool for random testing of Haskell programs

Quick Check is a tool which aids the Haskell programmer in formulating and testing properties of programs. Properties are described as Haskell functions, and can be automatically tested on random input, but it is also possible to define custom test data ...

Article
Free
Composing contracts: an adventure in financial engineering (functional pearl)

Financial and insurance contracts do not sound like promising territory for functional programming and formal semantics, but in fact we have discovered that insights from programming languages bear directly on the complex subject of describing and ...

Contributors
  • The University of Edinburgh

Index Terms

  1. Proceedings of the fifth ACM SIGPLAN international conference on Functional programming

        Recommendations

        Acceptance Rates

        ICFP '00 Paper Acceptance Rate24of110submissions,22%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%