| An eductive interpreter for the language Lucid |
| Full text |
Pdf
(644 KB)
|
| Source
|
Conference on Programming Language Design and Implementation
archive
Papers of the Symposium on Interpreters and interpretive techniques
table of contents
St. Paul, Minnesota, United States
Pages: 86 - 91
Year of Publication: 1987
ISBN:0-89791-235-7
Also published in ...
|
|
Authors
|
|
A. A. Faustini
|
Computer Science Department, Arizona State University, Tempe, Arizona
|
|
W. W. Wadge
|
Computer Science Department, Arizona State University, Tempe, Arizona
|
|
| Sponsor |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 4, Downloads (12 Months): 21, Citation Count: 3
|
|
|
ABSTRACT
We describe an interpreter for pLucid, a member of the Lucid family of functional dataflow languages. In appearance, pLucid is similar to Landin's Iswim, exept that individual variables and expressions denote streams (infinite sequences of data items), and function variables denote filters (stream-to-stream transformations). The actual data objects in pLucid (the components of streams) are those of POP2: numbers, strings, words, and lists. The 'inner syntax' (infix operations, conventions for denoting constants) are those of POP2 as well.The interpreter (which was written in C) is eductive: it uses a tagged demand-driven scheme. Demands for values in the output stream generate demands for values of other variables internal to the program. These demands, and the values returned in response, are tagged according to "time" (sequence index) and place (node in the tree of function calls). Once computed, values are stored in an associative memory (the "warehouse") in case they are demanded again later in the computation. The warehouse is periodically cleaned out using a heuristic called the "retirement plan". The heuristic is not perfect, but does not have to be: in an eductive computation, the program is not altered as in reduction. If discarded values are needed again, they can be recomputed.The pLucid interpreter performs extensive runtime checks and error messages quote the source line containing the offended operator. A special end-of-data object permits a very simple treatment of finite (terminating) input and output. Of special interest is its interface to UNIX, which allows any system command to be used as a filter inside a pLucid program.The interpreter performs well enough for nontrivial programs to be developed and tested. These include (simple versions of) a text formatter, a distributed airline reservation system, and a full screen editor.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
| |
2
|
Ashcroft, E. A., Jagannathan, R. and Lee, R. (1985) Emulating Eazyflow Technical Report, Computer Science Lab., SRI International.
|
| |
3
|
Bagai, R. (1986) Compilation of the Dataflow Language Lucid MS Thesis December 1986 Department of Computer Science Univeristy of Victoria, Canada.
|
| |
4
|
Burstall, R. M., Collins, J. S., and Popplestone, R. J. (1971). Programming in POP-2, Edinburgh University Press, Edinburgh.
|
| |
5
|
Kahn, G., and MacQueen, D. B. (1977) Coroutines and networks of parallel processes, Proc. IFIP Congress 77, Elsevier North Holland, 993-998.
|
 |
6
|
|
| |
7
|
Ostrum, C. B. (1981). The Luthid 1.0 Manual, Dept. of Computer Science, Univ. of Waterloo, Waterloo, Ontario Canada.
|
| |
8
|
Pilgram, P. (1983). Translating Lucid dataflow into message passing actors, PhD. dissertation, Univ. of Warwick.
|
| |
9
|
Wadge, W. (1985). Viscid, a vi-like screen editor written in pLucid, Proceedings 4th PCCC.
|
Peer to Peer - Readers of this Article have also read:
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
-
A hierarchical single-key-lock access control using the Chinese remainder theorem
Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing
Kim S. Lee
, Huizhu Lu
, D. D. Fisher
-
The GemStone object database management system
Communications of the ACM
34, 10
Paul Butterworth
, Allen Otis
, Jacob Stein
-
Putting innovation to work: adoption strategies for multimedia communication systems
Communications of the ACM
34, 12
Ellen Francik
, Susan Ehrlich Rudman
, Donna Cooper
, Stephen Levine
-
An intelligent component database for behavioral synthesis
Proceedings of the 27th ACM/IEEE Design Automation Conference on
Gwo-Dong Chen
, Daniel D. Gajski
|