<<

LISP AND SYMBOLIC COMPUTATION An International Journal

c

Kluwer Academic Publishers Manufactured in The

The Discoveries of

JOHN C REYNOLDS JohnReynoldscscmuedu

School of

Carnegie Mel lon University

Pittsburgh PA

Keywords Semantics ContinuationPassing Style

Abstract We give a brief account of the disco veries of continuations and related con

cepts by A van Wijngaarden A W Mazurkiewicz F L Morris C P Wadsworth

J H Morris M J Fischer and S K Ab dali

In the early history of continuations basic concepts were indep endently

discovered an extraordinary number of times This was due less to p o or

communication among computer scientists than to the rich variety of set

tings in which continuations were found useful They underlie a metho d

of program transformation into continuationpassing style a style of def

initional interpreter dening one language by an interpreter written in

another language and a style of in the sense of

Scott and Strachey In each of these settings by representing the mean

ing of the rest of the program as a function or pro cedure continuations

provide an elegant description of a variety of language constructs including

call by value and goto statements

The Background

In the early s the app earance of Algol inspired a ferment

of research on the implemen tation and formal denition of programming

languages Several asp ects of this research were critical precursors of the

discovery of continuations

The ability in Algol to jump out of blo cks or even pro cedure b o d

ies forced implemen tors to realize that the representation of a lab el must

include a reference to an environment According to

in order to sp ecify a transfer of control we must in general

supply b oth the static description of the destination and

a dynamic description of its environment the stack reference

This set together dene what we call a program p oint

JOHN C REYNOLDS

In retrosp ect a program p oint was the representation of a continuation

A more subtle realization was that return addresses could b e treated

on the same footing as pro cedure parameters With a prescient choice of

words E W Dijkstra remarked

We use the name parameters for all the information that is

presented to the subroutine when it is called in by the main

program function arguments if any are therefore parameters

The data group ed under the term link are also considered

as parameters the link comprises all the data necessary for the

continuation of the main program when the subroutine has b een

completed

Indeed in the GIER Algol Compiler designed by Naur and Jrn Jensen

return addresses and lab el parameters b oth regarded as program p oints

were treated in essentially the same way

Another precursor of continuations o ccurred in s SECD

machine a statetransition interpreter for a language of applicativ e

expressions that was syntactically similar to the untyped lamb da calculus

but used a callbyvalue order of evaluation As captured by the acronym

SECD the state of the interpreter consisted of four comp onents a stack

an environment a control and a dump The dump enco ded the remaining

computation to b e executed after the control was exhausted in retrosp ect

it was another representation of a continuation

To b e able to translate Algol into applicative expressions Landin

later extended these expressions and their interpreter with an assignment

op eration and also a control op erator J used to express the translation of

gotos and lab els In the extended SECD machine the result of

applying J was a value containing a dump Thus in mo dern terminology

the J op erator provided a means of embedding continuations in values

and was an ancestor of op erations such as Reynoldss escap e and

catch and callcc in Scheme

A van Wijngaarden

Apparently the earliest description of a use of continuations was given

by Director of the Mathematisch Centrum in

Amsterdam in Septemb er at an IFIP Working Conference on For

mal Language Description Languages held in Baden b ei Wien Austria A

written version of this talk along with a transcript of the discussion that

followed app ears in the conference pro ceedings

THE DISCOVERIES OF CONTINUATIONS

Van Wijngaardens goal was to formulate a prepro cessor that would

translate Algol into a more restricted sublanguage The nal stage

of the prepro cessing was what we would now call a transformation of

prop er pro cedures into continuationpassing style CPS with an at

tendant elimination of lab els and goto statements An earlier stage of the

prepro cessing replaced function pro cedures by prop er pro cedures

As van Wijngaarden describ ed the transformation

Provide each pro cedure declaration with an extra formal param

eter sp ecied lab el and insert at the end of its b o dy a

goto statement leading to that formal parameter Corresp ond

ingly lab el the statement following a pro cedure statement if

not lab eled already and provide that lab el as the corresp ond

ing extra actual parameter

Next by inserting lab els and goto statements each blo ck was transformed

into an equivalent blo ck with the form

b egin L S L S end

1 1 n n

where every path of execution through a statement S ends in a goto state

i

ment Actually unless I have misundersto o d his rather opaque prose van

Wijngaardens description of this transformation is erroneous When the

ab ove blo ck is a statement of a larger blo ck there is no provision for in

