Results 1 -
7 of
7
Intensions and Extensions in a Reflective Tower
- In Proceedings of the 1988 ACM Conference on LISP and Functional Programming
, 1988
"... This article presents a model of the reflective tower based on the formal semantics of its levels. They are related extensionally by their mutual interpretation and intensionally by reification and reflection. The key points obtained here are: a formal relation between the semantic domains of each ..."
Abstract
-
Cited by 35 (7 self)
- Add to MetaCart
This article presents a model of the reflective tower based on the formal semantics of its levels. They are related extensionally by their mutual interpretation and intensionally by reification and reflection. The key points obtained here are: a formal relation between the semantic domains of each level; a formal identification of reification and reflection; the visualisation of intensional snapshots of a tower of interpreters; a formal justification and a generalization of Brown's meta-continuation; a (structural) denotational semantics for a compositional subset of the model; the distinction between making continuations jumpy and pushy; the discovery of the tail-reflection property; and a Scheme implementation of a properly tail-reflective and single-threaded reflective tower. Section 1 presents the new approach taken here: rather than implementing reification and reflection leading to a tower, we consider an infinite tower described by the semantics of each level and relate these ...
Research Demonstration of a Hardware Reference-Counting Heap
, 1997
"... A hardware self-managing heap memory (RCM) for languages like LISP, SMALLTALK, and JAVA has been designed, built, tested and benchmarked. On every pointer write from the processor, reference-counting transactions are performed in real time within this memory, and garbage cells are reused without pro ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
A hardware self-managing heap memory (RCM) for languages like LISP, SMALLTALK, and JAVA has been designed, built, tested and benchmarked. On every pointer write from the processor, reference-counting transactions are performed in real time within this memory, and garbage cells are reused without processor cycles. A processor allocates new nodes simply by reading from a distinguished location in its address space. The memory hardware also incorporates support for off-line, multiprocessing, mark-sweep garbage collection. Performance statistics are presented from a partial implementation of SCHEME over five different memory models and two garbage collection strategies, from main memory (no access to RCM) to a fully operational RCM installed on an external bus. The performance of the RCM memory is more than competitive with main memory.
Incorporating an Object-Oriented Programming Language into the First Year of a Software Engineering Education
"... The paper describes how the object-oriented implementation language C++ has been incorporated into the first year of the software engineering curriculum in the School of Computer Science and Computer Engineering at La Trobe University. The reasons for choosing an object-oriented language are discuss ..."
Abstract
- Add to MetaCart
The paper describes how the object-oriented implementation language C++ has been incorporated into the first year of the software engineering curriculum in the School of Computer Science and Computer Engineering at La Trobe University. The reasons for choosing an object-oriented language are discussed, as well as the reasons for selecting C++ in particular. A revised course structure is presented that is based on an exercise in evaluating both the strengths and weaknesses of C++ as a first-year language. The resulting course structure will provide a better framework of learning for software engineering students. 1 Introduction Learning to program is an essential part of a software engineering education. The choice of first language is crucial because of the relationship between language and thought. The first language gives the students a vehicle for thinking about programming and so affects the way students program[1][2]. This paper describes how an object-oriented programming langua...
Research Demonstration of a Hardware Reference-Counting Heap
, 1994
"... A hardware self-managing heap memory (RCM) for languages like LISP, SMALLTALK, and JAVA has been designed, built, tested and benchmarked. On every pointer write from the processor, reference-counting transactions are performed in real time within this memory, and garbage cells are reused without pro ..."
Abstract
- Add to MetaCart
A hardware self-managing heap memory (RCM) for languages like LISP, SMALLTALK, and JAVA has been designed, built, tested and benchmarked. On every pointer write from the processor, reference-counting transactions are performed in real time within this memory, and garbage cells are reused without processor cycles. A processor allocates new nodes simply by reading from a distinguished location in its address space. The memory hardware also incorporates support for off-line, multiprocessing, mark-sweep garbage collection. Performance statistics are presented from a partial implementation of SCHEME over five different memory models and two garbage collection strategies, from main memory (no access to RCM) to a fully operational RCM installed on an external bus. The performance of the RCM memory is more than competitive with main memory. CR categories and Subject Descriptors: E.2 [Data Storage Representations]: Linked representations; D.4.2 [Storage Management]: Allocation/Deallocation st...
Multi-way Streams in Scheme
, 1989
"... We present a mechanism for the maintenance of streams based on the Scheme facility of call-with-current-continuation or call/cc. The mechanism supports stream sharing and has overhead cost which is independent of top-level program parameters if call/cc is implemented in heap-based systems. It is ..."
Abstract
- Add to MetaCart
We present a mechanism for the maintenance of streams based on the Scheme facility of call-with-current-continuation or call/cc. The mechanism supports stream sharing and has overhead cost which is independent of top-level program parameters if call/cc is implemented in heap-based systems. It is shown how the control structure of call/cc can save programming effort in cases where multiple procedures output to the same stream in irregular order. 1 Introduction In Scheme, a stream is typically implemented as a two-element cell: one element contains the value of the stream head and the other element contains a procedure which computes the remaining stream tokens. Stream tokens can be grabbed one at a time because, in Scheme, the body of a procedure is not evaluated until the procedure is invoked. This implementation works well for single streams but may have efficiency problems in stream networks. Consider, for example, the very simple network that results from splitting a stream ...
Futures and Multiple Values in Parallel Lisp
, 1995
"... We consider the impact of introducing the future construct to the multiple value facility in Lisp (Common Lisp and Scheme). A natural way to accommodate this problem is by modifying the implementation of futures so that one future object returns (or resolves to) multiple values instead of one. We fi ..."
Abstract
- Add to MetaCart
We consider the impact of introducing the future construct to the multiple value facility in Lisp (Common Lisp and Scheme). A natural way to accommodate this problem is by modifying the implementation of futures so that one future object returns (or resolves to) multiple values instead of one. We first show how a such straightforward modification fails to maintain the crucial characteristic of futures, namely that inserting futures in a functional program does not alter the the result of the computation. A straightforward modification may result in wrong number of values. We then present two methods which we call the mv-context method and the mv-p flag method to overcome this problem. Both of these methods have been tested in TOP-1 Common Lisp, an implementation of a parallel Common Lisp on the TOP-1 multiprocessor workstation. To our knowledge, this problem has never been analyzed nor solved in an implementation of parallel Lisp. We also present the technique of future chain elimination which avoids creation of unnecessary futures and processes at run-time, which was inspired by this solution.
THE DESIGN AND VISUALIZATION OF A SPACE BIOSPHERE
"... Lewis One is a qualitative space biosphere design. It is intended to house 10,000 residents in a cylinder large enough for a 1g rotating habitat module and construction facilities to reproduce the module. The shielding, exterior, and construction bays are non-rotating. Lewis One is compared to the B ..."
Abstract
- Add to MetaCart
Lewis One is a qualitative space biosphere design. It is intended to house 10,000 residents in a cylinder large enough for a 1g rotating habitat module and construction facilities to reproduce the module. The shielding, exterior, and construction bays are non-rotating. Lewis One is compared to the Bernal Sphere space colony designed in the 1970’s. Lewis One is visualized using state of the art computer graphics hardware and software to produce a three dimensional, animated, lighted, shaded, texture mapped surface model. One may interactively ‘fly ’ outside and inside the structure to examine features of interest. Interactively controlled planar cutaways at any location and/or orientation are available. Visualization provides insight into, and feedback on, the design to drive improvements and communicate design concepts.

