Results 1 -
8 of
8
Unrolling Lists
, 1994
"... Lists are ubiquitous in functional programs, thus supporting lists efficiently is a major concern to compiler writers for functional languages. Lists are normally represented as linked cons cells, with each cons cell containing a car (the data) and a cdr (the link); this is inefficient in the use of ..."
Abstract
-
Cited by 26 (1 self)
- Add to MetaCart
Lists are ubiquitous in functional programs, thus supporting lists efficiently is a major concern to compiler writers for functional languages. Lists are normally represented as linked cons cells, with each cons cell containing a car (the data) and a cdr (the link); this is inefficient in the use of space, because 50% of the storage is used for links. Loops and recursions on lists are slow on modern machines because of the long chains of control dependences (in checking for nil) and data dependences (in fetching cdr fields). We present a data structure for "unrolled lists," where each cell has several data items (car fields) and one link (cdr). This reduces the memory used for links, and it significantly shortens the length of control-dependence and data-dependence chains in operations on lists. We further present an efficient compile-time analysis that transforms programs written for "ordinary" lists into programs on unrolled lists. The use of our new representation requires no change...
Bee: an Integrated Development Environment for the Scheme Programming Language
- Journal of Functional Programming
, 2000
"... The Bee is an integrated development environment for the Scheme programming language. It provides the user with a connection between Scheme and the C programming language, a symbolic debugger, a profiler, an interpreter, an optimizing compiler that delivers stand alone executables, a source file bro ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
The Bee is an integrated development environment for the Scheme programming language. It provides the user with a connection between Scheme and the C programming language, a symbolic debugger, a profiler, an interpreter, an optimizing compiler that delivers stand alone executables, a source file browser, a project manager, user libraries and online documentation. This article details the facilities of the Bee, its user interface and presents an overview of the implementation of its main components.
Communication Across Levels of Abstraction
"... Computer systems consist of interacting components operating at multiple levels of abstraction: processes, kernels, microprocessors—even the surrounding environment. Languages and tools for building ..."
Abstract
-
Cited by 1 (1 self)
- Add to MetaCart
Computer systems consist of interacting components operating at multiple levels of abstraction: processes, kernels, microprocessors—even the surrounding environment. Languages and tools for building
Lisp - notes On Its Past And Future - 1980
, 1999
"... LISP has survived for 21 years because it is an approximate local optimum in the space of programming languages. However, it has accumulated some barnacles that should be scraped o, and some long-standing opportunities for improvement have been neglected. It would benet from some co-operative ma ..."
Abstract
- Add to MetaCart
LISP has survived for 21 years because it is an approximate local optimum in the space of programming languages. However, it has accumulated some barnacles that should be scraped o, and some long-standing opportunities for improvement have been neglected. It would benet from some co-operative maintenance especially in creating and maintaining program libraries. Computer checked proofs of program correctness are now possible for pure LISP and some extensions, but more theory and some smoothing of the language itself are required before we can take full advantage of LISP's mathematical basis. 1999 note: This article was included in the 1980 Lisp conference held at Stanford. Since it almost entirely corresponds to my present opinions, I should have asked to have it reprinted in the 1998 Lisp users conference proceedings at which I gave a talk with the same title. 1 1 Introduction On LISP's approximate 21st anniversary, no doubt something could be said about coming of ag...
lvIASS/XCIt USI'ITS INSTITUTI-:. OF TECI-lNOI.OGY
"... Many loops can be more easily understood and manipulated if they are viewed as being built up out of operations on sequences of values. A notation is introduced which makes this viewpoint explicit. Using it, loops can be represented as compositions of functions operating on sequences of values. A li ..."
Abstract
- Add to MetaCart
Many loops can be more easily understood and manipulated if they are viewed as being built up out of operations on sequences of values. A notation is introduced which makes this viewpoint explicit. Using it, loops can be represented as compositions of functions operating on sequences of values. A library of standard sequence functions is provided along with facilities for defining additional ones. The notation is not intended to be applicable to every kind of loop. Rather, it has been simplified wherever possible so that straightforward loops can be represented extremely easily. The expressional form of the notation makes it possible to construct and modify such loops rapidly and accurately. The implementation of the notation does not actually use sequences but rather compiles loop expressions into iterative loop code. As a result, using the notation leads to no reduction in run thne efficiency.
The Semsyn Generation System:
- In Proceedings of the Second Conference on Applied Natural Language Processing, ACL
, 1988
"... We report about the current status of the SEM- SYN generation system. This system - initially implemented within a Japanese to German MT project - has been applied to a variety of generation tasks both within MT and text generation. We will work out how these applications enhanced the system's capac ..."
Abstract
- Add to MetaCart
We report about the current status of the SEM- SYN generation system. This system - initially implemented within a Japanese to German MT project - has been applied to a variety of generation tasks both within MT and text generation. We will work out how these applications enhanced the system's capacities. In addition to the paper we will give a demo of both the German and a recently implemented English version of the system.
The EIGHT Manual: A System for Geometric Modelling and Three-Dimensional Graphics on the Lisp Machine
, 1984
"... Abstract. We describe a simple geometric modelling system called Eight which supports interactive creation, editing, and display of three-dimensional polyhedral solids. Perspective views of a polyhedral environment may be generated, and hidden surfaces removed. Eight proved useful for creating world ..."
Abstract
- Add to MetaCart
Abstract. We describe a simple geometric modelling system called Eight which supports interactive creation, editing, and display of three-dimensional polyhedral solids. Perspective views of a polyhedral environment may be generated, and hidden surfaces removed. Eight proved useful for creating world models, and as an underlying system for modelling object interactions in robotics research and applications. It is documented here in order to make the facility available to other members of the Artificial Intelligence Laboratory. A.I. Laboratory Working Papers are produced for internal circulation, and may contain information that is, for example, too preliminary or too detailed for formal publication. It is riot intended that they should be considered papers to which reference can be made in the literature. @ Massactusctts Institute of Technology, 1984. Acknowledgements. Philippe Brou wrote the Dover program, which may be used to send the graphics produced by Eight to the Dover printer. John Canny helped write part of the polyhedral intersection facility. This manual was written, and Eight was revised, while the author was sponsored research staff at the A.I. Lab.