serting jumps from within the inner blo ck to the statement following the

inner blo ck This defect is easily remedied however by replacing such inner

blo cks by calls of corresp onding parameterless pro cedures as in the work

of J H Morris b efore applying van Wijngaardens transformation

Finally according to van Wijngaarden

It is now completely harmless to insert at the end of each blo ck

an unlab eled goto statement leading to the rst statement of

that blo ck since this statement will never b e executed So far

we have only increased the number of lab els and goto state

ments But now we can p erform the following op erations

Write b efore each lab el pro cedure

Replace the colon following it by a semicolon

Strike each goto

The following exchange during the ensuing discussion shows that van

Wijngaarden understo o d clearly that the transformation into continuation

passing style is more than just a metho d for eliminating lab els and gotos

JOHN C REYNOLDS

MCILROY Im afraid you went a bit too far in the elimi

nation of the goto b ecause this actually changes the temp oral

existence of values If every goto is replaced by a pro cedure

call then this means that the entire history of the computation

must b e maintained Im a bit concerned ab out this limitation

VAN WIJNGAARDEN I supp ose you have a certain imple

mentation of a pro cedure call in mind when you say that But

this implemen tation is only so dicult b ecause you have to take

care of the goto statement However if you do this trick I de

vised then you will nd that the actual execution of the pro

gram is equivalent to a set of statements no pro cedure ever

returns b ecause it always calls for another one b efore it ends

and all of the ends of all of the pro cedures will b e at the end of

the program one million or two million ends If one pro cedure

gets to the end that is the end of all therefore you can stop

That means you can make the pro cedure implemen tation so

that it do es not b other to enable the pro cedure to return That

is the whole diculty with pro cedure implemen tation Thats

why this is so simple its exactly the same as a goto only called

in other words

In retrospect it may seem surprising that van Wijngaardens presenta

tion did not make continuations and continuationpassing style into stan

dard concepts of computer science Participants in the discussion of his

presentation included Dijkstra Hoare McCarthy McIlroy and Strachey

and other conference attendees included Bohm Elgot Landin and Nivat

But the idea didnt take hold In particular although Landin referred to

van Wijngaardens transformation in his own treatment of Algol he

made no mention of the work when he heard F L Morriss collo quium in

See Section Moreover never connected the

work with Wadsworths continuations and did not cite van Wijngaarden

in his own descriptions of the latter See Section

The discussion following the presentation reveals deep philosophical dif

ferences b etween van Wijngaarden and other researchers particularly van

Wijngaardens abhorrence of abstract syntax and his b elief that prop er

pro cedures were more basic than functions A stronger barrier to com

munication was probably his failure to motivate the CPS transformation

According to M D McIlroy

I remember the talk well as an insightful tour de force of reduc

tionism Van Wijngaardens argument shone clearly and

unforgettably But an idea can b e understo o d without all

THE DISCOVERIES OF CONTINUATIONS

its ramications b eing seen even by its originator Since van

Wijngaarden oered no practical examples of continuation pass

ing nor any theoretical application save as a trick for proving

one isolated and already known result the value of continua

tions p er se did not come through

Moreover van Wijngaardens discovery was actually the CPS transfor

mation rather than continuations themselves nowhere do es he dene or

otherwise emphasize the actual concept of a continuation This surely made

it dicult to recognize any connection with the app earance of continuations

in other settings

It also app ears that van Wijngaarden himself never used continuations

again

A nal sideligh t on the talk is rememb ered by McIlroy

The talk actually had one direct and imp ortant consequence

for Under the inspiration of the notion of the un

necessity of gotos Dijkstra sp ent that evening constructing

realistic examples of programs without gotos which he scrib

bled on napkins at coee break the next day In that exercise

he p osited a quit statement the break of CPL and C

That coeebreak palaver rip ened into the most celebrated let

ter to the editor in the history of computing So while van

Wijngaarden said that gotos were unnecessary Dijkstra

stretched the p oint to say that gotos were inconvenient The

latter lesson stuck

A W Mazurkiewicz

In December Antoni W Mazurkiewicz then at the Instytut Maszyn

Matematycznych in Warsaw circulated a working pap er entitled Proving

Algorithms by Tail Functions to the membership of IFIP Working Group

which included Strachey A publication version was submitted to

Information and Control in April revised in Novemb er and published

in April

In this pap er Mazurkiewicz dealt with an automatonlike concept of an

