skip to main content
10.1145/62678acmconferencesBook PagePublication PageslfpConference Proceedingsconference-collections
LFP '88: Proceedings of the 1988 ACM conference on LISP and functional programming
ACM1988 Proceeding
Publisher:
  • Association for Computing Machinery
  • New York
  • NY
  • United States
Conference:
LISP88: Lisp & Functional Programming 88 Snowbird Utah USA July 25 - 27, 1988
ISBN:
978-0-89791-273-0
Published:
01 January 1988
Sponsors:

Bibliometrics
Abstract

No abstract available.

Article
Free
Tutorial: abstraction in numerical methods

We illustrate how the liberal use of high-order procedural abstractions and infinite streams helps us to express some of the vocabulary and methods of numerical analysis. We develop a software toolbox encapsulating the technique of Richardson ...

Article
Free
Expressing mathematical subroutines constructively

The typical subroutines that compute sin(x) and exp(x) bear little resemblance to our mathematical knowledge of these functions: they are composed of concrete arithmetic expressions that include many mysterious numerical constants. Instead of ...

Article
Free
Exact real computer arithmetic with continued fractions

We introduce a representation of the computable real numbers by continued fractions. This deals with the subtle points of undecidable comparison an integer division, as well as representing the infinite 1/0 and undefined 0/0 numbers. Two general ...

Article
Free
Parallel execution of sequential scheme with ParaTran

This paper describes a system called ParaTran for executing sequential Scheme in parallel. It supports arbitrary side effects without requiring user annotations. The ParaTran runtime system detects and corrects data dependency violations using an ...

Article
Free
Buckwheat: graph reduction on a shared-memory multiprocessor

Buckwheat is a working implementation of a functional language on the Encore Multimax multiprocessor. It is based on a heterogeneous abstract machine model consisting of both graph reduction and stack oriented execution. Buckwheat consists of two major ...

Article
Free
Abstract continuations: a mathematical semantics for handling full jumps

Continuation semantics is the traditional mathematical formalism for specifying the semantics of non-local control operations. Modern Lisp-style languages, however, contain advanced control structures like full functional jumps and control delimiters ...

Article
Free
Continuations may be unreasonable

We show that two lambda calculus terms can be observationally congruent (i.e., agree in all contexts) but their continuation-passing transforms may not be. We also show that two terms may be congruent in all untyped contexts but fail to be congruent in ...

Article
Free
λ-V-CS: an extended λ-calculus for scheme

The λ-v-CS-calculus is a conservative extension of the λ-value-calculus for reasoning about programs in Scheme-like languages. The basis of the extended calculus is a symbolic rewriting semantics for imperative programs. We show with numerous examples ...

Article
Free
Syntactic closures

In this paper we describe syntactic closures. Syntactic closures address the scoping problems that arise when writing macros. We discuss some issues raised by introducing syntactic closures into the macro expansion interface, and we compare syntactic ...

Article
Free
A variable-arity procedural interface

This paper presents a procedural interface that handles optional arguments and indefinite numbers of arguments in a convenient and efficient manner without resorting to storing the arguments in a language-dependent data structure. This interface solves ...

Article
Free
Scheme86: a system for interpreting scheme

Scheme86 is a computer system designed to interpret programs written in the Scheme dialect of Lisp. A specialized architecture, coupled with new techniques for optimizing register management in the interpreter, allow Scheme86 to execute interpreted ...

Article
Free
Implementation strategies for continuations

Scheme and Smalltalk continuations may have unlimited extent. This means that a purely stack-based implementation of continuations, as suffices for most languages, is inadequate. Several implementation strategies have been described in the literature. ...

Article
Free
An implementation of portable standard LISP on the BBN butterfly

An implementation of the Portable Standard Lisp (PSL) on the BBN Butterfly is described. Butterfly PSL is identical, syntactically and semantically, to implementations of PSL currently available on the VAX, Gould, and many 68000-based machines, except ...

Article
Free
Preliminary results with the initial implementation of Qlisp

