bcp.bib

@PREAMBLE{{\newcommand{\SortNoop}[1]{}}}
@ARTICLE{tal-toplas,
  AUTHOR = {Greg Morrisett and David Walker and Karl Crary and Neal Glew},
  TITLE = {From {System-F} to Typed Assembly Language},
  JOURNAL = {ACM Transactions on Programming Languages and Systems},
  VOLUME = 21,
  NUMBER = 3,
  PAGES = {527--568},
  MONTH = MAY,
  YEAR = 1999
}
@INPROCEEDINGS{Cardelli88,
  AUTHOR = {Luca Cardelli},
  TITLE = {A semantics of multiple inheritance},
  BOOKTITLE = {Semantics of Data Types},
  YEAR = 1984,
  PUBLISHER = {Springer-Verlag},
  SERIES = {Lecture Notes in Computer Science},
  VOLUME = 173,
  EDITOR = {G. Kahn and D. MacQueen and G. Plotkin},
  PAGES = {51--67},
  SOURCE = {Cribbed from rwhbib, with (2/3) cribbed from elsewhere},
  CHECKED = {Not checked},
  NOTE = {Full version in \bgroup\em Information and
                  Computation\egroup, 76(2/3):138--164, 1988}
}
@INPROCEEDINGS{DAMAS82,
  KEY = {Damas82},
  AUTHOR = {Luis Damas and Robin Milner},
  TITLE = {Principal Type Schemes for Functional Programs},
  BOOKTITLE = {{ACM} {S}ymposium on {P}rinciples of {P}rogramming
                     {L}anguages ({POPL}), Albuquerque, New Mexico},
  YEAR = {1982},
  PAGES = {207--212},
  SOURCE = {From ergobib},
  CHECKED = {Not checked}
}
@INCOLLECTION{Howard80,
  AUTHOR = {William A. Howard},
  TITLE = {The formulas-as-types notion of construction},
  BOOKTITLE = {To H. B. Curry: Essays on Combinatory Logic, Lambda
                  Calculus, and Formalism},
  EDITOR = {J. P. Seldin and J. R. Hindley},
  PUBLISHER = {Academic Press},
  OPTADDRESS = {New York},
  YEAR = 1980,
  PAGES = {479--490},
  NOTE = {Reprint of 1969 article}
}
@ARTICLE{Landin64,
  AUTHOR = {Peter J. Landin},
  TITLE = {The Mechanical Evaluation of Expressions},
  JOURNAL = {Computer Journal},
  VOLUME = 6,
  NUMBER = 4,
  MONTH = JAN,
  YEAR = 1964,
  PAGES = {308--320},
  CHECKED = {5 June 1992, by JCR}
}
@INPROCEEDINGS{MoggiMonads89,
  AUTHOR = {Eugenio Moggi},
  TITLE = {Computational lambda-calculus and monads},
  CHECKED = {Yes},
  PAGES = {14--23},
  BOOKTITLE = {IEEE Symposium on Logic in Computer Science (LICS), Asilomar, California},
  MONTH = JUN,
  YEAR = 1989,
  NOTE = {Full version, titled {\em Notions of Computation and
                  Monads}, in Information and Computation, 93(1), pp. 55--92,
                  1991}
}
@INPROCEEDINGS{POPL::Necula1997,
  TITLE = {Proof-Carrying Code},
  AUTHOR = {George C. Necula},
  PAGES = {106--119},
  BOOKTITLE = {{ACM} {SIGPLAN--SIGACT} {S}ymposium on {P}rinciples of {P}rogramming
                     {L}anguages ({POPL}), Paris, France},
  OPTMONTH = {15--17 } # JAN,
  MONTH = JAN,
  YEAR = {1997},
  REFERENCES = {\cite{JACM::BoyerY1996} \cite{JACM::HarperHP1993}
                  \cite{APAL::MillerNPS1991} \cite{LICS::Pfenning1989}},
  SOURCE = {popl bib}
}
@TECHREPORT{Plotkin:NatSemTR,
  AUTHOR = {Gordon D. Plotkin},
  TITLE = {A Structural Approach to Operational Semantics},
  ADDRESS = {Aarhus, Denmark},
  INSTITUTION = {Computer Science Department, Aarhus University},
  YEAR = {1981},
  MONTH = SEP,
  NUMBER = {DAIMI FN--19}
}
@ARTICLE{Plotkin77,
  AUTHOR = {Gordon D. Plotkin},
  TITLE = {{LCF} Considered as a Programming Language},
  JOURNAL = {Theoretical Computer Science},
  YEAR = 1977,
  VOLUME = 5,
  PAGES = {223--255}
}
@PROCEEDINGS{LICS89,
  TITLE = {Fourth Annual Symposium on Logic in Computer Science},
  BOOKTITLE = {Fourth Annual Symposium on Logic in Computer Science
                  (Asilomar, CA)},
  MONTH = JUN,
  YEAR = 1989,
  PUBLISHER = {IEEE Computer Society Press}
}
@INCOLLECTION{Dijkstra:60,
  AUTHOR = {Edsger W. Dijkstra},
  TITLE = {Recursive Programming},
  BOOKTITLE = {Programming Systems and Languages},
  PUBLISHER = {McGraw-Hill},
  YEAR = 1960,
  EDITOR = {Saul Rosen},
  CHAPTER = {3C},
  PAGES = {221-227},
  ADDRESS = {New York}
}
@ARTICLE{Dijkstra68,
  AUTHOR = {Edsger W. Dijkstra},
  TITLE = {Go To Statement Considered Harmful},
  JOURNAM = {Communications of the {ACM}},
  VOLUME = 11,
  NUMBER = 3,
  MONTH = MAR,
  YEAR = 1968,
  PAGES = {147--148}
}
@ARTICLE{MCCARTHY60,
  AUTHOR = {McCarthy, John},
  TITLE = {Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part {I}},
  JOURNAL = {Communications of the ACM},
  MONTH = {April},
  NUMBER = {4},
  VOLUME = {3},
  YEAR = {1960},
  PAGES = {184--195},
  CHECKED = {27 July 1992}
}
@INPROCEEDINGS{Kowalski74,
  AUTHOR = {Kowalski, Robert},
  TITLE = {Predicate Logic as Programming Language},
  BOOKTITLE = {IFIP Congress},
  PLACE = {Stockholm},
  YEAR = {1974},
  PAGES = {569--574},
  NOTE = {Reprinted in Computers for Artificial Intelligence
                  Applications, (eds. Wah, B. and Li, G.-J.), IEEE 
                  Computer Society Press, Los Angeles, 1986, pp.~68--73}
}
@TECHREPORT{AITR-474,
  AUTHOR = {Jr. Guy Lewis Steele},
  TITLE = {{RABBIT}: {A} Compiler for {SCHEME}},
  INSTITUTION = {MIT Artificial Intelligence Laboratory},
  NUMBER = {AITR-474},
  YEAR = {1978},
  MONTH = MAY # {~6},
  URL = {ftp://publications.ai.mit.edu/ai-publications/0-499/AITR-474.ps;
                 ftp://publications.ai.mit.edu/ai-publications/pdf/AITR-474.pdf},
  OLDABSTRACT = {We have developed a compiler for the lexically-scoped
                 dialect of LISP known as SCHEME. The compiler knows
                 relatively little about specific data manipulation
                 primitives such as arithmetic operators, but
                 concentrates on general issues of environment and
                 control. Rather than having specialized knowledge about
                 a large variety of control and environment constructs,
                 the compiler handles only a small basis set which
                 reflects the semantics of lambda- calculus. All of the
                 traditional imperative constructs, such as sequencing,
                 assignment, looping, GOTO, as well as many standard
                 LISP constructs such as AND, OR, and COND, are
                 expressed in macros in terms of the applicative basis
                 set. A small number of optimization techniques, coupled
                 with the treatment of function calls as GOTO
                 statements, serve to produce code as good as that
                 produced by more traditional compilers. The macro
                 approach enables speedy implementation of new
                 constructs as desired without sacrificing efficiency in
                 the generated code. A fair amount of analysis is
                 devoted to determining whether environments may be
                 stack-allocated or must be heap- allocated.
                 Heap-allocated environments are necessary in general
                 because SCHEME (unlike Algol 60 and Algol 68, for
                 example) allows procedures with free lexically scoped
                 variables to be returned as the values of other
                 procedures; the Algol stack-allocation environment
                 strategy does not suffice. The methods used here
                 indicate that a heap- allocating generalization of the
                 {}
}