algorithm consisting of a set E of lab els a subset T  E of terminal lab els

a set R of states and a partial transition function from E T  R to

E  R He prop osed that the semantics of such an algorithm which he

called a tail function should b e the least partial function from E  R to

R satisfying



e x if e 2 T

e x

x if e 2 T

JOHN C REYNOLDS

When curried the tail function is an environment mapping lab els into

command continuations just as in the continuation semantics of an imp er

ative language with lab els and goto commands Mazurkiewiczs concept of

algorithm however is such a limited one with

out any hierarchical structure that his work do es not reveal much of the

general nature of continuations For example there is no syntactic entity

whose meaning must b e a function accepting continuations Also if one

regards an algorithm as the while command

while e 2 T do e x e x

where the variables e and x range over lab els and states then the tail

function is just the direct semantics of this command

Thus it is hard to say whether Mazurkiewiczs work was a discovery of

continuations or a precursor What is clear is that it inspired the later work

of Wadsworth See Section

In Mazurkiewicz published two further pap ers concerned

with the technique of tail functions

F L Morris

In Novemb er F Lo ckwoo d Morris then a graduate student at Stan

ford University who was teaching at the University of Essex while working

on his dissertation gave a collo quium at Queen Mary College en

titled The Next Formal Language Descriptions an allusion to The

Next Programming Languages by Peter Landin who had invited

Morris to give the collo quium In the talk Morris gave a variety of deni

tional interpreters for a callbyvalue functional language with extensions

to include assignments and lab els

The notes distributed at the talk are published in the present issue of this

journal In the nal interpreter in these notes continuations are used

to treat lab els and jumps of the kind found in Gedanken Sp ecically

what Morris calls dumps since they are abstractions of Landins dumps

are expression continuations and what he calls label values are command

continuations

Like the SECD machine but unlike the circular interpreters that Mor

0 00 000

ris calls eval eval and eval the interpreter using continuations denes

a callbyvalue language regardless of whether the language it is written in uses call by value or call by name

THE DISCOVERIES OF CONTINUATIONS

Lo oking back on his work Morris comments

I think my main inspiration for programming with continua

tions was three functions describ ed in the Lisp Program

mers Manual prop sassoc and search I cant

remember seeing McCarthy or anyone else do the same sort of

thing in programming examples but it may have happ ened

He b elieves he was inspired to a lesser extent by the failure mechanisms in

Snob ol and Cogent Before discovering continuations he had b een

working on a denition of Snob ol that

was as I recall just a working out of the idea that every func

tion needed two continuation arguments one in case of success

and one in case of failure I think the choice of two continuations

was easier to recognize than just one

The present author had the go o d fortune to attend Morriss talk It was

my rst exp osure to the use of continuations and to the fact that there are

many styles of denitional interpreters varying in abstractness and degree

of circularity These ideas were the genesis of my own work on denitional

interpreters which eventually did much to p opularize continuations

C P Wadsworth

The next bit of our story is most simply told in the rst p erson While

visiting University in December I had a conversation with

Ro d Burstall and Chris Wadsworth then a graduate student at Oxford

University in which I summarized Lo ckwoo d Morriss collo quium at Queen

Mary As so on as he grasped the nature of Morriss ideas Wadsworth

exclaimed Thats what Ive b een working on

In fact Wadsworth had discovered the use of continuations to describ e

the b ehavior of lab els and gotos and had so on realized that the metho d

also suced to describ e call by value and other constructs that constrain the

order of evaluation But instead of working with denitional interpreters

he was working with denotational denitions in Dana Scotts thennew

latticetheoretic semantics In his words

Through I had b een working on trying to get a go o d

denotational semantics mathematical semantics as it was then

called for jumps under Christopher Stracheys sup ervision

We devised various elab orate schemes none of which struck

us as b eing at all satisfactory

JOHN C REYNOLDS

Then I came across a pap er by A Mazurkiewicz

which gave me the spark we needed I coined the term contin

uation for the conceptapproach that resulted

Also

The other spark was the struggles over earlier months

which had got me into thinking backward without then see

ing how to express it denotationally Reading Mazurkiewiczs

pap er gave me the key insight that turned something dicult

and messy into something so simple That sudden insight was

introduce a concept for the meaning of the rest of the pro

gram

and on the word continuations

Often getting the right word is the catalyst and so it was for me

Once Id coined the word it all clicked and the rest semantic

