TY - JOUR
T1 - First-class stores and partial continuations in a programming language and environment
AU - Johnson, Gregory F.
AU - Duggan, Dominic
PY - 1994/3
Y1 - 1994/3
N2 - In the GL programming language and its debugger, it is possible at essentially any point during program execution to capture the entire data state (the extant store) or the control state (the sequence of pending function invocations, represented using a new construct called partial continuations). These artifacts of program execution can be bound to identifiers or placed in storage cells and subsequently manipulated either from within the executing program or interactively from the debugging environment. The captured data states and control states can be interactively examined, reasoned about and experimentally executed. This paper describes the design of a language and debugging environment that supports these two capabilities, with particular attention given to the implications of having them both in the same language. For the new features to be useful they must be efficient, and a description is given of the techniques that were used to achieve an acceptable level of efficiency.
AB - In the GL programming language and its debugger, it is possible at essentially any point during program execution to capture the entire data state (the extant store) or the control state (the sequence of pending function invocations, represented using a new construct called partial continuations). These artifacts of program execution can be bound to identifiers or placed in storage cells and subsequently manipulated either from within the executing program or interactively from the debugging environment. The captured data states and control states can be interactively examined, reasoned about and experimentally executed. This paper describes the design of a language and debugging environment that supports these two capabilities, with particular attention given to the implications of having them both in the same language. For the new features to be useful they must be efficient, and a description is given of the techniques that were used to achieve an acceptable level of efficiency.
KW - continuations
KW - debugging
KW - first-class continuations and stores
KW - reflexive stores
UR - http://www.scopus.com/inward/record.url?scp=0028399775&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0028399775&partnerID=8YFLogxK
U2 - 10.1016/0096-0551(94)90014-0
DO - 10.1016/0096-0551(94)90014-0
M3 - Article
AN - SCOPUS:0028399775
SN - 0096-0551
VL - 20
SP - 53
EP - 68
JO - Computer Languages
JF - Computer Languages
IS - 1
ER -