4 ms·
call/cc was introduced, as i understand it, as a means of formalising goto in this paper: Denotational semantics of goto: An exit formulation and its relation
by dododo 16y ago
call/cc was introduced, as i understand it, as a means of formalising goto in this paper:
Denotational semantics of goto: An exit formulation and its relation to continuations. Cliff B. Jones.
http://www.springerlink.com/content/f340274565373810/ http://www.springerlink.com/content/f340274565373810/
this implementation of yield in scheme reminds me of the procedure linkage table in ELF executables, roughly in C: goto *current_entry_point then update current_entry_point on return (in the ELF PLT this is a one shot update).
- carterschonwald 16y agoactually it goes back even farther! ftp://ftp.cs.cmu.edu/user/jcr/histcont.pdf has a history written by John Reynolds, probably the world's most senior (and baller in the sense of doing amazing work) among currently active programming language theoreticians. Quote from pages 2-3 of the linked pdf: Apparently, the earliest description of a use of continuations was given by Adriaan van Wijngaarden (Director of the Mathematisch Centrum in Amsterdam) in September 1964, at an IFIP Working Conference on For- mal Language Description Languages held in Baden bei Wien, Austria. A written version of this talk, along with a transcript of the discussion that followed, appears in the conference proceedings [45]. Van Wijngaarden’s goal was to formulate a preprocessor that would translate Algol 60 into a more restricted sublanguage. The final stage of the preprocessing was (what we would now call) a transformation of proper procedures into continuation-passing style (CPS) [41], with an at- tendant elimination of labels and goto statements. (An earlier stage of the preprocessing replaced function procedures by proper procedures.) As van Wijngaarden described the transformation: Provide each procedure declaration with an extra formal param- eter — specified label — and insert at the end of its body a goto statement leading to that formal parameter. Correspond- ingly, label the statement following a procedure statement, if not labeled already, and provide that label as the correspond- ing extra actual parameter. [45]
- dododo 16y agooops. you're right. i provided a bad reference. sorry!