domains semantic equations etc followed in a matter of a few

days Having the word made it easy and natural to write and

discuss and disseminate though I thought several times that I

would have liked a shorter word

Wadsworth delayed publishing his work on continuations while pursuing

his dissertation topics of denotational mo dels of the

and graph reduction

Apart from the usual reasons things get delayed Strachey

felt that it was often go o d to live with and try out a promising

idea for a while b efore publishing not the dominant practice

nowadays or then He felt I think that an ideas originator

should allow himself some time to check it out and get it rea

sonably p olished b efore b othering the world with results that

may b e of transient value

Eventually Strachey describ ed the ideas in a seminar at the Institut de

Recherche dInformatique et dAutomatique in May a written version

was published by IRIA and a revised and slightly expanded version ap

p eared as a rep ort of the Oxford Programming Research Group Sp ecif

ically these rep orts gave a continuationstyle denotational denition of an

imp erative language with lab els and jumps including jumps out of blo cks

embedded within expressions The texts were mostly written by Strachey

but the underlying metho d of continuations was due to Wadsworth Al

though the illustrativ e language did not include pro cedures it app ears that Wadsworth understo o d the treatment of function pro cedures

THE DISCOVERIES OF CONTINUATIONS

J H Morris

In the rst half of James H Morris Jr then at the University of

California at Berkeley and a distant cousin of F L Morris submitted

a pap er to the Communications of the ACM in which he describ ed a CPS

transformation for programs in an Algollik e language sp ecically a sub

stantial subset of Algol The transformation was similar to that of

van Wijngaarden except that it was describ ed in more detail it avoided the

erroneous treatment of nested blo cks and it treated function and prop er

pro cedures on the same fo oting rather than converting function pro cedures

to prop er pro cedures in a preliminary step

Morris also p ointed out that in addition to eliminating lab els and gotos

the transformation would eliminate o ccurrences of pro cedures that returned

complex results such as arrays pro cedures or lab els assuming it were

applied to a richer language that p ermitted such pro cedures

A referee recognized that the basic idea of the pap er had b een anticipated

by van Wijngaarden and as a consequence the pap er was rejected In its

place Morris published a brief letter to the editor that did not describ e

the program transformation in detail but demonstrated that it could b e

used to eliminate pro cedures returning complex values The letter also

noted that a conventional stackbased implemen tation of the transformed

program would quickly exhaust its stack

In retrosp ect Morris comments

I simply cant remember the detailed pro cess by which I rst

discovered the continuation metho d However I originally con

ceived it as a pure lambdacalculus technique undoubtedly af

ter several years of living with Peter Landins J op erator which

must have set the stage for other discoverers to o I lab oriously

translated the idea into Algol so as to make the idea more

accessible to readers

M J Fischer

At the ACM Conference on Proving Assertions ab out Programs in Las

Cruces New Mexico in January Michael J Fischer then at MIT gave

a pap er entitled Lambda Calculus Schemata A nal more complete

version app ears in the present issue of this journal In this pap er he

extended the callbyvalue lambda calculus with conditional expressions

and uninterpreted constants and primitive functions and he describ ed a transformation of this functional language into continuationpassing style

JOHN C REYNOLDS

Fischers purp ose was to show that an arbitrary program can b e trans

formed by the CPS transformation into a form that can b e implemen ted

by a stack ie where the storage allo cated during the execution of a pro

cedure can b e deleted when the pro cedure exits Of course the price as

noted by J H Morris is that the stack never p ops until the end of

program execution

Fischers pap er is notable for the rst pro of ab out the semantics of con

tinuations ie that the CPS transformation preserves meaning in an appro

priate sense This result was in a setting where lambda expressions denote

closures Results ab out the meaning of continuations in a denotational

semantics setting where lamb da expressions denote continuous functions

still lay several years in the future

S K Ab dali

With the app earance of pap ers by Fischer in January and J H Mor

ris and Reynolds in August continuations b ecame widely known

by the end of Nevertheless there was at least one later discovery

In February S Kamal Ab dali then a graduate student at the Uni

versity of Wisconsin teaching at New York University while working on his

dissertation presented a short pap er at the rst Computer Science Con

ference held in Columbus Ohio In this presentation Ab dali describ ed a

novel form of language denition in which Algol programs were trans

lated into the untyped lamb da calculus This work was then submitted to

the rst ACM Symp osium on Principles of Programming Languages but