Qlisp, a dialect, of Common Lisp, has been proposed as a multiprocessing programming language which is suitable for studying the styles of parallel programming at the medium-grain level. An initial version of Qlisp has been implemented on a ...

Article
Free
Partial polymorphic type inference and higher-order unification

We show that the problem of partial type inference in the nth-order polymorphic λ-calculus is equivalent to nth-order unification. On the one hand, this means that partial type inference in polymorphic λ-calculi of order 2 or higher is undecidable. On ...

Article
Free
Bounded quantifiers have interval models

We propose a sound model for an extension of the language Fun, proposed by L. Cardelli and P. Wegner as a formalization of the notion of inheritance in the context of higher order polymorphic functional 1anguages. The model is obtained by modifying the ...

Article
Free
Type inference in a database programming language

We extend an ML-like implicit type system to include a number of structures and operations that are common in database programming including sets, labeled records, joins and projections. We then show that the type inference problem of the system is ...

Article
Free
Type inference and semi-unification

The Milner Calculus is the typed λ-calculus underlying the type system for the programming language ML [Har86] and several other strongly typed polymorphic functional languages such as Miranda [Tur86] and SPS [Wan84]. Mycroft [Myc84] extended the ...

Article
Free
ML with extended pattern matching and subtypes

We extend a fragment of the programming language Standard ML by incorporating a more general form of record pattern matching and providing for user-declared subtypes. Together, these two enhancements may be used to support a restricted object-oriented ...

Article
Free
An implementation of standard ML modules

Standard ML includes a set of module constructs that support programming in the large. These constructs extend ML's basic polymorphic type system by introducing the dependent types of Martin Löf's Intuitionistic Type Theory. This paper discusses the ...

Article
Free
Graphinators and the duality of SIMD and MIMD

Combinator reduction is a well-known implementation technique for executing functional programs. In this paper we present a new method for parallel combinator reduction based on viewing combinators simply as “graph mutators.” We show that each ...

Article
Free
Faster combinator reduction using stock hardware
Article
Free
The spineless G-machine

Recent developments in functional language implementations have resulted in the G-machine, a programmed graph-reduction machine. Taking this as a basis, we introduce an optimised method of performing graph reduction, which does not need to build the ...

Article
Free
A simple and efficient implmentation approach for single assignment languages

Functional and single assignment languages have semantically pure features that do not permit side effects. This lack of side effects makes detection of parallelism in programs much easier. However, the same property poses a challenge in implementing ...

Article
Free
An improved replacement strategy for function caching

Function caching is the technique of remembering previous function calls and avoiding the cost of recomputing them. Function caching provides a simple way of implementing dynamic programming algorithms and can provide a facility for incremental ...

Article
Free
Object-oriented programming in scheme

We describe a small set of additions to Scheme to support object-oriented programming, including a form of multiple inheritance. The extensions proposed are in keeping with the spirit of the Scheme language and consequently differ from Lisp-based object ...

Article
Free
Objects as closures: abstract semantics of object-oriented languages

We discuss denotational semantics of object-oriented languages, using the concept of closure widely used in (semi) functional programming to encapsulate side effects. It is shown that this denotational framework is adequate to explain classes, ...

Article
Free
An open-ended data representation model for EU_LISP

The goal of this paper is to describe an open-ended type system for Lisp with explicit and full control of bit-level data representations. This description uses a reflective architecture based on a metatype facility. This low-level formalism solves the ...

Article
Free
The common Lisp object system metaobject kernel: a status report

The metaobject kernel of the Common Lisp Object System (CLOS) comprises the classes and methods that define and implement the behavior of the system. Since CLOS is an object-oriented program itself, exposing this kernel allows people to make useful ...

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

Index Terms

  1. Proceedings of the 1988 ACM conference on LISP and functional programming

    Recommendations

    Acceptance Rates

    Overall Acceptance Rate30of109submissions,28%
    YearSubmittedAcceptedRate
    LFP '941093028%
    Overall1093028%