ACM Home Page
Please provide us with feedback. Feedback
GL—a denotational testbed with continuations and partial continuations as first-class objects
Full text PdfPdf (568 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: 165 - 176  
Year of Publication: 1987
ISBN:0-89791-235-7
Also published in ...
Author
G. F. Johnson  University of Maryland, College Park, MD
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 13,   Citation Count: 10
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/29650.29668
What is a DOI?

ABSTRACT

In this paper we describe GL, a language designed to support interactive experimentation with denotational semantics of programming languages, and the novel features of its interpreter. GL is an expressional language that might best be described as an implementation of lambda calculus augmented with several useful basic data types including 1-values.A unique aspect of the GL environment is that it presents a visible, user-accessible implementation of the continuation semantics of GL. The user is expected to understand a denotational definition of GL, and to interact with the system in terms of that definition. In particular, if a computation is temporarily halted the expression continuation extant at that point can be interactively captured and later applied to other values and stores. The implementation of this feature is via a pair of routines called setjmpup and longjmpup that provide what might be called a partial continuation facility. A partial continuation is a function over stores or store/value pairs that represents execution of a partially executed program from its current state to some later state possibly before its half state. The semantics of partial continuations is interesting, and an extension of GL is presented that contains continuations and partial continuations as first-class objects.The GL environment is fairly complete; it has an experimental polymorphic type inference mechanism that supports self-application and report likely sources of user error in a robust manner, and it has a flexible breakpoint and trace facility that permits program execution to be observed and controlled at a variety of levels of granularity. Moreover, it has been used successfully to teach a graduate course in Theory of Programming Languages.


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
1. Scott, D., "Data Types as Lattices," SIAM Journal of Computing 5(1976).
2
 
3
3. Sussman, Gerald Jay and Guy Lewis Steele, Jr., "Scheme: an interpreter for an extended lambda calculus," MIT Artificial Intellegence Memo 349 (December 1975).
4
 
5
5. Felleisen, Matthias, Daniel P. Friedman, Bruce Duba, and John Murrow, "Beyond Continuations," Tech Report #216, Indiana University Computer Science Department (February 1987).
 
6
6. Joloboff, Vania. personal communication. December 1986.

CITED BY  10