was rejected b ecause the extended abstract did not describ e any treatment

of pro cedures Later that summer the work including a treatment of pro

cedures was published as a preliminary rep ort Ab dali then moved to

Rensselaer Polytechnic Institute in Troy New York where he completed

his Wisconsin dissertation in

According to Ab dali J Barkley Rosser and his followers including his

student George Petznick who was Ab dalis PhD advisor

felt that the extensions to the lambda calculus to which

Landin had resorted in establishing a corresp ondence b e

tween Algol and that calculus made it dicult to use the

corresp ondence for deriving prop erties of programs My task

therefore was to translate programming constructs into the

pure lamb da calclulus Assignment for example was to b e

mo deled by substitution avoiding the notion of memory ad dress and fetch and store op erations

THE DISCOVERIES OF CONTINUATIONS

To treat the imp erative asp ects of Algol Ab dali devised a translation

much like the CPS transformation He says that the idea of a continuation

which he called program remainder

was inspired by J H Morriss thesis in particular by

attempting to get the outline on pp actually to work

Continuations then op ened the path to deal with blo ck struc

ture as well as jumps and lab els The p ower and signicance

of continuations was conrmed in overcoming the diculties of

callb yname that construct was explicated with immediate and

remote continuations to denote calling and called contexts

Ab dali rst connected his program remainders with earlier discoveries of

continuations by F L Morris and Wadsworth in the published pap ers

arising from his dissertation He later used his approach to mo del

ing Algollik e languages in joint work with Franz Winkler and David

S Wise

Conclusion

In summary to the b est of this authors knowledge continuations or closely

related concepts were rst discovered in by van Wijngaarden rep eat

edly rediscovered in a wide variety of settings b oth intellectual and

geographical during and and o ccasionally rediscovered there

after

The main mystery is why van Wijngaardens early work failed to b ecome

widely understo o d One can sp eculate but it is unlik ely ever to b e known

with certainty particularly since the deaths of Strachey May

and van Wijngaarden February

Nevertheless the early history of continuations is a sharp reminder that

original ideas are rarely b orn in full generality and that their communica

tion is not always a simple or straightforward task

Acknowledgements

For comments and reminiscences that have vastly improved this pap er

the author wishes to thank Kamal Ab dali Jaco de Bakker Olivier Danvy

Edsger Dijkstra Matthias Felleisen Andrzej Filinski Michael Fischer Dan

Friedman Peter Landin Antoni Mazurkiewicz John McCarthy Douglas

McIlroy Lo ckwoo d Morris James Morris Peter Naur Dana Scott Tom Steel Guy Steele Carolyn Talcott Mads Tofte and Chris Wadsworth

JOHN C REYNOLDS

References

Ab dali S Kamal A Simple Lamb daCalculus Model of Programming

Languages AEC R D Rep ort C New York University

Ab dali S Kamal A Combinatory Logic Mo del of Programming Lan

guages PhD thesis University of Wisconsin

Ab dali S Kamal A lambdacalculus mo del of programming languages

I simple constructs Journal of Computer Languages

Ab dali S Kamal A lambdacalculus mo del of programming languages

I I jumps and pro cedures Journal of Computer Languages

Ab dali S Kamal Electronic mail to J C Reynolds July

Ab dali S Kamal and Winkler Franz A LambdaCalculus Model for

Generating Verication Conditions Technical Rep ort CS Rens

selaer Polytechnic Institute June

Ab dali S Kamal and Wise David S Standard storeless semantics for

ALGOLstyle blo ck structure and callbyname In Melton Austin ed

itor Mathematical Foundations of Programming Semantics Springer

Verlag Berlin

Clinger William Friedman Daniel P and Wand Mitchell A scheme

for a higherlev el semantic algebra In Nivat Maurice and Reynolds

John C editors Algebraic Methods in Semantics Cambridge Univer

sity Press Cambridge

Dijkstra Edsger W Recursive programming Numerische Mathe

matik

Dijkstra Edsger W Go To statement considered harmful Communi

cations of the ACM March Letter to the editor

Farber David J Griswold Ralph E and Polonsky Ivan P SNOBOL

a string manipulation language Journal of the ACM January

Fischer Michael J Lambda calculus schemata In Pro ceedings of an

ACM Conference on Proving Assertions ab out Programs

THE DISCOVERIES OF CONTINUATIONS

Fischer Michael J Lambdacalculus schemata Lisp and Symb olic

Computation App ears in this issue

Landin Peter J The mechanical evaluation of expressions The Com

puter Journal January

Landin Peter J A corresp ondence b etween ALGOL and Churchs

lamb danotation Communications of the ACM February

March and

Landin Peter J A Generalization of Jumps and Lab els Rep ort UNI

VAC Systems Programming Research August

Landin Peter J The next programming languages Communica

tions of the ACM March

Mazurkiewicz Antoni W Proving algorithms by tail functions Infor

mation and Control April

Mazurkiewicz Antoni W Iteratively computable relations Bulletin de

lAcademie Polonaise des Sciences Serie des Sciences Mathematiques

Astronomiques et Physiques

Mazurkiewicz Antoni W Recursive algorithms and formal lan

guages Bulletin de lAcademie Polonaise des Sciences Serie des Sci

ences Mathematiques Astronomiques et Physiques

McCarthy John et al LISP Programmers Manual MIT Press

Cambridge Massachusetts

McIlroy M Douglas Electronic mail to J C Reynolds July

Milne Rob ert The Formal Semantics of Computer Languages and

their Implementations PhD thesis Oxford University Rep ort

PRG and Technical Microche TCF

Milne Rob ert and Strachey Christopher A Theory of Programming

Language Semantics Chapman and Hall London In two vol

umes Also published by John Wiley New York

Morris F Lo ckwood Electronic mail to J C Reynolds July

JOHN C REYNOLDS

Morris F Lo ckwoo d The next formal language descriptions Lisp

and Symb olic Computation App ears in this

issue Original manuscript dated November

Morris Jr James H Lamb daCalculus Models of Programming Lan

guages PhD thesis MIT December Rep ort No MACTR

Morris Jr James H Eliminating nonlo cal transfers from ALGOLlik e

languages Unpublished

Morris Jr James H A b onus from van Wijngaardens device Com

munications of the ACM August page

Morris Jr James H Electronic mail to J C Reynolds July

Naur Peter The design of the GIER ALGOL compiler part I BIT

Reprinted in Goo dman Richard editor Annual

Review in Automatic Programming Vol Pergamon Press Oxford

Naur Peter et al Rep ort on the algorithmic language ALGOL

Communications of the ACM May

Naur Peter et al Revised rep ort on the algorithmic language ALGOL

Communications of the ACM January

Reynolds John C An introduction to the COGENT programming

system In Asso ciation for Computing Machinery Pro ceedings of the

th National Conference

Reynolds John C GEDANKEN a simple typeless language based

on the principle of completeness and the reference concept Communi

cations of the ACM May

Reynolds John C Denitional interpreters for higherorder program

ming languages In Pro ceedings of the ACM Annual Conference

Reynolds John C On the relation b etween direct and continuation

semantics In Lo eckx Jacques editor Automata Languages and Pro

gramming SpringerVerlag Berlin

Reynolds John C Semantics of the domain of ow diagrams Journal

of the ACM July

THE DISCOVERIES OF CONTINUATIONS

Scott Dana S Outline of a mathematical theory of computation In

Pro ceedings of the Fourth Annual Princeton Conference on Information

Sciences and Systems

Scott Dana S Outline of a Mathematical Theory of Computation

Technical Monograph PRG Oxford University Computing Lab ora

tory November

Steele Jr Guy Lewis and Sussman Gerald Jay LAMBDA The Ulti

mate Imp erative AI Memo Massachusetts Institute of Technology

March

Strachey Christopher A mathematical semantics which can deal with

full jumps In Theorie des Algorithmes des Langages et de la Pro

grammation IRIA INRIA Ro cquencourt France

Strachey Christopher and Wadsworth Christopher P Continuations

A Mathematical Semantics for Handling Full Jumps Technical Mono

graph PRG Oxford University Computing Lab oratory January

Sussman Gerald Jay and Steele Jr Guy Lewis SCHEME An Inter

preter for Extended Lambda Calculus AI Memo Massachusetts

Institute of Technology December

van Wijngaarden Adriaan Recursiv e denition of syntax and seman

tics In Steel Jr T B editor Formal Language Description Lan

guages for Computer Programming NorthHolland

Wadsworth Christopher P Semantics and Pragmatics of the Lambda

Calculus PhD thesis Oxford University September

Wadsworth Christopher P Electronic mail to Amr A Sabry Decem

b er

Wadsworth Christopher P Electronic mail to J C Reynolds July