
% ------------------------ Institutions -------------------------

@string{msr="{Microsoft Research}"}
@string{york-cs="{Department of Computer Science, York University}"}
@string{san-antonio-cs="{University of Texas at San Antonio}"}
@string{cmu-cs="{School of Computer Science, Carnegie Mellon University}"}
@string{pucs="Department of Computer Science, Princeton University"}
@string{bellcore="Bell Corporate Research Centre"}
@string{bullcore="Bull Corporate Research Centre"}

% ------------------------ Journals -------------------------

@string{ieeetose="IEEE Transactions on Software Engineering"}
@string{tosem="ACM Transactions on Software Engineering and Methodology"}
@string{tse={IEEE Transactions on Software Engineering}}
@string{tcs={Theoretical Computer Science}}
@string{lasc={{Lisp and Symbolic Computation}}}
@string{jfp={{Journal of Functional Programming}}}
@string{scp={{Science of Computer Programming}}}
@string{spe={Software Practice and Experience}}
@string{mscs={Mathematical Structures in Computer Science}}
@string{toplas  = {{ACM Transactions on Programming Languages and Systems}}}
@string{loplas  = {ACM Letters on Programming Languages and Systems}}
@string{sigplan  = {SIGPLAN Notices}}
@string{tocs="ACM Transactions on Computer Systems"}
@string{cacm="Communications of the ACM"}
@string{jacm="Journal of the ACM"}
@string{ddj="Dr Dobbs Journal"}


% ------------------------ Publishers -------------------------

@string{ORA="O'Reilly and Associates"}
@string{prhall="Prentice Hall"}
@string{acm="ACM"}
@string{ieee="IEEE"}
@string{cup="{Cambridge University Press}"}
@string{mit="{MIT Press}"}
@string{aw="Addison Wesley"}
@string{springer="Springer Verlag"}
@string{lncs="{Lecture Notes in Computer Science}"}
@string{wic="{Workshops in Computing}"}
@string{elsivier="Elsivier"}


% ------------------------ Conferences -------------------------

@string{vhllname="USENIX Symposium on Very High Level Languages"}
@string{vhll="Proceedings of the USENIX Symposium on Very High Level Languages"}
@string{wusenix="Proceedings of the Winter USENIX Conference"}
@string{susenix="Proceedings of the Summer USENIX Conference"}
@string{PSDE="Proceedings of the ACM SIGSOFT/SIGPLAN Symposium on
  Practical Software Development Environments, {\em in} SIGPLAN Notices"}
@string{ASPLOSV="Proceedings of the Fifth International Conference on
                 Architectural Support for Programming Languages and
                 Operating Systems, {\em in} SIGPLAN Notices"} 
@string{ASPLOSIV="Proceedings of the Fourth International Conference on
                 Architectural Support for Programming Languages and
                 Operating Systems, {\em in} SIGPLAN Notices"} 
@string{OOPSLA86="OOPSLA '86 Conference Proceedings, {\em in} SIGPLAN Notices"} 
@string{OOPSLA96="OOPSLA '86 Conference Proceedings, {\em in} SIGPLAN Notices"} 
@STRING{cc79="Proceedings of the ACM SIGPLAN '79 Symposium on Compiler Construction"}
@STRING{cc82="Proceedings of the ACM SIGPLAN '82 Symposium on Compiler Construction"}
@STRING{cc84="Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction"}
@STRING{cc86="Proceedings of the ACM SIGPLAN '86 Symposium on Compiler Construction"}
@STRING{cc96="Proceedings of the International Conference on Compiler Construction"}
@STRING{popl73="Conference Record of the ACM Symposium on Principles of Programming Languages"}
@STRING{popl75="Conference Record of the 2nd ACM Symposium on Principles of Programming Languages"}
@STRING{popl76="Conference Record of the 3rd ACM Symposium on Principles of Programming Languages"}
@STRING{popl77="Conference Record of the 4th ACM Symposium on Principles of Programming Languages"}
@STRING{popl78="Conference Record of the 5th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl79="Conference Record of the 6th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl80="Conference Record of the 7th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl81="Conference Record of the 8th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl82="Conference Record of the 9th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl83="Conference Record of the 10th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl84="Conference Record of the 11th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl85="Conference Record of the 12th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl86="Conference Record of the 13th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl87="Conference Record of the 14th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl88="Conference Record of the 15th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl89="Conference Record of the 16th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl90="Conference Record of the 17th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl91="Conference Record of the 18th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl92="Conference Record of the 19th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl94="Conference Record of the 21st Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl95="Conference Record of the 22nd Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl96="Conference Record of the 23rd Annual ACM Symposium on Principles of Programming Languages"}
@STRING{popl97="Conference Record of the 24th Annual ACM Symposium on Principles of Programming Languages"}
@STRING{sigplan86="Proceedings of the ACM SIGPLAN '86 Symposium on Compiler Construction"}
@STRING{iit87="Proceedings of the ACM SIGPLAN '87 Symposium on Interpreters and Interpretive Techniques"}
@STRING{pldi88="Proceedings of the ACM SIGPLAN '88 Conference on Programming Language Design and Implementation"}
@STRING{pldi89="Proceedings of the ACM SIGPLAN '89 Conference on Programming Language Design and Implementation"}
@STRING{pldi90="Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation"}
@STRING{pldi91="Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation"}
@STRING{pldi92="Proceedings of the ACM SIGPLAN '92 Conference on Programming Language Design and Implementation"}
@STRING{pldi94="Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation"}
@STRING{pldi95="Proceedings of the ACM SIGPLAN '95 Conference on Programming Language Design and Implementation"}
@STRING{pldi96="Proceedings of the ACM SIGPLAN '96 Conference on Programming Language Design and Implementation"}
@STRING{pldi97="Proceedings of the ACM SIGPLAN '97 Conference on Programming Language Design and Implementation"}
@string{sosp95="Proceedings of the Fifteenth Symposium on Operating Systems Principles"}
@STRING{asplos2="2nd International Conference on Architectural Support for Programming Languages and Operating Systems"}
@STRING{asplos3="3rd International Conference on Architectural Support for Programming Languages and Operating Systems"}
@STRING{asplos4="4th International Conference on Architectural Support for Programming Languages and Operating Systems"}
@STRING{asplos5="5th International Conference on Architectural Support for Programming Languages and Operating Systems"}



% ---------------------------------------------------------------------------
%                          Main database 
% ---------------------------------------------------------------------------


@inproceedings{mitchell-plotkin:existentials,
  title = "Abstract types have existential type",
  author = "JC Mitchell and GD Plotkin",
  pages = "37-51",
  booktitle = "Twelfth Annual ACM Symposium on Principles of Programming Languages (POPL'85)", 
  month = jan, year = 1985
}

@inproceedings{hinze+:comparing-approaches,
  author        =   {Hinze, Ralf and Jeuring, Johan and L{\"o}h, Andres},
  editors       =   {Backhouse, Roland and Gibbons, Jeremy and  Hinze, Ralf and Jeuring, Johan},
  title         =   {Comparing Approaches to Generic Programming in {Haskell}},
  booktitle     =   {Generic Programming, Advanced Lectures},
  series        =   "LNCS",
  publisher     =   {Springer-{V}erlag},
  year          =   2006,
}

@inproceedings{sulzmann:extracting,
  author = "Martin Sulzmann",
  title = "Extracting programs from type class proofs",
  booktitle = "International Symposium on Principles and Practice
                  of Declarative Programming (PPDP'06)",
  publisher = ACM,
  address = "Venice",
  pages = "97-108",
  year = 2006,
  keywords = "subtleties of type classes"
}

@inproceedings{luth-ghani:composing-monads,
  author = "Christoph L{\"u}th and Neil Ghani",
  title = "Composing monads using coproducts",
  crossref = "icfp02",
  pages = "133-144"
}

@inproceedings{palamidessi:idempotent,
 author = {Catuscia Palamidessi},
 title = {Algebraic Properties of Idempotent Substitutions},
 booktitle = {ICALP '90: Proceedings of the 17th International Colloquium on Automata, Languages and Programming},
 year = {1990},
 isbn = {3-540-52826-1},
 pages = {386--399},
 publisher = {Springer-Verlag},
 address = {London, UK},
 }

@inproceedings{johann+:free-theorems-seq,
  author = "Patricia Johann and Janis Voigtl{\"a}nder",
  title = "Free theorems in the presence of seq",
  crossref = "popl04",
  pages = "99-110",
  keywords = "parametricity"
}

@inproceedings{li+:hare,
  author = "Huiqing Li and Clause Reinke and Simon Thompson",
  title = "Tool Support for Refactoring Functional Programs",
  crossref = "haskell-workshop-03",
  keywords = "Hare"
}

@article{lassez+:unification,
 author = {J.-L. Lassez and M. J. Maher and K. Marriott},
 title = {Unification revisited},
 book = {Foundations of deductive databases and logic programming},
 year = {1988},
 isbn = {0-934613-40-0},
 pages = {587--625},
 publisher = {Morgan Kaufmann Publishers Inc.},
 address = {San Francisco, CA, USA},
 }

@article{diatchki:haskell-modules,
  author = "Iavor Diatchki and Mark Jones and Thomas Hallgren",
  title = "A formal specification of the {Haskell} 98 module system",
  crossref = "haskell-workshop-02"
}

@book{shapiro:algorithmic-debugging,
  author = "E Shapiro",
  title = "Algorithmic debugging",
  publisher = "MIT Press",
  year = 1983
}

@article{page:beseme,
  title = "Software is discrete mathematics",
  author = "Rex Page",
  crossref = "icfp03",
  pages = "79-86"
}

@unpublished{cheong:frag,
  title = "Functional programming and {3D} games",
  author = "Mun Hon Cheong",
  note = "Undergraduate thesis, University of New South Wales",
  month = nov,
  year = 2005,
  keywords = "games shooter yampa"
}

@unpublished{darcs:home,
  key = "Darcs",
  year = 2005,
  author = "David Roundy",
  title = "Darcs home page",
  note = "\url{http://www.darcs.net}"
}

@unpublished{pugs:home,
  key = "Pugs",
  author = "Audrey Tang",
  year = 2005,
  title = "Pugs home page",
  note = "\url{http://www.pugscode.org}"
}

@unpublished{hunit:home,
  key = "HUnit",
  year = 2002,
  author = "Dean Herington",
  title = "HUnit home page",
  note = "\url{http://hunit.sourceforge.net}"
}

@article{pugs:interview,
  title = "A plan for Pugs",
  author = "chromatic",
  journal = "perl.com",
  month = mar,
  year = 2005,
  url = "http://www.perl.com/pub/a/2005/03/03/pugs_interview.html"
}

@article{stosberg:darcs,
  author = "Mark Stosberg", 
  title = "Interview with David Roundy of Darcs on Source Control",
  journal = "OSDir News",
  url = "http://osdir.com/Article2571.phtml", 
  month = nov,
  year = 2005
}

@phdthesis{wile:thesis,
  author = "David Wile",
  title = "A Generative, Nested-Sequential Basis for General Purpose Programming Languages",
  school = "Dept. of Computer Science, Carnegie-Mellon University",
  month = nov,
  year = 1973, 
  note = "First use of *sections*, on page 30"
}

@inproceedings{sinclair:swish,
  title = "Graphical user intefaces for {Haskell}",
  author = "Duncan Sinclair",
  crossref = "Glasgow92",
  pages = "252-257"
}

@article{baars+:permutation-phrases,
  title = "Parsing pemutation phrases",
  author = {Arthur Baars and Andrews L{\"o}h and Doaitse Swierstra},
  journal = jfp,
  volume = 14,  year = 2004, pages = "635-646"
}

@inproceedings{syme:value-recursion,
  title = "Initialising mutually-referential abstract objects: the value recursion challenge",
  author = "Don Syme",
  crossref = "ml-workshop-05",
  pages = "5-26"
}

@inproceedings{scholz:imperative-streams,
  title = "Imperative streams -- a monadic combinator library for synchronous programming",
  author = "Enno Scholz",
  crossref = "icfp98",
  page = "261-272"
}

@inbook{swiestra+:error-correcting-parsers,
  author = "SD Swierstra and L Duponcheel",
  title = "Deterministic, Error-Correcting Combinator Parsers",
  pages = "184--207",
  crossref = "afp96"
}

@inproceedings{ford:packrat,
   title = "Packrat parsing: simple, powerful, lazy, linear time",
   author = "Bryan Ford",
   crossref = "icfp02",
   pages = "36-47"
}

@InProceedings{leijen+:qmlf,
  author = 		  {Daan Leijen and Andres Löh},
  title = 		  {Qualified types for {MLF}},
  crossref = 	  "icfp05",
  pages =		  {144--155},
  year =			  2005,
  keywords =     "higher-rank types, impredicative, MLF"
}

@article{hutton-meijer:monadic-parsing,
  title = "Monadic parsing in {Haskell}",
  author = "Graham Hutton and Erik Meijer",
  journal = jfp,
  volume = 8,
  issue = 4, 
  month = jul, year = 1998,
  pages = "437-444"
}

@article{claessen:parallel-parsing,
  title = "Parallel parsing processes",
  author = "Koen Claessen",
  journal = jfp,
  volume = 14,
  issue = 6, 
  month = nov, year = 2004,
  pages = "741-757"
}

@article{vuillemin:recursion,
  title = "Correct and optimal placement of recursion in a simple programming language",
  author = "J Vuillemin",
  journal = "Journal of Computer and System Sciences",
  volume = 9,
  issue = 3,
  month = dec,
  year = 1974
}

@phdthesis{wadsworth:thesis,
  title = "Semantics and pragmatics of the lambda calculus",
  author = "Christopher Wadsworth",
  school = "Oxford University",
  year = 1971
}

@article{godel:1931,
  author = {Kurt G\"odel},
  title = "{\"U}ber formal unentscheidbare S{\"a}tze der Principia Mathematica und verwandter {Systeme I}",
  journal = "Monatshefte f{\"u}r Mathematik und Physik",
  volume = 38,
  pages = "173--198",
  year = 1931,
  note = "Pages 596--616 of \cite{vanheijenoort:frege-to-godel}"
}

@book{vanheijenoort:frege-to-godel
  ,author = {Jan van Heijenoort}
  ,title = {From Frege to Godel, A Sourcebook in Mathematical Logic}
  ,publisher =  {Harvard University Press}
  ,year = {1967}
}

@book{newcastle-fp-course,
  title = "Advanced Course on Functional Programming and its Applications",
  author = "John Darlington and Peter Henderson and David Turner",
  publisher = cup,
  isbn = "0-521-24503-6",
  year = 1982
}

@inproceedings{henderson:lazy,
  author = "Peter Henderson and Jim Morris",
  title = "A lazy evaluator",
  booktitle = "Proceedings of Proc. 3rd Int. Conf. Principles of programming languages (POPL'76)",
  year = 1976,
  pages ="95-103"
}

@unpublished{dijkstra:ewd798,
  author = "Edsger Dijkstra",
  title = "Trip report {E.W. Dijkstra}, {Newcastle}, 19-25 July 1981",
  year = 1981,
  url = "http://www.cs.utexas.edu/users/EWD/transcriptions/EWD07xx/EWD798.html",
  note = "Dijkstra working note EWD798"
}

@inproceedings{launchbury97monadic,
    author = "John Launchbury and Amr Sabry",
    title = "Monadic State: Axiomatization and Type Safety",
    pages = "227-238",
    crossref = "icfp97",
    url = "citeseer.nj.nec.com/article/launchbury97monadic.html" }

@techreport{sulzmann:gadt-inference,
  author = "Peter Stuckey and Martin Sulzmann",
  title = "Type inference for Guarded Recursive Data Types",
  institution = "National University of Singapore",
  year = 2005,
  keywords = "GADT, inference"
}

@inproceedings{remy:partial,
  title = "Simple, partial type inference for {System F}, based on type containment",
  author = "Didier R\'{e}my",
  crossref = "icfp05",
  pages = "130-143",
  keywords = "higher-rank types, impredicative"
}

@techreport{sulzmann+:gadt-inference,
  title = "Type inference for guarded recursive data types",
  author = "Peter Stuckey and Martin Sulzmann",
  year = 2005,
  institution = "National University of Singapore"
}

@techreport{sulzmann+:eadts,
  author = "Martin Sulzmann and Jeremy Wazny and Peter Stuckey",
  title = "A framework for extended algebraic data types",
  year = 2005, 
  institution = "National University of Singapore",
  keywords = "GADT, type classes"
}

@unpublished{augustsson+:silly,
  author = "Lennart Augustsson and Kent Petersson",
  title = "Silly type families",
  institution = "Chalmers University",
  year = 1994,
  note = "Available as \url{http://www.cs.pdx.edu/~sheard/papers/silly.pdf}",
  keywords = "GADT"
}

@inproceedings{flanagan+:esc-java,
  author = "Cormac Flanagan and K Rustan Leino and Mark Lillibridge and Greg Nelson and James Saxe and Raymie Stata",
  title = "Extended static checking for Java",
  crossref = "pldi02",
  pages = "234-245",
  note = "ESC/Java"
}

@inproceedings{angelov:visual-haskell,
  author = "Krasimir Angelov and Simon Marlow",
  title = "Visual {Haskell}: a full-featured {Haskell} development environment",
  crossref = "haskell-workshop-05",
  keywords = "Visual Studio"
}

@inproceedings{sheard:curry-howard,
  title = "Putting {Curry-Howard} to work",
  author = "Tim Sheard",
  crossref = "haskell-workshop-05",
  pages = "74-85",
  keywords = "GADT"
}

@inproceedings{pottier+:stratified,
  title = "Stratified type inference for generalized algebraic data types",
  author = "Fran\c{c}ois Pottier and Yann R\'{e}gis-Gianas",
  crossref = "popl06"
}

@article{hughes:arrows,
	title = "Generalising Monads to Arrows",
	author = "John Hughes",
	journal = "Science of Computer Programming",
	url = "http://www.cs.chalmers.se/~rjmh/Papers/arrows.ps",
	volume = 37,
	pages = "67-111",
	month = May,
	year = 2000
}

@inproceedings{paterson:arrow-notation,
	title = "A New Notation for Arrows",
	author = "Ross Paterson",
	booktitle = "International Conference on Functional Programming",
	location = "Firenze, Italy",
	url = "http://www.soi.city.ac.uk/~ross/papers/notation.html",
	publisher = "ACM Press",
	pages = "229-240",
	month = Sep,
	year = 2001
}

@incollection{paterson:fop,
	title = "Arrows and Computation",
	author = "Ross Paterson",
	booktitle = "The Fun of Programming",
	editor = "Jeremy Gibbons and Oege de Moor",
	url = "http://www.soi.city.ac.uk/~ross/papers/fop.html",
	publisher = "Palgrave",
	pages = "201-222",
	year = 2003
}

% Applications of arrows

@inproceedings{courtney-elliott:fruit,
	author = "Antony Courtney and Conal Elliott",
	title = "Genuinely Functional User Interfaces",
	url = "http://www.haskell.org/yale/papers/haskellworkshop01/",
	booktitle = "Haskell Workshop",
	pages = "41-69",
	month = Sep,
	year = 2001
}

@inproceedings{hudak:oxford,
	author = "Paul Hudak and Antony Courtney and Henrik Nilsson and John Peterson",
	title = "Arrows, Robots, and Functional Reactive Programming",
	url = "http://www.haskell.org/yale/papers/oxford02/",
	booktitle = "Advanced Functional Programming, 4th International School",
	editor = "Johan Jeuring and Simon Peyton Jones",
	series = "Lecture Notes in Computer Science",
	volume = 2638,
	publisher = "Springer-Verlag",
	year = 2003
}

@article{jansson:dataconv,
	author = "Patrik Jansson and Johan Jeuring",
	title = "Polytypic Data Conversion Programs",
	url = "http://www.md.chalmers.se/~patrikj/poly/dataconv/",
	journal = "Science of Computer Programming",
	volume = 43,
	number = 1,
	pages = "35-75",
	year = 2002
}

@inproceedings{jansson:compact,
	author = "Patrik Jansson and Johan Jeuring",
	title = "Polytypic Compact Printing and Parsing",
	url = "http://www.cs.chalmers.se/~patrikj/poly/dc/",
	booktitle = "European Symposium on Programming",
	series = "Lecture Notes in Computer Science",
	volume = 1576,
	publisher = "Springer-Verlag",
	pages = "273-287",
	year = 1999
}

@inproceedings{klp:hyperfunctions,
	author = "Sava Krstic and John Launchbury and Dusko Pavlovic",
	title = "Hyperfunctions",
	booktitle = "Fixed Points in Computer Science",
	note = "extended abstract",
	year = 2001
}

@inproceedings{nilsson:frp-cont,
	author = "Henrik Nilsson and Antony Courtney and John Peterson",
	title = "Functional Reactive Programming, Continued",
	booktitle = "Proceedings of the 2002 {ACM SIGPLAN} {Haskell} Workshop",
	pages = "51-64",
	address = "Pittsburgh, PA",
	publisher = "{ACM} Press",
	month = Oct,
	year = 2002
}

% Related theoretical work

@article{bcs:context,
	author = "Richard Blute and J.R.B. Cockett and R.A.G. Seely",
	title = "Categories for Computation in Context and Unified Logic",
	url = "http://triples.math.mcgill.ca/~rags/bang/context1.dvi.gz",
	journal = "Journal of Pure and Applied Algebra",
	volume = 116,
	pages = "49-98",
	year = 1997
}

@article{power:premonoidal,
	title = "Premonoidal Categories and Notions of Computation",
	author = "John Power and Edmund Robinson",
	url = "ftp://ftp.dcs.qmw.ac.uk/pub/lfp/edmundr/premoncat.dvi.gz",
	journal = "Mathematical Structures in Computer Science",
	volume = 7,
	number = 5,
	pages = "453-468",
	month = Oct,
	year = 1997
}

@inproceedings{power:env,
	author = "John Power and Hayo Thielecke",
	title = "Environments, Continuation Semantics and Indexed Categories",
	url = "http://www.cs.bham.ac.uk/~hxt/research/TACSfinal.ps",
	booktitle = "Proceedings TACS'97",
	publisher = "Springer",
	series = "LNCS",
	volume = 1281,
	pages = "391-414",
	year = 1997
}

@inproceedings{power:freyd,
	author = "John Power and Hayo Thielecke",
	title = "Closed {Freyd}- and kappa-categories",
	url = "http://www.cs.bham.ac.uk/~hxt/research/freydkappa.ps",
	booktitle = "ICALP",
	publisher = "Springer",
	series = "LNCS",
	volume = 1644,
	year = 1999
}

@unpublished{jones:new-approach,
  author= "Mark P Jones",
  title = "A new approach to type class overloading",
  note = "Distributed on Haskell mailing list",
  month = feb,
  year = 1991
}

@inproceedings{rojemo:highlights,
  author = "N Rojemo",
  title = "Highlights from nhc: a space-efficient {Haskell} compiler",
  crossref = "fpca95"
}

@inproceedings{wallace+:hat,
  author = "Malcolm Wallace and Chitil and Thorsten Brehm and Colin Runciman",
  title = "Multiple-View Tracing for {Haskell}: a New {Hat}",
  crossref = "haskell-workshop-01"
}

@inproceedings{wallace+:bits,
  author = "Malcolm Wallace and Colin Runciman",
  title = "The bits between the lambdas: binary data in a lazy functioanl language",
  booktitle = "International Symposium on Memory Management",
  year = 1998
}

@article{mcbride:faking-it,
  author    = {Conor McBride},
  title     = {Faking it: Simulating dependent types in {Haskell}},
  journal   = jfp,
  volume    = {12},
  number    = {4{\&}5},
  year      = {2002},
  pages     = {375-392}
}

@inproceedings{loh:generic-haskell,
  author = {Andres L{\"o}h and Dave Clarke and Johan Jeuring},
  title = "Dependency-style {Generic Haskell}",
  crossref = "icfp03",
  pages = "141-152"
}

@inproceedings{hinze:masses,
  author = "Ralf Hinze",
  title = "Generics for the masses",
  crossref = "icfp04"
}

@inproceedings{neubauer:fundeps,
  author = "Matthias Neubauer and Peter Thiemann and Martin Gasbichler and Michael Sperber",
  title = "A functional notation for functional dependencies",
  crossref = "haskell-workshop-01",
}

@inproceedings{neubauer:logic,
    author = "Matthias Neubauer and Peter Thiemann and Martin Gasbichler and Michael Sperber",
    title = "Functional logic overloading",
    crossref = "popl02",
    pages = "233-244",
    url = "citeseer.ist.psu.edu/neubauer01functional.html" }
}

@inproceedings{kiselyov:hlist,
 author = {Oleg Kiselyov and Ralf L{\"a}mmel and Keean Schupke},
 title = "{Strongly typed heterogeneous collections}",
 crossref = "haskell-workshop-04",
 pages = {96--107}
}

@inproceedings{brandt:coinductive,
  author = "Michael Brandt and Fritz Henglein",
  title = "Coinductive Axiomatization of Recursive Type Equality and Subtyping",
  booktitle = "Proc 3rd International Conference on Typed Lambda Calculi and Appliactions (TLCA'97), Nancy, France",
  series = lncs,
  volume = 1210,
  publisher = springer,
  pages = "63-81",
  year = 1997
}

@inproceedings{lu-sulzmann:subtyping,
  author = "K Zhuo Ming Lu and M Sulzmann",
  title = "An implementation of subtyping among regular expression types",
  booktitle = "Proc Asian Programming Languages Symposium (APLAS'04)",
  volume = 3302,
  series = lncs,
  publisher = springer,
  pages = "57-73",
  year = 2004
}

@article{trinder:par-dist-haskells,
  author = "PW Trinder and HW Loidl and RF Pointon",
  title = "Parallel and Distributed {Haskells}",
  journal = jfp,
  volume = 12,
  issue = {4&5},
   month = jul,
  year = 2002,
  pages = "469-510"
} 

@phdthesis{ennals:thesis,
  author = "Robert Ennals",
  title = "Adaptive Evaluation of Non-Strict Programs",
  institution = "University of Cambridge",
   year = 2004,
   annote = "Supervised by Simon Peyton Jones"
} 

@InProceedings{Reid:Spine,
  author = 	 "A. Reid",
  title = 	 "Putting the Spine Back in the {Spineless Tagless
                 G-Machine}: {A}n Implementation of Resumable Black-Holes",
  booktitle = 	 ifl98,
  pages = 	 "186-199",
  year = 	 1999,
  volume = 	 1595,
  series = 	 lncs,
  publisher = SV
}

@Article{free-lunch-over,
  author = 	 {Herb Sutter},
  title = 	 {A Fundamental Turn Toward Concurrency in Software},
  journal = 	 {Dr. Dobb's Journal},
  year = 	 2005,
  month =	 {March}
}

@book{pierce:tapl,
  title = "Types and Programming Languages",
  author = "Benjamin Pierce",
  publisher = "MIT Press",
  year = 2002
}

@article{kiselyov:implicit-configurations,
  author = "Oleg Kiselyov and Ken Shan",
  title = "Implicit configurations; or, type classes reflect the values of types",
  crossref = "haskell-workshop-04",
  pages = "33-44"
}

@article{shan:sexy-types,
  author = "Ken Shan",
  title = "Sexy types in action",
 journal = "SIGPLAN Notices",
 volume = "39",
 number = "5",
 month = "May",
 year = 2004, 
  pages = "15-22",
  keywords = "higher rank types"
}

@unpublished{scheme48:manual,
  title = "The incomplete {Scheme 48 Reference Manual} for release 1.1",
  author = "Richard Kelsey and Jonathan Rees and Mike Sperber",
  month = jul,
  year = 2004,
  url = "http://s48.org/index.html"
}
  
@inproceedings{Holst91,
   topic = "compiler technology",
   author = {CK Holst},
   editor = {SL {Peyton~Jones} and G Hutton and CK Holst},
   title = {Improving full laziness},
   booktitle = {Functional programming, Glasgow 1990},
   publisher = springer,
   series = {Workshops in Computing},
   year = {1991},
   keywords = {lambda lifting, compiler optimisation, partial evaluation}
}

@inproceedings{nanevski:meta-variables,
  title = "A Modal Foundation for Meta-Variables",
  author = "Aleksandar Nanevski and Brigitte Pientka and Frank Pfenning",
  booktitle = "Proceedings of MER$\lambda$IN'03, Uppsala, Sweden", 
  pages = "159-170",
  year = 2003
} 

@techreport{pasalic:omega,
  author = "Emir Pasalic",
  title = "Meta-Programming with Typed Object-Language Representations",
  institution = "Oregon Graduate Institute",
  year = 2004,
  keywords = "phantom types, type indexed data types"
}

@article{jay:pattern-calc,
  author = 	 "Barry Jay",
  title = 	 {The pattern calculus},
  url = {\url{http://www-staff.it.uts.edu.au/~cbj/Publications/pattern_calculus.ps}},
  journal = toplas,
  volume = 26,
  issue = 6,
  month = nov,
  year = 2004,
  pages = "911-937"
}

@techreport{simonet-pottier:gadt-inference,
  AUTHOR = {Vincent Simonet and François Pottier},
  TITLE = {Constraint-Based Type Inference with Guarded Algebraic Data Types},
  URL = {http://pauillac.inria.fr/~fpottier/publis/simonet-pottier-hmg.ps.gz},
  institution = {Inria},
  MONTH = JUL,
  YEAR = {2003} }

@inproceedings{sheard:future,
  title = "Languages of the future",
  author = "Tim Sheard",
  booktitle = {ACM Conference on Object Orientated Programming Systems, Languages and Applicatioons (OOPSLA'04)},
  year = 2004
}

@inproceedings{sheard:omega,
  title = "Meta-programming with built-in type equality",
  author = "Tim Sheard and Emir Pasalic",
  booktitle = "Proceedings of the Fourth International Workshop on Logical Frameworks and Meta-languaegs (LFM'04), Cork",
  month = jul,
  year = 2004,
  keywords = "phantom types, type indexed data types"
}

@incollection{hinze:fun,
  author = "Ralf Hinze",
  title = "Fun with phantom types",
  booktitle = "The fun of programming",
  editor = "Jeremey Gibbons and Oege de Moor",
  publisher = "Palgrave",
  year = 2003,
  pages = {245-262}
}
  
@InCollection{dybjer:families,
   author = 	 "Peter Dybjer",
   title = 	 "Inductive {S}ets and {F}amilies in {M}artin-{L}{\"o}f's {T}ype
		  {T}heory",
   crossref =	 "huet.plotkin:logical.frameworks"
}

@Book{huet.plotkin:logical.frameworks,
   title = 	 "Logical {F}rameworks",
   booktitle = 	 "Logical {F}rameworks",
   publisher = 	 "Cambridge University Press",
   year = 	 1991,
   editor =	 "Gérard Huet and Gordon Plotkin"
}

@inproceedings{xi:dml,
  author = "Hongwei Xi and Frank Pfenning",
  title = {Dependent Types in Practical Programming},
  crossref = "popl99",
  pages = "214--227"
}

@incollection{xi:applied-type-systems,
  author = "Hongwei Xi", 
  title = "Applied Type System",
  booktitle = {Proceedings of TYPES 2003}, 
  publisher = springer,
  series = LNCS,
  volume = 3085, 
  pages = "394--408", 
  year = 2004 }

@InProceedings{xi:guarded-datatypes,
  author = 	 {Hongwei Xi and Chiyan Chen and Gang Chen},
  title = 	 {Guarded Recursive Datatype Constructors},
  booktitle = 	 {Proceedings of the 30th {ACM} {SIGPLAN-SIGACT} Symposium on 
		  Principles of Programming Languages},
  pages =	 {224--235},
  year =	 2003,
  publisher =	 {ACM Press}
}

@TechReport{cheney-hinze:phantom-types,
  author = 	 {James Cheney and Ralf Hinze},
  title = 	 {First-Class Phantom Types},
  institution =  {Cornell University},
  year = 	 2003,
  type =	 {CUCIS},
  number =	 {TR2003-1901}
}

@ARTICLE{crary+:lambdaR-jfp,
  AUTHOR = {Karl Crary and Stephanie Weirich and Greg Morrisett},
  TITLE = {Intensional Polymorphism in Type Erasure Semantics},
  JOURNAL = jfp,
  MONTH = NOV,
  YEAR = {2002},
  VOLUME = 12,
  NUMBER = 6,
  PAGES = {567--600},
  keywords = "Lambda-R"
}

@phdthesis{magnusson:alf,
  author = "Lena Magnusson",
  title = "The implementation of {ALF} - a proof editor based on {Martin-L{\"o}f}'s monomorhic type theory with explicit substitution", 
  school = "Chalmers University",
  year = 1994
}

@techreport{sulzmann:annotations,
 title = "Type Annotations in {Haskell}",
 author = "Peter Stuckey and Martin Sulzmann and Jeremy Wazny",
 institution = "National University of Singapore",
 year = 204
}

@unpublished{sulzmann:chameleon,
  author = "Martin Sulzmann",
  title = "A {Haskell} programmer's guide to {Chameleon}",
  note = "Available at \url{http://www.comp.nus.edu.sg/~sulzmann/chameleon/download/haskell.html}",
  institution = "National University of Singapore",
  year = 2003
}

@inproceedings{kameyana:continuations,
  title = "A sound and complete axiomatization of deliminted continuations",
  author = "Y Kaneyama and M Hasegawa",
  crossref = "icfp03",
  pages = "177-188"
}

@inproceedings{chitil:principal,
  title = "Compositional explanation of types and algorithmic debugging of type errors",
  author = "Olaf Chitil",
  crossref = "icfp01",
  page = "193--204"
}

@inproceedings{baars:dynamic,
  title = "Typing dynamic typing",
  author = "Arthur L Baars and S. Doaitse Swierstra",
  crossref = "icfp02",
  pages = "157-166"
}

@inproceedings{helium:icfp03,
  title = "Scripting the type inference process",
  author = "B Heeren and J Hage and SD Swierstra",
  crossref = "icfp03", 
  pages = "3-14"
}

@inproceedings{cooper:vizer,
  title = "Vizer: a system to vectorise {Intel} x86 binaries",
  author = "KD Cooper and A Dasgupta and K Kennedy",
  booktitle = "Los Alamos Computer Science Institute",
  year = 2002,
  keywords = "SWAR, MMX"
}


@inproceedings{dietz:swar,
  author = "HG Dietz and RJ Fisher", 
  title = "Compiling For SIMD Within A Register", 
  booktitle = "Workshop on Languages and Compilers for Parallel Computing, North Carolina",
  year = 1998,
  month = aug,
  url = "http://shay.ecn.purdue.edu/~swar/",
  keywords = "SWAR"
}

@inproceedings{larsen:superword,
  title = "Exploiting Superword Level Parallelism with Multimedia Instruction Sets",
  author = "Sam Larsen and Saman Amarasinghe", 
  crossref = "pldi00",
  keywords = "SMT"
}

@inproceedings{redstone:mini-threads,
  title = "Mini-threads: Increasing TLP on Small-Scale SMT Processors",
  author = "Josh Redstone and Susan Eggers and Henry Levy",
  crossref = "hpca03",
  pages = "19-30",
  keywords = "SMT"
}

@article{scholz:sac,
  author = "SB Scholz",
  title = "Single {Assignment} {C} -- efficient support for high-level array operations in a functional setting",
  journal = jfp,
  volume = "13",
  pages = "1005-1059",
  url = "http://www.informatik.uni-kiel.de/~sbs/",
  year = 2003,
  keywords = "SAC"
}

@inproceedings{eggers:smt,
   title = "Simultaneous multithreading: maximising on-chip parallelism",
   author = "DM Tullsen and SJ Eggers and HM Levy",
   crossref = "isca95",
   keywords = "SMT"
}

@article{douence:systematic,
    author = "Rémi Douence and Pascal Fradet",
    title = "A Systematic Study of Functional Language Implementations",
    journal = "ACM Transactions on Programming Languages and Systems",
    volume = "20",
    number = "2",
    month = "March",
    publisher = "ACM Press",
    pages = "344--387",
    year = "1998",
    url = "citeseer.nj.nec.com/281775.html" }

@article{lee:folklore-inference,
  pages = "707--723",
  year = "1998",
  title = "Proofs about a Folklore Let-Polymorphic Type Inference Algorithm",
  author = "Oukseh Lee and Kwangkeun Yi",
  volume = "20",
  number = "4",
  journal = toplas,
  month = jul,
  url = "citeseer.nj.nec.com/151436.html",
  keywords = "Algorithm M, pushing type inwards, Hindley Damas Milner" }


@InProceedings{moran:improvement,
  author =	 {A. K. Moran and D. Sands},
  title =	 {Improvement in a Lazy Context: An Operational Theory
                  for Call-By-Need},
  crossref = "popl99",
  pages =	 {43--56},
  annote = "A standard reference for a small-step operational semantics of lazy evaluation
          using an explicit stack"

}

@manual{sheard:meta-ml-manual
,author="Tim Sheard and Zino Benaissa and Matthieu Martel"
,title="Introduction to Multistage Programming Using {MetaML}"
,organization="Pacific Software Research Center, Oregon Graduate Institute"
,edition="2nd"
,year="2000"
,note="Available at {\tt http://cse.ogi.edu/{\char'176}sheard/papers/manual.ps}"
}

@inproceedings{krishnamurthi:extensible-visitor,
   author = "Shriram Krishnamurthi and Matthias Felleisen and Daniel P. Friedman",
   title = "Synthesizing Object-Oriented and Functional Design to Promote Re-Use",
   booktitle = "Proc European Conference on Object-Oriented Programming (ECOOP'98)",
   year = 1998,
   keywords = "extensible visitor pattern"
}

@article{paterson:de-bruijn,
	title = "De {Bruijn} Notation as a Nested Datatype",
	author = "Richard Bird and Ross Paterson",
	url = "http://www.soi.city.ac.uk/~ross/papers/debruijn.html",
	journal = jfp,
	volume = 9,
	number = 1,
	pages = "77-91",
	month = Jan,
	year = 1999,
        keywords = "nested data type, polymorphic recursion"
}

@inproceedings{jansson-jeuring:polyp,
  author ="P.~Jansson and J.~Jeuring",
  title ="Poly{P} - a polytypic programming language extension",
  crossref = "popl97",
  pages ="470--482",
  documentURL ="http://www.cs.chalmers.se/~johanj/polytypism/polyp.ps"
}

@inproceedings{palsberg:visitor-pattern,
  author = "Jens Palsberg and Barry Jay",
  title = "The essence of the visitor pattern",
  booktitle = "Proceedings 22nd Annual International Computer Software and Applications Conference (COMPSAC'98)",
  pages = "9-15",
  addres = "Vienna",
  month = aug,
  year = 1998
}

@InProceedings{sheard-functor,
  author =       "T.~Sheard",
  title =        "Generic Unification via {Two-Level} Types and
                 Parameterized Modules",
  pages =        "86--97",
  crossref = "icfp01"
}

@inproceedings{fluet:phantom,
  author = "M Fluet and R Pucella",
  title = "Phantom types and subtyping",
  booktitle = "Proceedings of the 2nd IFIP International Conference on Theoretical Computer Science (TCS'02)",
  year = 2002
}

@unpublished{hudak:restricted,
  author = "P Hudak",
  title = "Phil's Proposal for Restricted Type Classes",
  note = "Email to the {\tt haskell} mailing list",
  month = jun,
  year = 1991,
  keywords = "forwarded pj:typeable to the Haskell list"
}

@unpublished{henderson:cast, 
  author = "F Henderson", 
  title = "Dynamic type class casts proposal",
  note = "Email to the {\tt haskell} mailing list",
  month = oct,
  year = 1999,
  keywords = "type safe cast"
}

@InProceedings{yang:encoding-types,
   author = "Zhe Yang",
   title = "Encoding Types in {ML-Like} Languages",
   pages = "289--300", 
   crossref="icfp98"
}

@inproceedings{weirich:intensional,
  AUTHOR = {Stephanie Weirich},
  TITLE = {Higher-Order Intensional Type Analysis},
  crossref = "esop02",
  pages = "98--114",
  PS = {http://www.cs.cornell.edu/sweirich/papers/hota/hota.ps},
  PDF = {http://www.cs.cornell.edu/sweirich/papers/hota/hota.pdf},
  ABSTRACT = {Intensional type analysis provides the ability to
     analyze abstracted types at run time. In this paper, we extend
     that ability to higher-order and kind-polymorphic type
     constructors. The resulting language is elegant and expressive:
     we show through examples how it extends the repertoire of
     polytypic functions that may be defined.}
}

@InProceedings{meijer:bananas,
 author = "E Meijer and M Fokkinga and R Paterson",
 title = "{Functional Programming
           with Bananas, Lenses, Envelopes, and Barbed Wire}",
  crossref = "fpca91",
  pages = "124--144"
}

@inproceedings{wallace:haxml,
  author = "M Wallace and C Runciman",
  title = "{Haskell} and {XML}: Generic Combinators or Type-Based Translation",
  crossref = "icfp99",
  pages = "148-159",
  keywords = "HaXML"
}

@inproceedings{weirich:type-safe-cast,
  author = "S Weirich",
  title = "Type-safe cast", 
  crossref = "icfp00",
  pages = "58-67"
}

@techreport{taha:meta-ocaml,
  author = "C Calcagno and W Taha and L Huang and X Leroy",
  title = "A bytecode-compiled, type-safe, multi-stage language",
  institution = "Computer Science Department, Yale University",
  year = 2002
}

@article{hughes:append,
  author = "RJM Hughes",
  title = "A novel representation of lists and its application to the function reverse",
  journal = "Information Processing Letters",
  volume = 22,
  issue = 3,
  year = 1986
}

@book{alexandrescu:modern-c++,
  author = "A Alexandrescu",
  title  = "Modern {C++} design",
  publisher = aw,
  year = 2001,
  keywords = "template metaprogramming"
}

@book{generative:book,
  author = "Krzysztof Czarnecki and Ulrich W Eisenecker",
  title = "Generative Programming - Methods, Tools, and Applications",
  publisher = aw,
  year = 2000,
  keywords = "template metaprogramming, generic programming"
}

@inproceedings{lammel:typed-combinators, 
 author      = "R.~Lämmel and J.~Visser",
 title       = "{Typed Combinators for Generic Traversal}",
 booktitle   = "{Proc.\ Practical Aspects of Declarative Programming PADL 2002}",
 publisher   = "Springer-Verlag",
 series      = "LNCS",
 volume      = "2257",
 year        = "2002",
 month       = jan,
 pages       = "137--154"
}

@techreport{williams:inheritance,
  author = "Tony Williams",
  title = "On inheritance and how to use it",
  year = 1990,
  keywords = "object oriented"
}

@techreport{briggs:experience,
  author = "P Briggs and KD Cooper and L Torczon",
  title = "Experience with low-level intermediate representations",
  institution = "Rice University"
}

@techreport{wall:mahler,
  author = "D Wall",
  title = "The Mahler intermediate language",
  year = 1997,
  keywords = "portable assembler, C--"
}

@techreport{lu:elf,
  author = "Hongjiu Lu",
  title = "ELF: from the programmer's persective",
  year = 1995,
  keywords = "linking and loading"
}
@article{graham:lisp,
  author = "Paul Graham",
  title = "Beating the averages",
  booktitle = "Invited talk at Franz Developer Symposium, Cambridge Ma",
  year = 2001,
  keywords = {Using Franz Lisp to beat the competition in web services}
}

@techreport{visser:first-class-rules,
  author = "E Dolstra and E Visser",
  title = "First-class rules and generic traveral",
  institution = "Univ of Utrecht",
  year = 2001
}

@Unpublished{SewardCProf-1,
  author =       {J Seward},
  title =        {Cacheprof},
  note =         {http://www.cacheprof.org/},
  OPTkey =       {},
  year =         {1999},
  OPTannote =    {}
}

@Unpublished{SewardVGrind-1,
  author =       {J Seward},
  title =        {Valgrind, an open-source memory debugger for x86-GNU/Linux},
  note =         {http://developer.kde.org/~sewardj/},
  OPTkey =       {},
  year =         {2002},
  OPTannote =    {}
}

@article{SewardCProf,
  title =        {Cacheprof: A tool for analysing cache behaviour of executables},
  OPTkey =       {},
  author =       {J Seward},
  OPTorganization = {},
  OPTaddress =   {},
  OPTedition =   {},
  OPTmonth =     {},
  OPTyear =      {},
  OPTnote =      {},
  OPTannote =    {}
}

@techreport{rota:ten-lessons,
  title = "Ten lessons I wish I had been taught",
  author = "Gian-Carlo Rota",
  year = 1996
}

@inproceedings{sulzmann:chr,
  title = "Type Classes and Constraint Handling Rules",
  author = "Kevin Glynn and Peter Stuckey and Martin Sulzmann",
  booktitle = "First Workshop on Rule-Based Constraint Reasoning and Programming", 
  year = 2000,
  month = jul,
  keywords = {CHR}
} 

@techreport{glynn:chr,
  title = "A general type class framework",
  author = "Kevin Glynn and Peter Stuckey and Martin Sulzmann",
  institution = "Univ of Melbourne",
  year = 2000,
  month = jul,
  keywords = {CHR}
} 

@inbook{mairson:type-reconstruction,
  title = "Unification and ML type reconstruction",
  authors = "PC Kanellakis and H Mairson and JC Mitchell",
  booktitle = "Computational Logic: Essays in Honor of Alan Robinson",
  editor = "J-L Lassez and GD Plotkin",
  pages = "444-478",
  publisher = "MIT Press",
  year = 1991,
  keywords = "Shows that ML type inference takes time exponential in program size"
}

@article{gunter:dependencies,
  author = "Carl Gunter",
  title = "Abstracting dependencies between software configuration items",
  year = 2000,
  keywords = "separate compilation"
}

@article{harper:cm,
  author = "Harper and Lee and Pfenning and Rollins",
  title = "A compilation manager for Standard ML of New Jersey",
  year = 1994,
  keywords = "separate compilation"
}

@article{schwanke:smarter,
  author = "Schwanke and Kaiser",
  title = "Smarter recompilation",
  year = 1988,
  keywords = "separate compilation"
}

@article{blume:dependencies,
  author = "Matthias Blume",
  title = "Dependency analysis for Standard ML",
  year = 1999,
  keywords = "separate compilation"
}

@inproceedings{hinze:new-approach,
  author = "Ralf Hinze",
  title = "A new approach to generic functional programming",
  crossref = "popl00",
  pages = "119-132"
}
  
@article{hinze:manufacturing,
  author = "Ralf Hinze",
  title = "Manufacturing datatypes",
  year = 2001,
  journal = jfp,
  volume = 1, issue = 5,
  page = "493-524"
}

@techreport{hinze:type-indexed-types,
  author = "Ralf Hinze and Johan Jeuring",
  title = "Type-indexed data types",
  year = 2001
}

@article{fruhwirth:chr,
  author = "T Fruhwirth",
  title = "Theory and practice of constraint handling rules",
  journal = "Journal of Logic Programming",
  volume = 20,
  year = 1994,
  pages = "1-47"
}

@inproceedings{felleisen:dr-scheme,
    author = "Findler, R and Flanagan, C and Flatt, M and Krishnamurthi, S and Felleisen, M",
    title = "{D}r{S}cheme: {A} {P}edagogic {P}rogramming {E}nvironment for {S}cheme",
    crossref = "plilp97",
    pages = "369--388",
    keywords = "debugger"
}

@article{hultquist:reservoir-sampling,
  author = "PF Hultquist and WR Mahoney",
  title = "Reservoir sampling",
  journal = ddj,
  month = jan,
  year = 2001,
  pages = "189-190",
  keywords = "statistics, experiments, data, averages"
}

@InProceedings{Kirchner93:elan,
  author = {Claude Kirchner and Hélène Kirchner and Marian Vittek},
  title = {Implementing computational systems with constraints},
  booktitle = {Proceedings of the first Workshop on Principles and Practice of
  Constraint Programming},
  editor = {P. Kanellakis and J-L. Lassez and V. Saraswat},
  year = {1993},
  pages = {166--175},
  organization = {Brown University},
  address = {Providence R.I., USA}
}

@InProceedings{pierce:lti,
  author =       "Benjamin C. Pierce and David N. Turner",
  title =        "Local Type Inference",
  crossref = "popl98",
  pages =        "252--265"
}

@inproceedings{camarao:system-ct-flops,
  title = "Type Inference for Overloading without Restrictions, Declarations or Annotations",
  author = "Carlos Camarao and Lucila Figueiredo",
  booktitle = "FLOPS'99, Tsukuba, Japan",
  month = Nov,
  year = 1999,
  publisher = springer,
  series = lncs,
  issue = 1722, 
  pages = "37-52",
  keywords = "System CT"
}

@techreport{camarao:system-ct,
  author = "Carlos Camarao and Lucila Figueiredo",
  title = "Type inference for overloading",
  institution = "Universite Federal de Minas Gervais, Belo Horizonte, Brazil",
  year = 2001,
  keywords = "System CT",
  url = "http://www.dcc.ufmg.br/~camarao/ct.ps.gz"
}

@inproceedings{bourdoncle:multi-methods,
  author = "F Bourndoncle and S Merz",
  title = "Type checking higher-order polymorphic multi-methods",
  crossref = "popl99"
}

@InProceedings{shields:tir,
  author =       "Mark Shields and Erik Meijer",
  title =        "Type-Indexed Rows",
  crossref = "popl01"
}

@inproceedings{claessen:quickcheck,
  author =       "Koen Claessen and John Hughes",
  title =        "{QuickCheck}: a lightweight tool for random testing of
                 {Haskell} programs",
  crossref = "icfp00",
  pages =        "268--279",
  url =          "http://www.acm.org/pubs/citations/proceedings/fp/351240/p268-claessen/;
                 http://www.acm.org/pubs/articles/proceedings/fp/351240/p268-claessen/p268-claessen.pdf",
}

@inproceedings{claessen:quickcheck2,
  author =       "Koen Claessen and John Hughes",
  title =        "Testing monadic code with {QuickCheck}",
  crossref = "haskell-workshop-02"
}

@techreport{reid:graphics-lib-manual,
  author = "A Reid",
  title = "The {Hugs} graphics library",
  institution = "School of Computing, University of Utah",
  year = 2000
  }

@book{de-moor:algebra-book,
  title = "The Algebra of Programming",
  author = "Richard Bird and Oege De Moor",
  publisher = prhall,
  year = 1996
}

@inproceedings{jones:thih,
  title = "Typing {Haskell} in {Haskell}",
  author = "Mark Jones",
  crossref = "haskell-workshop-99"
}

@InProceedings{maude:principles,
  author =       "Manuel Clavel and Steven Eker and Patrick Lincoln and José Meseguer",
  title =        "Principles of Maude",
  editor =       "José Meseguer",
  volume =       "4",
  series =       "Electronic Notes in Theoretical Computer Science",
  pages =        "65-89",
  booktitle =    "Proceedings of the First International
                  Workshop on Rewriting Logic",
  year =         "1996",
  publisher =    "Elsevier"
}

@book{nipkow:rewriting-book,
  author = "Franz Baader and Tobias Nipkow",
  title = "Term rewriting and all that",
  publisher = cup,
  year = 1999
}

@inproceedings{chakravarty:array-fusion,
  title = "Functional Array Fusion",
  author = "M Chakravarty and G Keller",
  crossref = "icfp01"
}

@inproceedings{visser:stratego,
  author = "E Visser",
  title = "Strategic pattern matching",
  booktitle = "Rewriting Techniques and Applications (RTA'99), Trento",
  series = lncs,
  publisher = springer,
  year = 1999,
  month = jul
}

@article{NordinTolmach00,
  author="Thomas Nordin and Andrew Tolmach",
  title="Modular Lazy Search for Constraint Satisfaction Problems",
  journal="Journal of Functional Programming",
  year = 2000,
  note="(To appear.)"
}


@techreport{mendhekar97rg,
    author = "A. Mendhekar and G. Kiczales and J. Lamping",
    title = "{RG}: {A} case-study for aspect-oriented programming",
    institution = "Xerox Palo Alto Research Center",
    number = "SPL97-009",
    month = "February",
    address = "Palo Alto, CA, USA",
    year = "1997",
    url = "citeseer.nj.nec.com/mendhekar97rg.html"
}

@inproceedings{kiczales97aspect-oriented,
    author = "Gregor Kiczales and John Lamping and Anurag Mendhekar and Chris Maeda and Cristina Lopes and Jean-Marc Loingtier and John Irwin",
    title = "Aspect-Oriented Programming",
    booktitle = "ECOOP '97 --- Object-Oriented Programming 11th European Conference",
    volume = "1241",
    series="LNCS",
    pages = "220--242",
    year = "1997"
}

@inproceedings{Ait98,
   author="William Aitken and Brian Dickens and Paul Kwiatkowski and Oege {de Moor} and David Richter and Charles Simonyi",
   title="Transformation in Intentional Programming",
   booktitle="Proc. 5th International Conference on Software Reuse",
   month=jun,
   year=1998,
   publisher="IEEE Press"}

@inproceedings{FaiNylPri97,
  author="Rickard E. Faith and Lars S. Nyland and Jan F. Prins",
  title="{KHEPERA}: A System for Rapid Implementation of Domain Specific Languages",
  booktitle="Proc. USENIX Conference on Domain-Specific Languages",
  month=oct,
  year=1997,
  pages="243--255"}

@inproceedings{Assmann96,
   author="Uwe Assmann",
   title="How to Uniformly Specify Program Analysis and Transformation 
	  with Graph Rewrite Systems",
   booktitle="Proc. Compiler Construction 1996",
   series="LNCS",
   volume=1060,
   year=1996,
   pages="121--135"}

@inproceedings{deMoor99generic,
    author = "O. {de Moor} and G. Sittampalam",
    title = "Generic Program Transformation",
    booktitle="Proc. 3rd International Summer School on Advanced Functional Programming",
    series="LNCS",
    volume = "1608",
    pages = "116--149",
    year = "1999"
}


@inproceedings{visser:program-optimisers,
  author =       {Visser, Eelco and Benaissa, Zine-el-Abidine and
                  Tolmach, Andrew},
  title =        {Building Program Optimizers with Rewriting
                  Strategies},
  crossref = "icfp98",
  pages =        {13--26}
}

@inproceedings{Klein96,
  author =       "M. Klein and J. Knoop and D. Koschützki and B.
                 Steffen",
  title =        "{DFA and OPT-METAFrame}: {A} Tool Kit for Program
                 Analysis and Optimization",
  booktitle =    "Proc. 2nd International Workshop on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'96)",

  series =      "LNCS",
  volume =       "1055",
  pages =        "418-421",
  year =         "1996"
}

@InProceedings{Engler2000a,
  author =       "Dawson Engler and Benjamin Chelf and Andy Chou and
                 Seth Hallem",
  title =        "Checking System Rules Using System-Specific,
                 Programmer-Written Compiler Extensions",
  booktitle =    "Symposium on Operating Systems Design and
                 Implementation (OSDI 2000)",
  address =      "San Diego, CA",
  month =        oct,
  year =         "2000"
}


@InProceedings{Guyer99,
  author =       "Samuel Z. Guyer and Calvin Lin",
  title =        "An Annotation Language for Optimizing Software
                 Libraries",
  pages =        "39--52",
  booktitle =    "Proceedings of the 2nd Conference on Domain-Specific
                 Languages",
  month =        oct,
  publisher =    "USENIX Association",
  address =      "Berkeley, CA",
  year =         "1999",
}



@inProceedings{Lacey01,
author="David Lacey and Oege {de Moor}",
title="Imperative Program Transformation by Rewriting",
booktitle="Proc. Compiler Construction 2001",
month=apr,
year=2001,
pages="52--68",
series =      "LNCS",
volume =       "2027"
}

@inProceedings{Lipps88,
author="Peter Lipps and Ulrich Möncke and Reinhard Wilhelm",
title="{OPTRAN} - A Language/system for the Specification of Program Transformations: System Overview and Experiences",
booktitle="Proc 2nd Workshop on Compiler Compilers and High Speed Compilation",
series="LNCS",
volume=371,
pages="52--65",
month=oct,
year=1988}


@phdthesis{Farnum90,
author="Charles Donald Farnum",
title="Pattern-Based Languages for Prototyping of Compiler Optimizers",
school="University of California, Berkeley",
year=1990,
note="Technical Report CSD-90-608"}

@inproceedings{Tjiang92,
        author          = "S.W.K. Tjiang and J.L. Hennessy",
        title           = "{Sharlit} -- a tool for building optimizers",
        booktitle       = "Proc. ACM SIGPLAN '92 Conference on Programming Language Design and Implementation",
        pages           = "82--93",
        address         = "San Francisco, CA",
        month           = jun,
        year            = 1992}

@Article{Whitfield94,
  author =       "Deborah Whitfield and Mary Lou Soffa",
  title =        "The Design and Implementation of {Genesis}",
  journal =      "Soft­ware --- Prac­tice and Experience",
  volume =       "24",
  number =       "3",
  pages =        "307--325",
  month =        mar,
  year =         "1994"
}

@inproceedings{Elliott00,
author="Conal Elliott and Sigbjorn Finne and Oege {de Moor}",
title="Compiling Embedded Languages",
booktitle="Proc. Semantics, Applications, and Implementation of Program Generation (SAIG 2000)",
month=sep,
year=2000,
series="LNCS",
volume=1924
}

@inproceedings{grame:music,
  author = "Y Orlarey and D Fober and S Letz and M Bilton",
  title = "Lambda calculus and music calculi",
  booktitle = "ICMC proceedings",
  year = "1994"
}

@inproceedings{marlow:web-server,
  author = "Simon Marlow",
  title = "Writing High-Performance Server Applications in Haskell",
  crossref = "haskell-workshop-00"
}

@techreport{keppel:quick-threads,
    author = "David Keppel",
    title = "Tools and Techniques for Building Fast Portable Threads Packages",
    institution = "Computer Science Department, University of Washington",
    number = "UWCSE 93-05-06",
    year = 1993,
    keywords = "QuickThreads"
}

@Article{danvy:memory-alloc,
  author =       "Olivier Danvy",
  title =        "Memory Allocation and Higher-Order Functions",
  journal =      "sigplan",
  publisher =    "ACM Press",
  volume =       "22",
  number =       "7",
  pages =        "241--252",
  month =        jun,
  year =         "1987",
  keywords = "continuations, stack in the heap, garbage collection"
}

@InProceedings{Tullsen:PADL2000,
author =       "Mark Tullsen",
year =         "2000",
month =        jan,
title =        "First Class Patterns",
booktitle =    "Second International Workshop on Practical 
                Aspects of Declarative Languages (PADL'00)",
editor =       "E. Pontelli and V. Santos Costa",
publisher =    "Springer-Verlag",
series =       "Lecture Notes in Computer Science",
volume =       "1753",
pages =        "1-15",
abstract =     "Pattern matching is a great convenience in
                programming. However, pattern matching has its
                problems: it conflicts with data abstraction; it is
                complex (at least in Haskell, which has pattern
                guards, irrefutable patterns, n+k patterns, as
                patterns, etc.); it is a source of run-time errors;
                and lastly, one cannot abstract over patterns as
                they are not a first class language construct. This
                paper proposes a simplification of pattern matching
                that makes patterns first class. The key idea is to
                treat patterns as functions of type ``a -> Maybe b''
                ---i.e., ``a -> (Nothing|Just b)''; thus, patterns 
                and pattern combinators can be written as functions 
                in the language.",
}

@techreport{elliott:compiling,
  title = "Compiling Embedded Languages",
  author = "C Elliott and O de Moorge and SO Finne",
  number = "MSR-TR-2000-52",
  year = 2000,
  institution = "Microsoft Research",
  keywords = "pan"
}

@inproceedings{lambada,
  title = "Lambada: {Haskell} as a better {Java}",
  author = "E Meijer and SO Finne",
  crossref = "haskell-workshop-00"
}

@inproceedings{leijen:automation,
  author = "D Leijen and E Meijer J Hook",
  title = "Haskell As An Automation Controller",
  crossref = "afp98"
}

@inproceedings{benton:hoots00,
  author = "N Benton and A Kennedy",
  title = "Monads, effects, and transformations",
  crossref = "hoots99",
  pages = "1-18"
}

@phdthesis{karlsen:thesis,
  author = "EW Karlsen",
  title = "Tool integration in a functional programming language",
  school = "University of Bremen",
  year = 1998,
  month = nov,
  keywords = "Concurrent Haskell"
}

@book{roscoe:book,
  author = "Bill Roscoe",
  title = "The Theory and Practice of Concurrency",
  publisher = "Prentice Hall",
  year = 1998
}

@inproceedings{tolmach:monads,
  author = "AP Tolmach",
  title = "Optimizing {ML} Using a Hierarchy of Monadic Types", 
  crossref = "tic98",
  pages = "97-113",
}

@article{benton:blending,
  author = "N Benton and A Kennedy",
  title = "Interlanguage Working Without Tears: Blending SML with Java",
  crossref = "icfp99"
}

@article{wadler:marriage,
  author = "PL Wadler",
  title = "The marriage of effects and monads",
  crossref = "icfp98",
  pages = "63-74"
}

@article{felleisen:soundness,
  author = "AK Wright and M Felleisen",
  title = "A syntactic approach to type soundness",
  journal = "{Information and Computation}",
  volume = 115,
  issue = 1,
  pages = "38-94",
  month = nov,
  year = 1994,
  keywords = "evaluation contexts"
}

@article{felleisen:syntactic,
  author = "M Felleisen and R Hieb",
  title = "The revised report on the syntactic theories of sequential control and state",
  journal = tcs,
  volume = 103,
  issue = 2,
  pages = "235-271",
  months = sep,
  year = 1992,
  keywords = "evaluation contexts"
}

@book{hammond:parallel-fp-book,
  title = "Research Directions in Parallel Functional Programming",
  editor = "K Hammond and G Michaelson",
  publisher = "Springer-Verlag",
  year = 1999,
  isbn = "1-85233-092-9",
}

@book{craft-of-fp,
  author = "SJ Thompson",
  title = "Haskell: the craft of functional programming",
  publisher = aw,
  year = 1999
}

@book{school-of-expression,
  author = "P Hudak",
  title = "The Haskell school of expression",
  publisher = cup,
  year = 2000
}

@article{java-pitfalls,
  title = "Coping with Java programming stress",
  author = "RT Alexander and JM Beiman and J Viega",
  journal = "IEEE Computer",
  volume = 44,
  issue = 4,
  year = 2000,
  keywords = "pitfalls in Java programming, initalisation, statics"
}

@article{binary-translation,
  title = "Special issue on binary translation",
  journal = "IEEE Computer",
  volume = 33,
  issue = 3,
  month = mar,
  year = 2000
}

@inproceedings{launchbury:hawk-icfp99,
  author = "J Launchbury and J Lewis and B Cook",
  title = "On embedding a microarchitectural design language within {Haskell}",
  crossref = "icfp99",
  pages = "60-69",
  keywords = "discussion of unsafePerformIO"
}

@inproceedings{lewis:implicit-params,
  author = "J Lewis and MB Shields and E Meijer and J Launchbury",
  title = "Implicit parameters: dynamic scoping with static types",
  crossref = "popl00"
}

@techreport{reppy:asynch,
  author = "JH Reppy",
  title = "Asynchronous signals in {Standard ML}",
  number = "TR 90-1144",
  institution = "Department of Computer Science, Cornell University",
  year = 1990
}

@article{hudak:dsl,
  author = "P Hudak",
  title = "Building domain-specific embedded languages",
  journal = "ACM Computing Surveys",
  volume = 28,
  issue = 4,
  year = 1996,
  month = dec
}

@inproceedings{sands:observable-sharing,
  author = "K Claessen and D Sands",
  title = "Observable sharing for functional circuit description",
  editor = "PS Thiagarajan and R Yap",
  booktitle = "Advances in Computing Science (ASIAN'99); 5th Asian Computing Science Conference",
  issue = 1742,
  series = lncs,
  publisher = springer,
  pages = "62-73",
  year = 1999
}

@inproceedings{cook:memo,
  author = "B Cook and J Launchbury",
  title = "Disposable memo functions",
  crossref = "haskell-workshop-97"
}

@inproceedings{launchbury:hawk,
  author = "B Cook and J Launchbury and J Matthews",
  title = "Specifying superscalar microprocessors in {Hawk}",
  booktitle ="Formal techniques for hardware and hardware-like systems",
  address = "Marstrand, Sweden",
  year = 1998
}

@inproceedigns{odonnell:netlists,
  author = "JT O'Donnell",
  title = "Generating netlists from executable circuit specifications in a pure functional language",
  crossref = "Glasgow93",
  pages = "178-194"
}

@article{van-deursen:little-lang,
  author = "A van Deursen and P Klint",
  title = "Little languages: little maintenance?",
  journal = "Journal of Software Maintenance",
  volume = 10,
  pages = "75-92",
  year = 1998
}

@techreport{van-deursen:dsl,
  author = "A van Deursen and P Klint and J Visser",
  title = "Domain-specific languages: an annotated bibliography",
  institution = "Centrum voor Wiskunde en Informatica, Amsterdam",
  year = 2000
}

@inproceedings{van-deursen:industrial,
  author = "M van den Brand and A van Deursen and P Klint and S Klusener and E van der Meulen",
  title = "Industrial applications of ASF+SDF",
  booktitle = "Algebraic Methodology and Software Technology (AMAST'96)",
  publisher = springer,
  series = lncs,
  volume = 1101,
  pages = "9-18",
  keywords = "domain specific language, financial"
}

@book{winskell:semantics,
  author = "Glynn Winskel",
  title = "The formal semantics of programming languages",
  publisher = "MIT Press",
  year = 1993,
  note = "A standard text"
}

@book{gunter:semantics,
  author = "CA Gunter",
  title = "Semantics of programming languages",
  publisher = "MIT Press",
  year = 1992
}

@inproceedings{LandiW1991,
  author        ="Landi, W.  and Ryder, B.G. ",
  booktitle     ="Eighteenth Annual ACM Symposium on Principles of Programming Languages",
  title         ="Pointer-induced Aliasing: A Problem Classification",
  year          ="1991",
  keywords      ="Aliasing",
  pages         ="142--152",
  publisher     ="ACM Press",
  scope         ="opt"
}

@phdthesis{SemenzatoL94,
  author        ="Semenzato, Luigi ",
  school        ="University of California, Berkeley",
  title         ="An Abstract Machine for Partial Differential Equations",
  year          ="1994",
  scope         ="lang"
}

@book{Monin96,
  author        ="Monin, J. F.",
  publisher     ="Masson",
  title         ="{C}omprendre les {M}éthodes {F}ormelles, panorama et outils logiques",
  year          ="1996",
}

@book{Jones93,
  author        ="Jones, Neil D. and Gomard, Carsten K. and Sestoft, Peter",
  publisher     ="Prentice Hall",
  title         ="{P}artial {E}valuation and {A}utomatic {P}rogram {G}eneration",
  year          ="1993",
}

@book{Weis-Leroy-Caml,
        author =        "Pierre Weis and Xavier Leroy",
        title =         "Le langage {Caml}",
        publisher =     "Inter\'Editions",
        year =          "1993"}

%% Sur l'implémentation en général

@misc{Objective-Caml,
        author =        "Xavier Leroy and J\'er\^ome Vouillon and
                         Damien Doligez and others",
        title =         "The {Objective} {Caml} system",
        year =          "1996",
        documentURL   = "http://caml.inria.fr/ocaml/",
        howpublished =  "Logiciel et documentation disponibles sur le Web"}

@inproceedings{Leroy-csl-jfla,
        author =        "Xavier Leroy",
        title =         "Le syst\`eme {Caml} {Special} {Light}:
                         modules et compilation efficace en {Caml}",
        booktitle =     "Actes des Journ\'ees Francophones des
                         Langages Applicatifs",
        year =          1996,
        pages =         "111--131",
        publisher =     "INRIA"}


%% Sur les fondements théoriques

@inproceedings{Remy-Vouillon,
        author =        "Didier Rémy and Jérôme Vouillon",
        title =         "{Objective} {ML}: A simple object-oriented
                         extension of {ML}",
        booktitle =     "24th symposium Principles of Programming Languages",
        pages =         "40--53",
        year =          "1997",
        publisher =     "ACM Press"}

@article{Leroy-generativity,
        author =        "Xavier Leroy",
        title =         "A syntactic theory of type generativity
                         and sharing",
        year =          1996,
        journal =       "Journal of Functional Programming",
        volume =        6,
        number =        5,
        pages =         "667--698"}

%% Sur certaines optimisations

@inproceedings{Leroy-unboxing,
        author =        "Xavier Leroy",
        title =         "The effectiveness of type-based unboxing",
        booktitle =     "Workshop Types in Compilation '97",
        publisher =     "Technical report BCCS-97-03, Boston College,
                         Computer Science Department",
        year =          1997,
        month =         jun}

@book{BirdMoor97,
  author        ="Bird, R. and Moor, O. de",
  publisher     ="Prentice Hall",
  title         ="{A}lgebra of {P}rogramming",
  year          ="1997",
}

@inproceedings{Cousot99a,
        author =        "Cousot, P.",
        title =         "The Calculational Design of a Generic Abstract Interpreter",
        booktitle =     "M{.} Broy and R{.} Steinbrüggen (eds.): Calculational System Design",
        publisher =     "NATO ASI Series F. Amsterdam: IOS Press",
        year =          1999}

@inproceedings{PaigeKoenig,
        author =        "Robert Paige and Shaye Koenig",
        title =         "Finite Differencing of Computable Expressions",
        booktitle =     "ACM Trans. on Programming Languages and Systems, vol. 4, no. 3",
        pages =         "402--454",
        year =          "1982",
        month =         july,
        publisher =     "ACM Press"}

@inproceedings{AllenCookeKennedy,
        author =        "Allen, Frances E. and Cocke, John and Kennedy, Ken",
        title =         "Reduction of Operator Strengh",
        booktitle =     "Muchnick and Jones (eds.). {P}rogram {F}low {A}nalysis: {T}heory and {A}pplications",
        pages =         "79--101",
        year =          "1981",
        publisher =     "Prentice Hall"}

@techreport{Folk,
  author        ="Folk, Mike",
  institution   ="{N}ational {C}enter for {S}upercomputing {A}pplications",
  title         ="{HDF} ({H}ierarchical {D}ata {F}ormat) vers. 4.1r2",
  year          ="1992",
  month         ="February"
}

@techreport{Folk2,
  author        ="Folk, Mike",
  institution   ="{N}ational {C}enter for {S}upercomputing {A}pplications",
  title         ="{HDF} ({H}ierarchical {D}ata {F}ormat) vers. 5.0r1",
  year          ="1998",
  month         ="February"
}

@inproceedings{Quint96,
        author =        "V. Quint and I. Vatton and J. Paoli",
        title =         "Active Structured Documents as User Interfaces",
        booktitle =     "User Interfaces for Symbolic Computations",
        publisher =     "Springer Verlag",
        year =          1996}

@techreport{paterson:arrows,
  author = "Ross Paterson",
  title = "A notation for arrow-based libraries",
  institution = "City University",
  year = 1999,
  keywords = "haskell, monads"
}

@article{lester:roots,
  author = "D Lester and S Chambers and HL Lu",
  title = "A constructive algorithm for finding the exact froots of polynomials with computable real coefficients",
  journal = tcs,
  volume = 210,
  issue = 1,
  year = 1999,
  keywords = "arithmetic"
}

@inproceedings{jones:func-deps,
  author = "MP Jones",
  title = "Type classes with functional dependencies",
  crossref = "esop00",
  keywords = "functional dependencies, type classes, implicit parameters"
}

@techreport{jones:func-deps-report,
  author = "MP Jones",
  title = "Exploring the design space for type-based implicit parameterization",
  institution = "Oregon Graduate Institute",
  year = 1999,
  keywords = "functional dependencies, type classes, implicit parameters"
}

@inbook{oege:editor,
  author = "B Sufrin and O de Moor",
  title = "Modeless structure editing",
  booktitle = "Hoare Seminar",
  year = 1999,
  keywords = "Implemented in FranTk"
}

@techreport{miller:bound-vars,
  author = "D Miller",
  title = "An extension to ML to  handle bound variables in data structures",
  institution = "University of Pennsylvania",
  keywords = "Lambda-Prolog, higher order abstract syntax"
}

@techreport{sabry:call-by-need,
  author = "A Sabry",
  title = "The essence of compiling call-by-need",
  institution = "University of Oregon",
  year = 1999,
  keywords = "STG, CPS"
}

@inproceedings{chakravarty:c-to-haskell,
  author = "M Chakravarty",
  title = "C {\tt ->} {Haskell}: yet another interfacing tool",
  crossref = "ifl99",
  keywords = "FFI, HDirect, Green Card"
}

@techreport{wells:modules,
  author = "J Wells and R Vestergaard",
  title = "Confluent equational reasoning for linking with first-class primitive modules",
  institution = "Herriot-Watt University",
  year = 1999,
  keywords = "Haskell modules"
}

@techreport{serrano:space-profiling,
  author = "M Serrano",
  title = "Understanding memory allocation of {Scheme} programs",
  institution = "University of Nice",
  year = 1999,
  keywords = "Space profiling, Bee"
}

@techreport{duggan:marshalling,
  author = "Dominic Duggan",
  title = "Type-safe on-the-wire user-defined marshalling",
  institution = "Stevens Institute",
  year = 1999
}

@techreport{weck:compound-types,
  author = "M Buchi and W Weck",
  title = "Java needs compound types",
  institution = "Turku Centre for Computer Science, Finland"
}

@article{schilling:optimizing,
  author =       "Jonathan L. Schilling",
  title =        "Optimizing Away {C$++$} Exceptions",
  journal =      "ACM SIG{­}PLAN Notices",
  volume =       "33",
  number =       "8",
  pages =        "40--47",
  month =        aug,
  year =         "1998",
  coden =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Fri Sep 11 08:45:37 1998",
  acknowledgement = ack-nhfb,
}

@article{bruggeman:representing,
  author =       "Carl Bruggeman and Oscar Waddell and R. Kent Dybvig",
  title =        "Representing Control in the Presence of One-Shot
                 Continuations",
  crossref = "pldi96",
  pages =        "99--107"
}

@Article{scheme:r5rs,
  title		= {{T}he {R}evised$^{\mbox{\footnotesize{5}}}$ {R}eport on the
                   {A}lgorithmic {L}anguage {S}cheme},
  author	= {Kelsey, R. and Clinger, W. and Rees, J. (eds)},
  journal	= {Higher-Order and Symbolic Computation},
  volume	= 11,
  number	= 1,
  month		= sep,
  year		= 1998,
}

@inproceedings{goubault:sas94,
        author =        "J Goubault",
        title =         "Generalized boxing, congruences and partial inlining",
        crossref = "sas94",
        pages =         "147--161",
  keywords = "worker/wrapper" 
}

@inproceedings{leroy:unboxing-critique,
        author =        "X Leroy",
        title =         "The effectiveness of type-based unboxing",
        crossref = "tic97"
}

@article{clinger:scheme-r4,
  author = {W Clinger and JA Rees},
  title = "Revised$^4$ report on the algorithmic language {Scheme}",
  journal = "Lisp Pointers",
  volume = 4,
  issue = 3,
  pages = "1-55",
  year = 1991
}

@inproceedings{dybvig:multiple-return-values,
  author = {JM Ashley and RK Dybvig},
  title = {An efficient implementation of multiple return values in {Scheme}},
  crossref = "lfp94",
  pages = "140-149"
}

@inproceedings{hannan:arity-raising,
  author = {J Hannan and P Hicks},
  title = {Higher-order arity raising},
  crossref = "icfp98",
  pages = "27-38"
}

@article{jflp98-09,
      author={Gopalan Nadathur},
      title={A Fine-Grained Notation for Lambda Terms and Its Use in Intensional Operations},
      journal={Journal of Functional and Logic Programming},
      volume={1999},
      number={2},
      publisher={The MIT Press},
      month={March},
      year={1999}
    }

@techreport{hanson:debugger-revisited,
  author = "DR Hanson",
  title = "A machine-independent debugger: revisited",
  number = "MSR-TR-99-4",
  institution = msr,
  year = 1999
}

@Article{cardelli:service-combinators,
  title =        "Service Combinators for Web Computing",
  author =       "Luca Cardelli and Rowan Davies",
  pages =        "309--316",
  journal =      "IEEE Transactions on Software Engineering",
  year =         "1999",
  volume =       "25",
  month =        may # "/" # jun,
  number =       "3",
  abstract =     "The World Wide Web is rich in content and services,
                 but access to these resources must be obtained mostly
                 through manual browsers. We would like to be able to
                 write programs that reproduce human browsing behavior,
                 including reactions to slow transmission-rates and
                 failures on many simultaneous links. We thus introduce
                 a concurrent model that directly incorporates the
                 notions of failure and rate of communication, and then
                 describe programming constructs based on this model.",
  keywords =     "Programming languages, wide area computation, World
                 Wide Web",
  note =         "Special section on Domain-Specific Languages (DSL)",
  annote =       "incomplete",
}

@unpublished{boudol:extensible,
  author = "G Boudol and S Dal-Zilio",
  title = "An interpretation of extensible objects",
  keywords = "calculus, records"
}

@unpublished{thiemann:class,
  author = "P Theimann and M Sperber",
  title = "Program generation with class",
  keywords = "partial evaluation"
}

@inproceedings{gustavsson:update-avoidance,
  author = "J Gustavsson",
  title = "A type-based sharing analysis for update avoidance and
                  optimisation",
  crossref = "icfp98",
  keywords = "usage"
}

@unpublished{wong:haskell,
  author = "L Wong and SL {Peyton Jones}",
  title = "Making Haskell talk to external databases",
  year= 1998
}

@techreport{zhou:alamo,
  author = "W Zhou",
  title = "Implementation of the Alamo monitor executive",
  institution = san-antonio-cs,
  keywords = "execution monitoring, debugging, profiling",
  year = 1996
}

@inproceedings{sparud:redex-trails,
  author = "J Sparud and C Runciman",
  title = "Tracing lazy functional computations using redex trails",
  pages = {291--308},
  crossref = "plilp97"
}

@techreport{Hugs98UserManual,
  author = "MP Jones and JC Peterson",
  title = "Hugs 98 User Manual",
  institution = "Oregon Graduate Institute",
  url = "{\tt http://haskell.org/hugs}", 
  month = may,
  year = 1999
}

@inproceedings{hughes:restricted,
  author = "RJM Hughes",
  title = "Restricted data types in Haskell",
  crossref = "haskell-workshop-99",
  keywords = "contexts in data decls; type classes"
}

@inproceedings{chakravarty:lexing,
  author = "M Chakravarty",
  title = "Lazy lexing is fast",
  editor = "A Middeldorp and T Sato",
  publisher = springer,
  series = lncs,
  booktitle = "Fourth Fuji International Symposium on Functional and Logic Programming",
  year = 1999,
  keywords = "combinator library, DFA"
}

@techreport{ml2000,
  author = "ML2000 working group",
  title = "Principles and a preliminary design for ML2000",
  year = 1999
}

@Article{Ungar:tenuring,
  author =       "D. Ungar and F. Jackson",
  title =        "An Adaptative Tenuring Policy for Generation
                 Scavengers",
  journal =      "ACM Transactions on Programming Languages and
                 Systems",
  volume =       "14",
  number =       "1",
  pages =        "1--27",
  keywords =     "functional",
}

@techreport{shao:type-lifting,
  author = "B Saha and Z Shao",
  title = "Optimal type lifting",
  number = "YALEU/DCS/TR-1159",
  institution = "Yale University",
  year = 1998,
  keywords = "Full laziness for types, relevant to type class dictionaries"
}

@techreport{crole:co-induction,
  author = "R Crole",
  title = "Lectures on co-induction and co-algebras",
  institution = "Leicester University",
  year = 1998,
  keywords = "coinduction"
}

@techreport{steele:growing,
  author = "G Steele",
  title = "Growing a language",
  note = "Invited talk to some conference",
  year = 1998
}

@techreport{fvision,
  author = "A Reid and J Peterson and G Hager and P Hudak",
  title = "Prototyping real-time vision systems: an experiment in DSL
                  design",
  year = 1999
}

@inproceedings{barendsen:uniqueness,
  author = "E Barendsen and S Smetsers",
  title = "A derivation system for uniqueness typing",
  booktitle = "SEGRAGRA'95",
  year = 1995,
  publisher = elsevier
}

@inproceedings{cilk:pldi,
  author =       "Matteo Frigo and Charles E. Leiserson and Keith H.
                 Randall",
  title =        "The Implementation of the {Cilk-5} Multithreaded
                 Language",
  crossref = "pldi98",
  pages =        "212--223",
  keywords =     "algorithms; languages; performance; parallel"
}

@InProceedings{cilk:ppopp,
  author =       "Robert D. Blumofe and Christopher F. Joerg and Bradley
                 C. Kuszmaul and Charles E. Leiserson and Keith H.
                 Randall and Yuli Zhou.",
  title =        "Cilk: An Efficient Multithreaded Runtime System",
  crossref = "ppopp95",
  url =          "ftp://theory.lcs.mit.edu/pub/cilk/PPoPP95.ps.Z"
}

@Article{cilk,
  author =       "Robert D. Blumofe and Christopher F. Joerg and Bradley
                 C. Kuszmaul and Charles E. Leiserson and Keith H.
                 Randall and Yuli Zhou",
  title =        "{Cilk}: An Efficient Multithreaded Runtime System",
  journal =      "Journal of Parallel and Distributed Computing",
  volume =       "37",  number =       "1",  pages =        "55--69",
  day =          "25",  month =        aug,  year =         "1996",
  coden =        "JPDCER",  ISSN =         "0743-7315",
  bibdate =      "Sat Apr 12 17:13:17 MDT 1997",  acknowledgement = ack-nhfb,
  classification = "C4240P (Parallel programming and algorithm theory);
                 C6110P (Parallel programming)",
  corpsource =   "Lab. for Comput. Sci., MIT, Cambridge, MA, USA",
  keywords =     "Cilk; critical path analysis; critical-path length;
                 directed acyclic graph; load balancing; multithreaded
                 runtime system; parallel; parallel algorithms; parallel
                 programming; processor scheduling; programming; runtime
                 scheduling; synchronisation",
  treatment =    "P Practical; T Theoretical or Mathematical",
}

@inproceedings{hsieh:java,
  author =       "{Cheng-Hsueh} A. Hsieh and John C. Gyllenhaal and {Wen-mei} W. Hwu",
  title =        "{Java} bytecode to native code translation: the
                 {Caffeine} prototype and preliminary results",
  booktitle =    "Proceedings of the 29th annual {IEEE}\slash {ACM}
                 International Symposium on Microarchitecture",
  whenwhere= "December 2--4, 1996, Paris, France",
  publisher =    "IEEE Computer Society Press",
  fulladdress =      "1109 Spring Street, Suite 300, Silver Spring, MD
                 20910, USA",
  address="Silver Spring, Maryland",
  month = dec,
  year =         "1996",
  ISBN =         "0-8186-7641-8",
  bibdate =      "Sat Mar 15 08:49:09 MST 1997",
  corpsource =   "Center for Reliable and High Performance Comput.,
                 Illinois Univ",
  sponsororg =   "IEEE Comput. Soc. Tech. Committee on Microprogramming
                 and Microarchit.; ACM SIGMICRO",
}

@techreport{peyton-jones:machine-independent,
  month=aug,
  institution="Department of Computer Science",
  number="CS-98-19",
  author="Peyton Jones, Simon L. and Norman Ramsey",
  title="Machine-Independent Support for Garbage~Collection, Debugging, Exception Handling, and Concurrency (Draft)",
  keywords="C--",
  year="1998",
  note="See \texttt{http://www.eecs.harvard.edu\slash \char`\~nr\slash pubs\slash c--rti-abstract.html}",
  address="University of Virginia"}

@book{milner:pi-book,
  author = "Robin Milner",
  title = "Communicating and Mobile Systems : The Pi-Calculus",
  publisher = "Cambridge University Press",
  year = 1999
}


@Book{milner:definition-revised,
  author =       "Robin Milner and Mads Tofte and Robert Harper and David MacQueen",
  title =        "The Definition of {Standard} {ML} (Revised)",
  publisher =    "MIT Press",
  address =      "Cambridge, Massachusetts",
  year =         "1997",
  pages =        "xii+114",
  ISBN =         "0-262-63181-4 paperback",
}

@techreport{johann:masses,
  author = "P Johann and JR Lewis and J Launchbury",
  title = "Warm fusion for the masses",
  year = 1998,
  keywords = "short-cut deforestation, foldr build"
}

@techreport{camaro:views,
  title = "A view on type declarations",
  authors = "Figueiredo and Cammaro",
  keywords = "restricted type synonyms"
}

@InBook{novack:simple,
  author =       "Steven Novack and Joseph Hummel and Alexandru
                 Nicolau",
  booktitle =    "Languages and Compilers for Parallel Computing",
  chapter =      "19",
  title =        "{A} Simple Mechanism for Improving the Accuracy and
                 Efficiency of Instruction-level Disambiguation",
  year =         "1995",
  keywords =     "Disambiguation, Instruction-level parallelism",
  abstract-url = "http://www.ics.uci.edu/~snovack/abstracts/semret.html",
  url =          "http://www.ics.uci.edu/~snovack/papers/semret/semret.ps",
  series =       lncs,
  publisher =    springer,
  scope =        "instrpar",
}

@inproceedings{waddell-inlining,
  title = "Fast and effective procedure inlining",
  author = "O Waddell and RK Dybvig",
  crossref = "sas97",
  pages = "35-52"
}

@inbook{andf-structure,
  title = "The Structure of {ANDF}: Principles and Examples",
  author = "Stavros Macrakis", 
  booktitle = "{ANDF} Technology Collected Papers Vol. 1",
  month = jan,
  year = 1993,
  publisher = "Open Systems Foundation",
  url = "http://www.cs.cmu.edu/afs/cs/project/clisp/hackers/phg/ANDF/"
}

@unpublished{ramsey:exceptions, 
  author="Norman Ramsey and {Peyton Jones}, Simon L.",
  title="Exceptions Need Not Be Exceptional",
  note="Draft available from \texttt{http://www.cs.virginia.edu/nr}.",
  year="1999"}

@inproceedings{benton:compiling,
  author =       "Nick Benton and Andrew Kennedy and George Russell",
  title =        "Compiling {Standard ML} to {Java} Bytecodes",
  crossref =     "icfp98",
  pages =        "129--140",
  affiliation =  "Persimmon IT"
}

@inproceedings{taft:programming,
  author =       "Tucker Taft",
  title =        "Programming the {Internet} in {Ada 95}",
  editor =       "Alfred Strohmeier",
  booktitle =    "1996
                 {Ada-Europe} International Conference on Reliable
                 Software Technologies",
  whereheld = "Montreux, Switzerland, June
                 10--14, 1996: proceedings",
  volume =       "1088",
  publisher =    "Spring{­}er-Ver{­}lag",
  address =      "Berlin", 
  ISBN =         "3-540-61317-X (softcover)",
  ISSN =         "0302-9743",
  series =       "Lecture Notes in Computer Science",
  pages =        "1--16",
  year =         "1996",
  bibdate =      "Mon Mar 10 22:46:38 1997",
  note = "Available through \texttt{www.appletmagic.com}.",
  annote =         "Describes the Intermetrics Ada 95 compiler, which
                 generates Java Virtual Machine bytecodes directly.",
  classcodes =   "C6115 (Programming support); C6140D (High level
                 languages); C6150C (Compilers, interpreters and other
                 processors); C6110J (Object-oriented programming)",
  conflocation = "Montreaux, Switzerland; 10--14 June 1996",
  conftitle =    "Proceedings of Ada-Europe '96 Conference in
                 cooperation with Reliable Software Technologies",
  corpsource =   "Intermetrics Inc., Cambridge, MA, USA",
  countrypub =   "Germany",
  keywords =     "Ada; Ada 95; applets; byte; code representation;
                 compiler generator; compiler generators; computational
                 linguistics; computer applications; Internet; Java;
                 mapping; object-oriented languages; programming
                 environments; programming platform; semantic models;
                 World Wide Web",
  treatment =    "P Practical",
}

@inproceedings{shivers:heap-trans,
  title = "Atomic Heap Transactions and Fine-Grain Interrupts",
  author = "Olin Shivers and James W. Clark and Roland McGrath",
  crossref = "icfp99"
}

@TechReport{Java:1996,
  author = "J Gosling, H McGilton",
  title = "{The Java Language Environment: a White Paper}",
  institution = "Sun Microsystems",
  year = "1996"
}

@TechReport{Pettersson:1995,
  author = " M Pettersson",
  title = "Simulating tail calls in {C}",
  institution = "Department of Computer Science, Linkoping University",
  year = "1995"
}

@InProceedings{Cridlig:1992,
  author = "R Cridlig",
  title = "{An optimizing ML to C compiler}",
  booktitle = "Proc ACM/SIGPLAN Workshop on ML and its applications, San Francisco",
  year = "1992"
}

@inproceedings{morrisett:procs,
  author = "G Morrisett and A Tolmach",
  title = "Procs and Locks: A Portable Multiprocessing Platform for Standard ML of New Jersey",
  booktitle = "Proceedings of the Fourth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, San Diego",
  month = may,
  year = 1993
}

@Article{Tarditi:1992,
  author = "D Tarditi and A Acharya and P Lee",
  title = "{No assembly required: compiling Standard ML to C}",
  journal = "{ACM Letters on Programming Languages and Systems}",
  volume = "1",
  number = "2",
  year = "1992",
  pages = "161-177",
  keywords = {SML, compiler, Gnu C, register allocation}
}

@article{tarditi:measuring,
  author = "D Tarditi and A Diwan",
  title = "Measuring the cost of storage management",
  journal = lasc,
  volume = 9,
  pages = "323-342",
  year = 1996
}


@InProceedings{stal,
  author = "G Morrisett and K Crary and N Glew and D Walker",
  title ="Stack-based typed assembly language",
  booktitle = "Proc Types in Compilation, Osaka, Japan",
  month = "March",
  year = "1998"
}

@InProceedings{tal,
  author = "G Morrisett and D Walker and K Crary and N Glew",
  title ="From System F to typed assembly language",
  booktitle = "Proc 25th ACM Symposium on Principles of Programming Languages, San Diego",
  month = "Jan",
  year = "1998"
}

@TechReport{Bartlett:1989,
  author = "JF Bartlett",
  title = "{SCHEME to C: a portable Scheme-to-C compiler}",
  number = "RR 89/1",
  institution = "DEC WRL",
  year = "1989"
}


@InProceedings{Omniware:1996,
  author = "S Lucco and O Sharp and R Wahbe",
  title = "{Omniware: a universal substrate for Web programming}",
  booktitle = "{Fourth International World Wide Web Conference, Boston: The Web Revolution}", 
  month = "Dec",
  year = "1995"
}

@Article{conway:uncol,
  author =       "ME Conway",
  title =        "Proposal for an {UNCOL}",
  journal =      "Communications of the ACM",
  volume =       "1",
  number =       "10",
  pages =        "5--8",
  month =        oct,
  year =         "1958",
  reffrom =      "Schmidt:Voller:acm:cc:1984",
  reffrom =      "Franz:plasa:1994",
}

@Article{Bratman:cacm:1961,
  author =       "H Bratman",
  title =        "An alternate form of the {UNCOL} diagram",
  journal =      "Communications of the ACM",
  volume =       "4",
  pages =        "142",
  year =         "1961",
}

@TechReport{benitez:91a,
  author =       "ME Benitez and P Chan and JW Davidson and AM
                 Holler and S Meloy and V Santhanam",
  title =        "{ANDF}: {Finally} an {UNCOL} after 30 years",
  institution =  "University of Virginia",
  type =         "Technical Report",
  number =       "TR-91-05",
  address =      "Department of Computer Science, Charlottesville, VA",
  month =        mar,
  year =         "1989",
}

@InProceedings{steel61a,
  author =       "TB Steel",
  title =        "A First Version of {UNCOL}",
  booktitle =    "Proceedings of the Eastern Joint Computer Conference",
  publisher =    "Association of Computing Machinery",
  year =         "1961",
  pages =        "371--377",
}

@Article{Bothe89b,
  author =       "Klaus Bothe and Christian Horn",
  title =        "Übersetzung zwischen höheren
                 Programmiersprachen: eine {L}ösung des
                 {UNCOL}-Problems?",
  journal =      "Angewandte Informatik",
  number =       "7",
  pages =        "283--286",
  keyword =      "Compiler, Portabilität, UNCOL, PASCAL nach C
                 Überstzung",
  month =        jul,
  year =         "1989",
}
@Article{Layzell:bcs:cj:1985,
  author =       "PJ Layzell",
  title =        "The History of Macro Processors in Programming
                 Language Extensibility",
  journal =      "The Computer Journal",
  volume =       "28",
  number =       "1",
  pages =        "29--33",
  month =        feb,
  year =         "1985",
  refs =         "31",
  checked =      "19941130",
  source =       "Dept Library",
  keywords =     "macro processor, extensible language",
  abstract =     "The evolutionary nature of computer programming has
                 necessitated the continual development and enhancement
                 of programming languages. In an effort to make
                 programming languages more responsive to such changes,
                 a number of language extensibility schemes have been
                 designed. This paper examines the history of macro
                 processors as a tool for programming extensibility.",
  sjb =          "Explains that that macro processors were initially
                 created to make assemblers easier to use e.g. by
                 allowing ``high level'' operations to be defined. Gives
                 a chronology of language extensibility schemes in the
                 form a table. Implementations are classified into one
                 of the following: language oriented text macro
                 processors, generalised text macro processors,
                 extensible languages (but altering the compiler, by
                 macros), generalised syntax macro processors and
                 language oriented syntax macro processors ({\em syntax
                 macro processors} referres to a processor which takes
                 account of the grammar of the underlying language). The
                 table covers (and hence the annotated references) cover
                 most of the major work in the area (including Solntseff
                 \& Yezerski~\cite{Solntseff:Yezerski:ariap:1974} and
                 Metzner~\cite{Metzner:acm:sigplan:1979}) but ignores
                 anything to do with Lisp!",
}

@InProceedings{Cattell:Newcomer:Leverett:acm:cc:1979,
  author =       "Roderic GG Cattel and Joseph M Newcomer and Bruce
                 W Leverett",
  title =        "Code Generation in a Machine-Independent Compiler",
  booktitle =    "Proceedings of the {SIGPLAN} 79 Symposium on Compiler
                 Construction",
  organization = "ACM",
  publisher =    "ACM",
  month =        aug,
  year =         "1979",
  pages =        "65--75",
  reffrom =      "Graham:ieee:c:1980",
  reffrom =      "Krumme:Ackley:acm:cc:1982",
  reffrom =      "Avakian:Haradhvala:Horn:Knobe:acm:cc:1982",
}

@InProceedings{Davidson:Gresch:iait:1987,
  author =       "JW Davidson and JV Gresh",
  title =        "Cint: {A} {RISC} Interpreter for the {C} Programming
                 Language",
  booktitle =    "Proceedings {SIGPLAN} '87 Symposium on Interpreters
                 and Interpretive Techniques",
  publisher =    "ACM",
  organization = "ACM",
  month =        jun,
  year =         "1987",
  pages =        "189--198",
  refs =         "20",
  checked =      "19940516",
  keywords =     "interpreter, C, RISC, implementation",
  abstract =     "{\em Cint} is an interpretation system for the C
                 programming language. Like most interpretation systems,
                 it provides ``load and go'' type execution as well as
                 enhanced debugging ad performance analysis tools. {\em
                 Cint} consists of two phases -- a translator and an
                 interpreter. The translator compiles the source program
                 into code for a virtual machine. The interpreter then
                 loads and executes this code. While providing services
                 similar to traditional interpreters, {\em Cint} differs
                 from them in two important ways. First, the virtual
                 machine languages used by many interpreters are quite
                 large; machines with 100 to 200 operations are common.
                 In contrast, {\em Cint}'s virtual machine has only 63
                 operations. Second, to achieve acceptable execution
                 speeds, interpreters are often implemented in the
                 assembly language of the host machine. {\em Cint},
                 however, is written entirely in C and is therefore
                 portable. In fact, it has been transported to four
                 machines without modification. Despite the compact size
                 of the virtual machine language and the high-level
                 language implementation, {\em Cint}'s execution speed
                 is comparable to that of other interpreters. This paper
                 describes the design of the virtual machine, the
                 implementation of the interpreter, and the performance
                 of the system.",
  reffrom =      "Benitez:Davidson:plasa:1994",
}


@InBook{Poole:cc:1974,
  author =       "PC Poole",
  title =        "Portable and Adaptable Compilers",
  editor =       "FL Bauer and J Eickel",
  booktitle =    "Compiler Construction -- An Advanced Course",
  publisher =    "Springer Verlag",
  year =         "1974",
  pages =        "427--497",
  checked =      "19940222",
  source =       "dept library",
  sjb =          "Clarifies the difference between ``portable'' and
                 ``adaptable'' and then goes on to cover bootstrapping
                 and the use of abstract machines (JANUS). Has a number
                 of cases studies involving portable compilers: AED,
                 LSD, BCPL, PASCAL and the IBM S/360 FORTRAN(G)
                 compiler",
}


@InProceedings{Johnson:acm:popl:1978,
  author =       "SC Johnson",
  title =        "A Portable Compiler: Theory and Practice",
  booktitle =    "Conference Record of the Fifth annual {ACM} Symposium
                 on Principles of Programming Languages",
  organization = "ACM",
  publisher =    "ACM",
  month =        jan,
  year =         "1978",
  pages =        "97--104",
  reffrom =      "Prabhala:Sethi:jacm:1980",
  reffrom =      "Aho:ieee:c:1980",
  reffrom =      "Johnson:ieee:c:1980",
  reffrom =      "Graham:ieee:c:1980",
  reffrom =      "Leverett:Cattell:Hobbs:Newcomer:Reiner:Schatz:Wulf:ieee:c:1980",
  reffrom =      "Krumme:Ackley:acm:cc:1982",
  reffrom =      "Crawford:acm:cc:1982",
  reffrom =      "Aigrain:Graham:Henry:McKusick:Pelegri-Llopart:acm:cc:1984",
  reffrom =      "Christopher:Hatcher:Kukuk:acm:cc:1984",
  reffrom =      "Davidson:Fraser:acm:cc:1984",
  reffrom =      "Skedzielewski:Yates:Oldehoeft:iait:1987",
  reffrom =      "Davidson:Fraser:spe:1987",
  reffrom =      "Horspool:ieee:software:1987",
  reffrom =      "Miller:Myers:spe:1988",
}



@Article{Newey:Poole:Waite:spe:1972,
  author =       "MC Newey and PC Poole and WM Waite",
  title =        "Abstract machine modelling to produce portable
                 software",
  journal =      "Software -- Practice and Experience",
  volume =       "2",
  pages =        "107--136",
  year =         "1972",
  reffrom =      "Davidson:Gresch:iait:1987",
  reffrom =      "Benitez:Davidson:plasa:1994",
}


@PhdThesis{Glanville:phd:1977,
  author =       "RS Glanville",
  title =        "A Machine Independent Algorithm for Code Generation
                 and Its Use in Regargetable Compilers",
  school =       "Berkeley",
  month =        dec,
  year =         "1977",
  keywords =     "code generation",
  note =         "Also as technical report 78-01",
  reffrom =      "Graham:ieee:c:1980",
  reffrom =      "Graham:Henry:Schulman:acm:cc:1982",
  reffrom =      "Bird:acm:cc:1982",
  reffrom =      "Landwehr:Jansohn:Goos:acm:cc:1982",
  reffrom =      "Crawford:acm:cc:1982",
  reffrom =      "Aigrain:Graham:Henry:McKusick:Pelegri-Llopart:acm:cc:1984",
  reffrom =      "Schmidt:Voller:acm:cc:1984",
  reffrom =      "Turner:acm:sigplan:1986b",
}

@Article{Tanenbaum:Staveren:Keizer:Stevenson:cacm:1983,
  author =       "AS Tanenbaum and HV Saveren and EG Keizer and
                 JW Stevenson",
  title =        "A Practical Took Kit for Making Portable Compilers",
  journal =      "Communications of the ACM",
  volume =       "26",
  number =       "9",
  pages =        "654--660",
  month =        sep,
  year =         "1983",
  keywords =     "ACK, compiler construction",
  reffrom =      "Schmidt:Voller:acm:cc:1984",
  reffrom =      "Davidson:Gresch:iait:1987",
  reffrom =      "Benitez:Davidson:plasa:1994",
}



@Article{Wallis:acta:1978,
  author =       "PJL Wallis",
  title =        "The design of a portable programming language",
  journal =      "Acta Informatica",
  volume =       "10",
  pages =        "157--167",
  year =         "1978",
  reffrom =      "Wallis:spe:feb:1981",
}


@InProceedings{Fraser:Myers:Wendt:acm:cc:1984,
  author =       "Christopher W Fraser and Eugene W Myers and Alan L
                 Wendt",
  title =        "Analysing and Compressing Assembly Code",
  booktitle =    "Proceedings of the {SIGPLAN} '84 Symposium on Compiler
                 Construction",
  publisher =    "ACM",
  organization = "ACM",
  year =         "1984",
  pages =        "117--121",
  refs =         "9",
  checked =      "19940202",
  source =       "dept. library",
  abstract =     "This paper describes the application of a general data
                 compression algorithm in assembly code. The system is
                 retargetable and generalizes cross-jumping and
                 procedural abstraction. It can be used as a space
                 optimizer that trades time for space, it can turn
                 assembly code into interpretive code, and it can help
                 formalize and automate the traditionally ad hoc design
                 of both real and abstract machines.",
}


@Article{JonesBlackHole,
 author = "R Jones",
 title = "{Tail recursion without space leaks}",
 journal = "Journal of Functional Programming",
 volume = "2",
 number = "1",
 month = "Jan",
 year ="1992",
 pages = "73--80",
 keywords = "black hole"
}

@Book{appel:compiling,
 author = "AW Appel",
 title = "Compiling with Continuations",
 publisher = "Cambridge University Press",
 address = "Cambridge",
 year = "1992"
}

@Article{BakerMTA,
 author= "H Baker",
 title = "{Cons should not cons its arguments, Part II: Cheney on the MTA}",
 journal = "SIGPLAN Notices",
 volume = "30",
 number = "9",
 month = "Sept",
 year = "1995",
 pages = "17--20"
}

@TechReport{Baker82d,
  author =       "TP Baker",
  title =        "The Interface Between the Front and Back Ends of the
                 Compiler",
  institution =  "Florida State University",
  number =       "ADA-82-04",
  pages =        "10",
  year =         "1982",
}


@Article{Canalda:1993:PBE,
  author =       "P Canalda and L Cognard and A Despland and M
                 Mazaud",
  title =        "{PAGODE}: {A} Back End Generator",
  journal =      "Lecture Notes in Computer Science",
  volume =       "714",
  pages =        "410--??",
  year =         "1993",
  coden =        "LNCSD9",
  ISSN =         "0302-9743",
  bibdate =      "Mon May 13 11:49:00 MDT 1996",
  acknowledgement = ack-nhfb,
}


@TechReport{Nielson94,
  author =       "Jens P Nielson and Jens Ulrik Toft",
  title =        "Formal Specification of {ANDF}, Existing Subset",
  type =         "202104/RPT/19 issue",
  number =       "2",
  address =      "\%I DDC International A/S",
  year =         "1994",
}

@Misc{FordRichar1993a,
  title =        "{GANDF}: {A} {GCC}-based {ANDF} Translator",
  abstract-url = "http://riwww.osf.org:8001/andf/andf.papers/abstracts.html#paper10",
  author =       "Richard L. Ford",
  url =          "ftp://riftp.osf.org/pub/andf/andf_coll_papers/GANDF.ps",
  howpublished = "Open Software Foundation Research Institute",
  month =        jan,
  year =         "1993",
  scope =        "gen",
}

@InProceedings{hend95,
  author =       "Fergus Henderson and Thomas Conway and Zoltan
                 Somogyi",
  title =        "Compiling logic programs to {C} using {GNU} {C} as a
                 portable assembler",
  booktitle =    "Postconference Workshop on Sequential
                 Implementation Technologies for Logic Programming ({ILPS'95})",
  address =      "Portland, Or",
  pages =        "1--15",
  url =          "http://www.cs.mu.oz.au/mercury/papers/mercury_to_c.ps.gz",
  year =         "1995",
}

***********************************************************
*
*	Have read those resently:
*
***********************************************************

@InProceedings{EustaceAla1995a,
  author =       "Alan Eustace and Amitabh Srivastava",
  booktitle =    "Proceedings of the Winter 1995 USENIX Conference",
  title =        "{ATOM}: {A} flexible interface for building high
                 performance program analysis tools",
  year =         "1995",
  abstract-url = "http://www.research.digital.com/wrl/techreports/abstracts/TN-44.html",
  url =          "ftp://gatekeeper.dec.com/pub/DEC/WRL/research-reports/WRL-TN-44.ps",
  month =        jan,
  scope =        "tools",
}

@InProceedings{Eustace:1995:AAF,
  author =       "Alan Eustace and Amitabh Srivastava",
  title =        "{ATOM}: {A} Flexible Interface for Building High
                 Performance Program Analysis Tools",
  editor =       "{USENIX Association}",
  booktitle =    "Proceedings of the 1995 {USENIX} Technical Conference:
                 January 16--20, 1995, New Orleans, Louisiana, {USA}",
  publisher =    "USENIX",
  address =      "Berkeley, CA, USA",
  year =         "1995",
  ISBN =         "1-880446-67-7",
  pages =        "303--314",
  day =          "16--20",
  month =        jan,
  year =         "1995",
  bibdate =      "Thu Feb 22 08:12:14 MST 1996",
  acknowledgement = ack-nhfb,
  affiliation =  "Digital Equipment Corporation, Western Research
                 Laboratory",
  keywords =     "USENIX; UNIX; advanced computing systems",
  searchkey =    "su:usenix",
}

@PhdThesis{FranzMicha1994a,
  author =       "Michael Franz",
  school =       "Institute for Computer Systems, ETH Zurich",
  title =        "Code Generation On the Fly: {A} Key for Portable
                 Software",
  year =         "1994",
  abstract-url = "ftp://ftp.inf.ethz.ch/doc/diss/th10497.abstract",
  url =          "ftp://ftp.inf.ethz.ch/doc/diss/th10497.ps.gz",
  scope =        "gen",
}

@TechReport{Fernandez95,
  author =       "Mary Fernandez",
  title =        "The Implementation of mlcc and mld: {A}
                 Machine-Independent Compiler and {A} Retargetable,
                 Optimizing Linker",
  institution =  "Department of Computer Science, Princeton University",
  number =       "TR-490-95",
  pages =        "500",
  month =        may,
  year =         "1995",
  abstract =     "This document includes the implementation of mlcc, a
                 machine-independent compiler, and mld, a retargetable,
                 optimizing linker. mld is designed to reduce the
                 runtime costs of encapsulation features in
                 object-oriented languages by delaying optimization
                 until link time. The motivation for link-time
                 optimization, a description of mld's optimization
                 techniques, and the results of applying mld's
                 techniques to Modula--3 programs are described in a
                 technical paper and thesis. The document contains
                 interleaved sections of documentation and the program's
                 source code. The source and documentation are extracted
                 and written into files for compilation or for
                 formatting using the noweb literate programming
                 system.",
}


@InProceedings{Keppel:asplos:1991,
  author =       "David Keppel",
  email =        "pardo@cs.washington.edu",
  title =        "A Portable Interface for On-The-Fly Instruction Space
                 Modification",
  booktitle =    "Proceedings of the Fourth International Conference on
                 Architectural Support for Programming Languages and
                 Operating Systems",
  pages =        "86--95",
  month =        apr,
  year =         "1991",
  checked =      "19940925",
  url =          "ftp://ftp.cs.washington.edu/pub/pardo/fly.ps",
  source =       "url",
  abstract =     "Applications such as incremental linking must modify
                 instruction space during program execution. Whenever
                 instruction space is modified, machine-dependent
                 systems issues such as instruction caching must be
                 dealt with properly. However, there are no standard
                 idioms for signaling a change to the instruction space.
                 This paper discusses issues for instruction space
                 allocation and coherence, describes a portable
                 interface for modifying instruction space, and examines
                 the details of several implementations of the
                 interface.",
}


@Article{Lewis:1995:CMR,
  author =       "Brian T Lewis and L Peter Deutsch and Theodore C
                 Goldstein",
  title =        "Clarity {MC}ode: {A} Retargetable Intermediate
                 Representation for Compilation",
  journal =      "ACM SIG{­}PLAN Notices",
  volume =       "30",
  number =       "3",
  pages =        "119--128",
  month =        mar,
  year =         "1995",
  coden =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Sat Dec 30 17:26:15 MST 1995",
  abstract =     "To support the compilation of Clarity, we have
                 developed a high-level, machine-independent
                 intermediate representation that we call MCode (middle
                 code). We use MCode to compile Clarity programs at
                 execution time (i.e., on-the-fly) into SPARC 1 code for
                 the Solaris operating system. This code generator is
                 designed to be largely machine-independent: besides the
                 SPARC code generator, an Intel x86 version is being
                 developed. MCode includes a small amount of
                 optimization information that enables the runtime code
                 generator to produce good quality code. Our SPARC code
                 generator produces code about as good as that produced
                 by the SunPRO C compiler at the -O2 optimization level.
                 A significant advantage of MCode over native machine
                 code is that it can be represented more compactly;
                 MCode is stack-based, and the encoding of most
                 instructions can be a single byte. We also support an
                 interpreter for MCode that supports full interoperation
                 with C and existing C libraries. Although MCode
                 includes instructions and data structures needed to
                 implement some Clarity language-specific constructs
                 such as its exceptions and method calls, the core of
                 MCode is suitable for representing code for C and many
                 other languages. (12 Refs.)",
  acknowledgement = ack-nhfb,
  affiliation =  "Sun Microsystems Labs., Mountain View, CA, USA",
  classification = "C6110J (Object-oriented programming); C6115
                 (Programming support); C6120 (File organisation);
                 C6140D (High level languages); C6150C (Compilers,
                 interpreters and other processors)",
  confdate =     "22 Jan. 1995",
  conflocation = "San Francisco, CA, USA",
  keywords =     "C language; C libraries; Clarity C++ programming
                 language; Clarity language-specific constructs; Clarity
                 MCode; Clarity programs; Code generator; Compilation;
                 Data structures; Exceptions; Execution time; Good
                 quality code; Instructions; Intel x86 version;
                 Interoperation; Interpreter; Method calls; Optimization
                 information; Retargetable intermediate representation;
                 Solaris operating system; SPARC 1 code",
  thesaurus =    "Application generators; C language; Data structures;
                 Object-oriented languages; Open systems; Optimising
                 compilers; Program interpreters",
}



@Article{Chow:1983:ILC,
  author =       "F. C. Chow and M. Ganapathi",
  key =          "Chow \& Ganapathi",
  title =        "Intermediate Languages in Compiler Construction--{A}
                 Bibliography",
  journal =      "ACM SIG{­}PLAN Notices",
  volume =       "18",
  number =       "11",
  pages =        "21--23",
  month =        nov,
  year =         "1983",
  coden =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Tue Dec 20 13:26:28 1983",
  annote =       "This bibliography lists 20 papers, ranging from the
                 UNCOL effort through TCOL to DIANA.",
}


@Article{OBrien:1995:XYI,
  author =       "Kevin O'Brien and Kathryn M. O'Brien and Martin
                 Hopkins and Arvin Shepherd and Ron Unrau",
  title =        "{XIL} and {YIL}: The Intermediate Languages of
                 {TOBEY}",
  journal =      "ACM SIG{­}PLAN Notices",
  volume =       "30",
  number =       "3",
  pages =        "71--82",
  month =        mar,
  year =         "1995",
  coden =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Sat Dec 30 17:26:15 MST 1995",
  abstract =     "Typically, the choice of intermediate representation
                 by a particular compiler implementation seeks to
                 address a specific goal. The intermediate language of
                 the TOBEY compilers, XIL, was initially chosen to
                 facilitate the production of highly optimal scalar
                 code. However, it was easily extended to a higher level
                 form YIL in order to support a new suite of
                 optimizations which in most existing compilers are done
                 at the level of source to source translation. We
                 discuss those design features of XIL that were
                 important factors in the production of optimal scalar
                 code. In addition we demonstrate how the strength of
                 the YIL abstraction lay in its ability to access the
                 underlying low level representation. (17 Refs.)",
  acknowledgement = ack-nhfb,
  classification = "C6140E (Other programming languages); C6150C
                 (Compilers, interpreters and other processors)",
  confdate =     "22 Jan. 1995",
  conflocation = "San Francisco, CA, USA",
  keywords =     "Compiler implementation; Highly optimal scalar code;
                 Intermediate languages; Intermediate representation; ML
                 abstraction; Optimal scalar code; TOBEY; Toronto
                 Optimizing Back End with Yorktown; Underlying low level
                 representation; XIL; YIL",
  thesaurus =    "Optimising compilers; Programming languages",
}


@Article{Tanenbaum:Staveren:Stevenson:acm:toplas:1982,
  author =       "Andrew S. Tanenbaum and Hans van Staveren and Johan W.
                 Stevenson",
  title =        "Using Peephole Optimisation on Intermediate Code",
  journal =      "ACM Transactions on Programming Languages and
                 Systems",
  volume =       "4",
  number =       "1",
  pages =        "21--36",
  month =        jan,
  year =         "1982",
  checked =      "19940302",
  source =       "Dept. Library",
  keywords =     "abstract machine, intermediate code, peephole
                 optimizer",
  abstract =     "Many portable compilers generate an intermediate code
                 that is subsequently translated into target machine's
                 assembly language. In this paper a stack-machine-based
                 intermediate code suitable for algebraic languages
                 (e.g., PASCAL, C, FORTRAN) and most byte-addressed
                 mini- and microcomputers is described. A table-driven
                 peephole optimizer that improves the intermediate code
                 is discussed in detail and compared with other local
                 optimization methods. Measurements show an improvement
                 of about 15 percent, depending on precise metrics
                 used.",
  reffrom =      "Kessler:acm:cc:1984",
  reffrom =      "Davidson:Fraser:acm:cc:1984",
  reffrom =      "Shyu:acm:sigplan:1986",
  reffrom =      "Davidson:Gresch:iait:1987",
  reffrom =      "Davidson:Fraser:spe:1987",
  reffrom =      "Benitez:Davidson:plasa:1994",
}


@Article{Klint:spe:1981,
  author =       "Paul Klint",
  title =        "Interpretation Techniques",
  journal =      "Software -- Practice and Experience",
  volume =       "11",
  number =       "9",
  pages =        "963--973",
  month =        sep,
  year =         "1981",
  refs =         "13",
  checked =      "19940428",
  keywords =     "interpretation versus compilation, interpretation
                 techniques, instruction encoding, code generation,
                 direct threaded code, indirect threaded code,
                 threading",
  abstract =     "The relative merits of implementing high level
                 programming languages by means of interpretation or
                 compilation are discussed. The properties and the
                 applicability of interpretation techniques known as
                 classical interpretation, direct threaded code and
                 indirect threaded code are described and compared.",
  reffrom =      "Pittman:iait:1987",
  reffrom =      "Davidson:Gresch:iait:1987",
}

@Article{Louden:acm:sigplan:1990,
  author =       "Kenneth Louden",
  email =        "louden@mathcs.sjsu.edu",
  title =        "{P}-Code and Compiler Portability: Experience with a
                 Modula-2 Optimizing Compiler",
  journal =      "SIGPLAN Notices",
  volume =       "25",
  number =       "5",
  pages =        "53--59",
  month =        may,
  year =         "1990",
  checked =      "19940516",
  refs =         "9",
  keywords =     "p-code, optimising compiler, Modula-2",
  abstract =     "P-Code generation as an intermediate step between the
                 front end and back end of a compiler is a standard
                 method for improving the portability of a compiler. But
                 P-code continutes to suffer from a number of drawbacks
                 as a means to create truly portable compilers. Two such
                 drawbacks are the lack of a P-code standard, and the
                 difficulty of representing optimization information in
                 P-code format. A Modula-2 Compiler written by Michael
                 L. Powell at DEC Western Research does use a version of
                 P-code which transmits optimizing information. This
                 node reports on the experience I have had porting that
                 copmier from a VAX to the Sequent Balance. I have found
                 that the P-Code verion used supports optimization in
                 important ways, but still does nt represent register
                 allocation information well. A suggestion is made to
                 improve register allocation across the P-code
                 interface.",
}


**************************************************************
*
*		Maybe worth looking at:
*
**************************************************************

@inproceedings  { RWilson_95,
author  =       "Robert P. Wilson and Monica S. Lam",
title   =       "Efficient Context-Sensitive Pointer Analysis for {C}
                Programs",
booktitle=      pldi95,
month   =       jun,
year    =       1995,
pages   =       "1--12"
}

@inproceedings  { MEmami_94,
author  =       "Maryam Emami and Rakesh Ghiya and Laurie J. Hendren" ,
title   =       "Context-Sensitive Interprocedural Points-to Analysis
                in the Presence of Function Pointers" ,
booktitle=      pldi94 ,
month   =       jun ,
year    =       1994 ,
pages   =       "242--256"
}

@inproceedings  { WLandi_92,
author  =       "William Landi and Barbara G. Ryder" ,
title   =       "A Safe Approximate Algorithm for Interprocedural
                Pointer Aliasing" ,
booktitle=      pldi92 ,
month   =       jun ,
year    =       1992 ,
pages   =       "235--248"
}

@inproceedings  { WLandi_93,
author  =       "William Landi and Barbara G. Ryder and Sean Zhang" ,
title   =       "Interprocedural Modification Side Effect Analysis
                With Pointer Aliasing" ,
booktitle=      pldi93 ,
month   =       jun ,
year    =       1993 ,
pages   =       "56--67"
}

@inproceedings  { ERuf_95,
author  =       "Erik Ruf",
title   =       "Context-Insensitive Alias Analysis Reconsidered",
booktitle=      pldi95,
month   =       jun,
year    =       1995,
pages   =       "13--22"
}

@inproceedings  { JDChoi_93,
author  =       "Jong-Deok Choi and Michael Burke and Paul Carini" ,
title   =       "Efficient Flow-Sensitive Interprocedural Computation
                of Pointer-Induced Aliases and Side Effects" ,
booktitle=      popl93 ,
month   =       jan ,
year    =       1993 ,
pages   =       "232--245"
}

@inproceedings{kutzner:98,
   author = {Arne Kutzner and Manfred Schmidt-Schauß},
   title = {A Nondeterministic  Call-by-Need Lambda Calculus},
   crossref = "icfp98",
   PAGES  = {324--335}}
}

@InProceedings{VPO,
  author = "ME Benitez and JW Davidson",
  title = "{The advantages of machine-Dependent global optimization}",
  booktitle = "International Conference on Programming Languages and Architectures (PLSA'94)",
  pages = "105-123",
  year = "1994"
}

@InCollection{moran-sands-carlsson:98,
  author =       "A. K. Moran and D. Sands and M. Carlsson",
  title =        "Erratic {F}udgets: {A} semantic theory for an embedded
   coordination language",
  booktitle =    "Coordination '99",
  series =       lncs,
  volume =       1594,
  publisher =    SV,
  year =         "1999",
  month =        apr
  }

@inproceedings{carlsson+:fudgets,
  title = "{Fudgets} - A Graphical User Interface in a Lazy Functional Language",
  author = "Magnus Carlsson and Thomas Hallgren",
  crossref = "fpca93",
  pages = "321-330"
}

@inproceedings{benitez:portable,
  author="Manuel E. Benitez and Jack W. Davidson",
  title="A Portable Global Optimizer and Linker",
  crossref="pldi88",
  pages="329--338"
}

@inproceedings{stichnoth:support,
  author = {JM Stichnoth and G-Y Lueh and M Cierniak},
  title = {Suppport for garbage collection at every instruction in a
                  {Java} compiler},
  crossref = "pldi99",
  url =          "http://www.acm.org:80/pubs/citations/proceedings/pldi/301122/p118-stichnoth/",
  pages = {118-127}
}

@inproceedings{shao-type-rep,
  author = {Z Shao and C League and S Monnier},
  title = {Implementing Typed Intermediate Languages},
  crossref = "icfp98",
  pages = {313-323}
}

@PhDThesis{gaster-thesis,
  author = "BR Gaster",
  title = "Records, variants, and qualified types",
  school = "Department of Computer Science, University of Nottingham",
  year = 1998
}

@inproceedings{gaster-records-proposal,
  author = "BR Gaster",
  title = "Polymorphic extensible records for {Haskell}",
  crossref = "haskell-workshop-97"
}

@techreport{GasterJones,
  author = "BR Gaster and MP Jones",
  title = "A polymorphic type system for extensible records and
                  variants",
  number = "{NOTTCS-TR-96-3}",
  institution = "Department of Computer Science, University of Nottingham",
  year = 1996,
  month = nov
}

@book{curry-feys:combinatory-logic
    ,author={Curry, H.B. and Feys, R.}
    ,title={Combinatory Logic, Vol. 1}
    ,publisher={North-Holland}
    ,address={Amsterdam}
    ,year=1958
    }

@inproceedings{deBruijn,
  author = {N de Bruijn},
  title = {A survey of the project {AUTOMATH}},
  booktitle = {To HB Curry: essays on combinatory logic, lambda
                  calculus, and formalism},
  pages = {579-606},
  year = 1980,
  editor = {JP Seldin and JR Hindley},
  publisher = {Academic Press}
}

@inproceedings{danvy-lambda-dropping,
  author = {O Danvy and UP Schultz},
  title = {Lambda-Dropping: transforming recursive equations into
                  programs with block structure},
  crossref = "pepm97",
  pages = {90-106}
}

@incollection{cardelli-mitchell-records,
  author = "L Cardelli and JC Mitchell",
  title = "Operations on records",
  crossref = "oo-theory-book",
  pages = "295-350"
}

@incollection{cardelli-extensible,
  author = "L Cardelli",
  title = "Extensible records in a pure calculus of sub-typing",
  crossref = "oo-theory-book",
  pages = "373-426"
}
  
@book{barendregt,
  author = {HP Barendregt},
  title = {The lambda calculus: its syntax and semantics},
  publisher = {North Holland},
  series = {Studies in Logic},
  number = 103,
  year = 1985
}

@article{appel-loop-headers,
  author = {AW Appel},
  title = {Loop Headers in Lambda-calculus or {CPS}},
  journal = lasc,
  volume = 7,
  pages = {337-343}, 
  year = 1994,
  keywords = {static argument transformation}
}

@Article{ cht:loplas92,  
  author	= {Cooper, K. and Hall, M. and Torczon, L.},
  title		= {{U}nexpected {S}ide {E}ffects of {I}nline {S}ubstitution:
                   {A} {C}ase {S}tudy},
  year		= 1992,  
  volume	= 1,  
  number	= 1,
  pages		= {22--31},  
  journal	= loplas}

@Article{ cooper-inline-spe,
  author = {KD Cooper and MW Hall and L Torczon},
  title = "An experiment with inline substitution",
  journal = spe,
  volume = 21,
  issue = 6,
  year = 1991,
  month = jun,
  pages = {581-601}
}

@Article{ davidson-inlining,
  author = "JW Davidson and AM Holler",
  title = "Subprogram inlining: a study of its effects on program
                  execution time",
  journal = tse,
  volume = 18,
  issue = 2,
  pages = {89-102},
  year = 1992,
  month = feb
}

@InProceedings{chambers-inlining,
  author = "J Dean and C Chambers",
  title = "Towards better inlining decisions using inlining trials",
  crossref = "lfp94",
  pages = {273-282},
  kewords = {inlining}
}

@article{chang-inlining,
  author = "PP Chang and SA Mahlke and WY Chen and W-M Hwu",
  title = "Profile-guided automatic inline expansion for {C} programs",
  journal = spe,
  volume = 22,
  issue = 5,
  pages = {349-369},
  year = 1992,
  month = may
}

@unpublished{biggerstaff:problem,
  author = "T Biggerstaff",
  title = "The problem with program transformation systems (and what
                  to do about it)",
  year = 1999
}

@InProceedings{serrano-bigloo,
  author        = {Serrano, Manuel and Weis, Pierre},
  title         = {{Bigloo}: a portable and optimizing compiler for
                   strict functional languages},
  crossref      = "sas95",
  pages         = {366--381},
  abstract =     "We present Bigloo, a highly portable and optimizing
                 compiler. Bigloo is the first compiler for strict
                 functional languages that can efficiently compile
                 several languages: Bigloo is the first compiler for
                 full Scheme and full ML, and for these two languages,
                 Bigloo is one of the most efficient compiler now
                 available (Bigloo is available by anonymous ftp on
                 ftp.inria.fr [192.93.2.54]). This high level of
                 performance is achieved by numerous high-level
                 optimizations. Some of those are classical
                 optimizations adapted to higher-order functional
                 languages (e.g. inlining), other optimization schemes
                 are specific to Bigloo (e.g. a new refined closure
                 analysis, an original optimization of imperative
                 variables, and intensive use of higher-order control
                 flow analysis). All these optimizations share the same
                 design guideline: the reduction of heap allocation.",
}

@InProceedings{serrano:plilp97,  
  author	= {M Serrano},
  title		= {Inline expansion: {\em when} and {\em how}\/?},
  crossref	= "plilp97"
}

@InProceedings{serrano:ics95,   
  author	= {Serrano, M.},
  title		= {{A} fresh look to inlining decision},
  crossref = "ics95"
}

@InProceedings{HuMo92,
  author = 	 "Richard L. Hudson and J. Eliot B. Moss",
  title = 	 "Incremental Collection of Mature Objects",
  crossref =  "iwmm92",
  pages = 	 "388--403"
}



@techreport{thimbleby-design,
  author = {Harold Thimbleby},
  title = {The detection and elimination of spurious complexxity},
  institution = {Middlesex University},
  keywords = {draft}
}

@techreport{marmot,
  author = {R Fitzgerald {\em et al}},
  title = {Marmot: an optimizing compiler for Java},
  month = oct,
  year = 1998,
  institution = msr
}

@inproceedings{huet:ho-unif
  ,author="G. Huet"
  ,title="Higher Order Unification 30 Years Later"
  ,booktitle="15th International Workshop on Higher Order Logic Theorem Proving and Its Applications ({IWHOLTP}'02)"
  ,publisher="LNCS"
  ,year="2002"
}

@article{huet:prog-trans,
  author = "G Huet and B Lang",
  title = "Proving and applying program transformations expressed with
                  second-order patterns", 
  journal = "Acta Informatica",
  volume = 11,
  pages = "31-55",
  year = 1978,
  keywords = "matching"
}

@article{huet86,
  author = {Francois Fages and Gerard Huet},
  title = {Complete sets of unifiers and matches in equational
                  theories},
  journal = tcs,
  volume = 43,
  year = 1986,
  pages = {189-200},
  keywords = {higher order matching,  unification}
}

@article{huet:higher-order-unification,
  author = {Gerard Huet},
  title = {A unification algorithm for typed lambda-calculus},
  journal = tcs,
  volume = 1,
  issue = 1,
  year = 1975,
  pages = {22-58},
}

@techreport{Shivers96,
  author = {Olin Shivers},
  title = {Supporting dynamic languages on the Java virtual machine},
  number = {AI Memo 1576},
  institution = {MIT AI Lab},
  year = 1996,
  keywords = {JVM, COM+}
}

@inproceedings{Baker91,
  author = {HG Baker},
  title = {Cache-conscious copying collectors},
  booktitle = {Proc Workshop on Garbage Collection in Object Oriented
                  Systems (GC'91, held at OOPSLA'91)},
  year = 1991
}

@inproceedings{Guthery89,
  author = {Scott Guthery},
  title = {Twenty-five reasons why OOP isn't ready for commercial
                  use},
  booktitle = {OOPSLA'89},
  year = 1989
}

@inproceedings{Miller91,
  author       = {Miller, Dale},
  title        = {A Logic Programming Language with Lambda-Abstraction,
	Function Variables, and Simple Unification},
  editor       = {Schroeder-Heister, Peter},
  booktitle    = {Extensions of Logic Programming: International
	Workshop, Tübingen FRG, December 1989},  
  publisher    = {Springer-Verlag},
  series       = {Lecture Notes in Artificial Intelligence},
  volume       =  475,  
  year         =  1991,  
  pages        = {253--281},
  source       = {ftp://src.doc.ic.ac.uk/computing/bibliographies/Karlsruhe/Ai/pennbib.bib/},
  source-date  = {Tue 26 Aug 97},
  keywords     = {higher order matching}
}

@article{miller:mixed-prefix,
 author = {Dale Miller},
 title = {Unification under a mixed prefix},
 journal = {J. Symb. Comput.},
 volume = 14,
 number = 4,
 year = 1992,
 pages = {321--358}
 }


@inproceedings{oege-prog-trans99,
  author = {O de Moor and G Sittampalam},
  title  = {Generic Program Transformation},
  booktitle = {Proceedings of the 3rd International Summer School
                  on Advanced Functional Programming},
  publisher = lncs,
  year = 1999
}

@article{Anonymous93,
   key = {Anonymous93},
   title = {Special issue on Instruction-Level Parallelism},
   journal = {Journal of Supercomputing},
   volume = {7},
   year = {1993},
   keywords = {It contains long, detailed papers written about the Multiflow Trace and Cydrome's Cydra 5, some current work that helps put those systems and the rest of instruction-level parallelism in perspective, and a survey of the history and practice of ILP.  VLIW. trace scheduling}
}

@article{Rau93,
   author = {BR Rau and JA Fisher},
   title = {Instruction-level parallel processing: history, overview and perspective},
   journal = {Journal of Supercomputing},
   volume = {7},
   pages = {9-50},
   year = {1993},
   keywords = {VLIW, trace scheduling, superscalar}
}

@article{alrbrace93,
   author = {PG Lowney {\em et al}},
   title = {The Multiflow trace scheduling compiler},
   journal = {Journal of Supercomputing},
   volume = {7},
   pages = {51-142},
   year = {1993},
   keywords = {VLIW, trace scheduling, superscalar}
}

@article{alrbrace93a,
   author = {WW Hwu P{\em et al}},
   title = {The superblock: an effective technique for {VLIW} and superscalar compilation},
   journal = {Journal of Supercomputing},
   volume = {7},
   pages = {229-248},
   year = {1993},
   keywords = {VLIW, trace scheduling, superscalar}
}

@book{gordon:edinburgh-lcf,
   author = {M Gordon and R Milner and CP Wadsworth},
   title = {Edinburgh {LCF}},
   publisher = {Springer Verlag LNCS 78},
   year = {1979},
   keywords = {Polymorphic typing, ML}
}

@article{Wilkes73,
   author = {MV Wilkes},
   title = {The dynamics of paging},
   journal = {Computer Journal},
   volume = {16},
   pages = {4-9},
   month = feb,
   year = {1973}
}

@article{al80,
   author = {PD Stephens et al},
   title = {The evolution of the operating system {EMAS} 2900},
   journal = {Software Practice and Experience},
   volume = {10},
   pages = {993-1008},
   year = {1980}
}

@book{Abelson84,
   author = {Harold Abelson and Gerald Sussman},
   title = {Structure and interpretation of computer programs},
   publisher = {MIT Press/McGraw Hill},
   year = {1984},
   keywords = {Lisp, modulatity, software engineering, large systems. Looks good}
}

@article{Lampson84,
   author = {BW Lampson},
   title = {Hints for computer system design},
   journal = {IEEE Software},
   volume = {1},
   number = {1},
   pages = {11-30},
   month = jan,
   year = {1984},
   keywords = {Should be good - Lampson was involved in Dorado. Architecture}
}

@article{Anonymous84,
   key = {Anonymous84},
   journal = {IEEE Trans Software Engineering},
   volume = {10},
   number = {1},
   month = jan,
   year = {1984},
   keywords = {Issue devoted to project management}
}

@techreport{Burge77,
   author = {WH Burge},
   title = {Examples of program optimization},
   type = {RC 6351, IBM Thomas J Watson Research Centre},
   month = oct,
   year = {1977},
   keywords = {Deforestation, the foldr/build rule, abstracting over cons and nil.  Amazing!}
}

@article{Petersen83,
   author = {WP Petersen},
   title = {Vector Fortran for numerical problems on Cray-1},
   journal = {CACM},
   volume = {26},
   number = {11},
   pages = {1008-1021},
   month = nov,
   year = {1983},
   keywords = {Very good.  FFT, matrix inversion}
}

@inproceedings{Henderson82,
   author = {Peter Henderson},
   title = {Functional geometry},
   booktitle = {Proc ACM Symposium on Lisp and Functional Programming},
   publisher = acm,
   pages = {179-187},
   year = {1982},
   keywords = {Graphics}
}

@article{Loka84,
   author = {RR Loka},
   title = {A note on parallel parsing},
   journal = {SIGPLAN Notices},
   volume = {19},
   number = {1},
   pages = {60-62},
   month = jan,
   year = {1984}
}

@article{Harland84,
   author = {DM Harland},
   title = {User defined types in a polymorphic language},
   journal = {Computer Journal},
   volume = {27},
   number = {1},
   pages = {47-56},
   month = jan,
   year = {1984},
   keywords = {Types as first class citizens, tagging, abstract data types}
}

@article{al84,
   author = {WP Cockshot et al},
   title = {Persistent object management system},
   journal = {Software Practice and Experience},
   volume = {14},
   pages = {49-71},
   year = {1984},
   keywords = {Database, heap, disk pointers, filestore, virtual memory, garbage collection}
}

@article{Katwijk84,
   author = {J van Katwijk and J van Someren},
   title = {The doublet model, run time model, and implementation of Ada types},
   journal = {SIGPLAN Notices},
   volume = {19},
   number = {1},
   pages = {78-92},
   month = jan,
   year = {1984},
   keywords = {Tagged architectures}
}

@article{Wise79,
   author = {DS Wise},
   title = {Morris's gargage collection algorithm restores reference counts},
   journal = toplas,
   volume = {1},
   number = {1},
   pages = {115-120},
   month = jul,
   year = {1979}
}

@techreport{Morris81,
   author = {JH Morris},
   title = {Real programming in functional languages},
   type = {Xerox PARC},
   number = {CSL-81-11},
   month = jul,
   year = {1981},
   keywords = {Poplar, Euclid}
}

@article{Ghezzi79,
   author = {C Ghezzi and D Mandrioli},
   title = {Incremental parsing},
   journal = toplas,
   volume = {1},
   number = {1},
   pages = {58-70},
   month = jul,
   year = {1979}
}

@article{Sethi83,
   author = {Ravi Sethi},
   title = {Control flow aspects of semantics directed compiling},
   journal = toplas,
   volume = {5},
   number = {4},
   pages = {554-595},
   month = oct,
   year = {1983},
   keywords = {Compiler generators}
}

@article{al83,
   author = {RJ Lipton et al},
   title = {{VLSI} layout as programming},
   journal = toplas,
   volume = {5},
   number = {3},
   pages = {405-421},
   month = jul,
   year = {1983}
}

@article{Cohen83,
   author = {J Cohen and A Nicolau},
   title = {Comparison of compacting algorithms for garbage collection},
   journal = toplas,
   volume = {5},
   number = {4},
   pages = {532-553},
   month = oct,
   year = {1983}
}

@article{Walters83,
   author = {RC Walters},
   title = {User format control in a {LISP} pretty printer},
   journal = toplas,
   volume = {5},
   number = {4},
   pages = {513-531},
   month = oct,
   year = {1983}
}

@techreport{Cardelli82,
   author = {Luca Cardelli},
   title = {Two dimensional syntax for functional languages},
   type = {Dept of Comp Sci, Edinburgh},
   month = may,
   year = {1982},
   keywords = {Graphical programming}
}

@article{Tamir83,
   author = {Y Tamir and CH Sequin},
   title = {Strategies for managing the register file in {RISC}},
   journal = {IEEE Trans Computers},
   volume = {32},
   number = {11},
   pages = {977-989},
   month = nov,
   year = {1983},
   keywords = {Cache fetch strategies, procedure calls, VLSI}
}

@article{Harl82,
   author = {DM Harl and and HIE Gunn},
   title = {Another look at enumerated types},
   journal = {SIGPLAN Notices},
   volume = {17},
   number = {7},
   pages = {62-71},
   month = jul,
   year = {1982},
   keywords = {Tagged data, polymorphism}
}

@article{Chaney83,
   author = {TJ Chaney},
   title = {Measured flip flop responses to marginal triggering},
   journal = {IEEE Trans Computers},
   volume = {32},
   number = {12},
   pages = {1207-1208},
   month = dec,
   year = {1983},
   keywords = {Metastability}
}

@article{Babaoglu83,
   author = {O Babaoglu},
   journal = {IEEE Trans Computers},
   volume = {32},
   number = {12},
   pages = {1151-1159},
   month = dec,
   year = {1983},
   keywords = {Virtual memory}
}

@misc{International84,
   author = {Systems International},
   title = {Colour hard copy},
   month = feb,
   year = {1984},
   keywords = {Plotters}
}

@misc{International84a,
   author = {Systems International},
   title = {Pixel power},
   month = jan,
   year = {1984},
   keywords = {Colour raster survey}
}

@misc{International84b,
   author = {Systems International},
   title = {Multibus version 2},
   month = jan,
   year = {1984}
}

@misc{EPD84,
   author = {{EPD}},
   title = {Data handling for advanced vdu facilities},
   institution = {EPD},
   month = mar,
   year = {1984},
   keywords = {Clever vdu driver chip}
}

@misc{EPD84a,
   author = {{EPD}},
   title = {Message passing in Multibus 2},
   institution = {EPD},
   month = mar,
   year = {1984}
}

@book{Goodstein??,
   author = {RL Goodstein},
   title = {Mathematical Logic},
   publisher = {Univ of Leicester Press, 2nd ed},
   keywords = {Propositional and predicate calculus (recommended by WLBN).  It was written for teachers of mathematics innocent of logic, and is remarkably elegant, concise and complete}
}

@misc{Hamilton??,
   author = {{Hamilton}},
   title = {Logic for Mathematicians},
   institution = {Hamilton}
}

@book{Dalen??,
   author = {Van Dalen},
   title = {...logic..},
   publisher = {Springer Verlag},
   keywords = {Very good (according to WLBN). Yellow cover}
}

@techreport{Wadler84,
   author = {PL Wadler},
   title = {Listlessness is better than laziness},
   type = {Programming research group, Oxford},
   month = jan,
   year = {1984},
   keywords = {Finite state machine implementation of some functional programs. Saves garbage collection}
}

@incollection{wadler:list-of-successes,
   author = {PL Wadler},
   title = {How to replace failure by a list of successes},
   crossref = "fpca85",
   pages = "113-128",
   keywords = {Exception handling, backtracking, pattern matching in a functional language}
}

@inproceedings{wadler:laziness-in-ml,
  title = "How to add laziness to a strict language, without even being odd",
  author = "Philip Wadler and Walid Taha and David MacQueen",
  booktitle = "Workshop on Standard ML, Baltimore",
  month = sep,
  year = 1988
}

@techreport{Wadler85,
   author = {PL Wadler},
   title = {A splitting headache and its cure},
   type = {Programming research group, Oxford},
   month = jan,
   year = {1985},
   keywords = {Strict vs lazy semantics for pattern matching in a functional language}
}

@inproceedings{wadler:views,
  author = "Philip Wadler",
  title = "Views: a way for pattern matching to cohabit with data abstraction",
  booktitle = "14th ACM Symposium on Principles of Programming Languages",
  address = "Munich",
  month = jan,
  year = 1987
}

@techreport{Wadler87,
   author = {PL Wadler},
   title = {Views - a way for pattern matching to cohabit with data abstraction},
   type = {Report 34, Programming Methodology Group, Chal---mers University, Sweden},
   month = mar,
   year = {1987},
   keywords = {Pattern matching on abstract data types}
}

@article{Fay84,
   author = {D Fay},
   title = {Working with Occam - a program for generating display images},
   journal = {Microprocessors and microprogramming},
   volume = {8},
   number = {1},
   pages = {3-15},
   month = jan,
   year = {1984}
}

@article{Nelson84,
   author = {JCC Nelson and MK Refai},
   title = {Design of a hardware arbiter for multi microprocessor systems},
   journal = {Microprocessors and microprogramming},
   volume = {8},
   number = {1},
   pages = {21-24},
   month = jan,
   year = {1984}
}

@misc{Fletcher80,
   author = {WI Fletcher},
   title = {An engineering approach to digital systems},
   pages = {480-5},
   year = {1980},
   keywords = {Prentice Hall Metastability problem}
}

@techreport{Meira84,
   author = {Silvio Meira},
   title = {A linear applicative solution for the set union problem},
   type = {Univ of Kent},
   month = feb,
   year = {1984},
   keywords = {Submitted Info Proc Lett}
}

@techreport{McCabe84,
   author = {FG McCabe},
   title = {Abstract {PROLOG} machine - a specification},
   type = {Imperial College},
   month = jan,
   year = {1984},
   keywords = {Uses tagged pointers}
}

@techreport{Moor84,
   author = {IW Moor},
   title = {An applicative compiler for a parallel machine},
   type = {Imperial College},
   month = jan,
   year = {1984}
}

@misc{International84c,
   author = {Systems International},
   title = {Industrious workers - robot survey},
   month = mar,
   year = {1984}
}

@article{Kruskal83,
   author = {CP Kruskal},
   title = {Searching, merging and sorting in parallel computation},
   journal = {IEEE Trans Computers C-},
   volume = {32},
   number = {10},
   pages = {942-946},
   month = oct,
   year = {1983},
   keywords = {Mainly concerned with theoretical bounds and algorithms}
}

@techreport{Steinbruggen82,
   author = {Ralf Steinbruggen},
   title = {Program development using transformational expressions},
   type = {TUM-I8206 Univ of Munich},
   month = oct,
   year = {1982},
   keywords = {Properties of a limited metalanguage (regular expressions)}
}

@techreport{al82,
   author = {B Brass et al},
   title = {{CIP}-{S} - an instrument for program transformation and rule generation},
   type = {TUM-I8211 Univ of Munich},
   month = jul,
   year = {1982}
}

@techreport{Pixley84,
   author = {Carl Pixley},
   title = {Demand driven arithemetic},
   type = {Burroughs Corp},
   month = jan,
   year = {1984},
   keywords = {Arbitrary precision arithmetic in a lazy language via digit strings; Submitted to TOPLAS}
}

@techreport{Lima84,
   author = {IG Lima},
   title = {Trip report - Japan},
   type = {Univ of Newcastle},
   month = jan,
   year = {1984},
   keywords = {ICOT, Fifth generation, PSI, LISP machine, graphics}
}

@techreport{Bush84,
   author = {Vicky Bush},
   title = {Trip report - Germany},
   type = {Univ of Manchester},
   month = jan,
   year = {1984},
   keywords = {CIP project, program transformation}
}

@unpublished{Hammond84,
   author = {Kevin Hammond},
   title = {Writing and debugging functional programs},
   type = {Draft, Univ of East Anglia},
   month = jun,
   year = {1984}
}

@unpublished{Hammond84a,
   author = {Kevin Hammond},
   title = {Concurrent Prolog - Shapiro's answer to Parlog?},
   type = {Unpublished notes, Univ of East Anglia},
   month = feb,
   year = {1984}
}

@book{Myers78,
   author = {Glenford Myers},
   title = {Advances in Computer Architecture},
   publisher = {Wiley 2nd ed},
   year = {1978},
   keywords = {I have copy of Ch 2\&4, a constructive critique of von Neumann architecture}
}

@article{Hartland??,
   author = {David M Hartland},
   title = {User defined types in a polymorphic language},
   journal = {Computer Journal}
}

@article{Er84,
   author = {MC Er},
   title = {The colour towers of Hanoi - a generalisation},
   journal = {Computer Journal},
   volume = {27},
   number = {1},
   pages = {80-82},
   month = feb,
   year = {1984},
   keywords = {A nice programming exercise}
}

@incollection{Meira84a,
   author = {Silvio Meira},
   title = {Optimised combinatoric code for applicative language implementation},
   booktitle = {Proc 6th Intl symposium on programming},
   publisher = {LNCS Springer},
   month = {Verlag},
   year = {1984},
   keywords = {Strictness analysis, call by need into call by value}
}

@techreport{Hughes84,
   author = {John Hughes},
   title = {Parallel functional languages use less space},
   type = {(Submitted to) Symposium on Lisp and Functional Programming},
   month = {Austin},
   year = {1984},
   keywords = {Synch and par}
}

@article{Marovac83,
   author = {N Marovac},
   title = {A systematic approach to the design and development of a computer instruction set},
   journal = {Comp Arch News},
   volume = {11},
   number = {1},
   pages = {19-24},
   month = mar,
   year = {1983}
}

@article{Patterson80,
   author = {DA Patterson and CH Sequin},
   title = {Design considerations for single chip computers of the future},
   journal = {IEEE Trans Computers C-},
   volume = {29},
   number = {2},
   pages = {108-116},
   month = feb,
   year = {1980}
}

@article{Hill83,
   author = {DD Hill},
   title = {An analysis of {C} machine support for other block structured languages},
   journal = {Comp Arch News},
   volume = {11},
   number = {4},
   pages = {6-16},
   month = sep,
   year = {1983},
   keywords = {Stack cache}
}

@incollection{Mishra84,
   author = {P Mishra and RM Keller},
   title = {Static inference of properties of applicative programs},
   booktitle = {POPL 11, Salt Lake City},
   pages = {235-244},
   month = jan,
   year = {1984},
   keywords = {Strictness analysis}
}

@unpublished{Turner83,
   author = {D A Turner},
   title = {Functional programming},
   type = {Unpublished paper, Univ of Kent},
   year = {1983}
}

@unpublished{Gallimore83,
   author = {RM Gallimore and D Coleman},
   title = {Algebra in software engineering},
   type = {Unpublished paper, UMIST},
   year = {1983}
}

@article{Frank81,
   author = {EH Frank and RF Sproull},
   title = {Testing and debugging custom integrated circuits},
   journal = {Computing Surveys},
   volume = {13},
   number = {4},
   month = dec,
   year = {1981},
   keywords = {VLSI}
}

@unpublished{Darlington80,
   author = {John Darlington},
   title = {The design of efficient data representations},
   type = {Unpublished paper, Imperial College},
   year = {1980},
   keywords = {Program transformations}
}

@misc{Hughes??,
   author = {RJM Hughes},
   keywords = {Supercombinator compiler code (in Lispkit and Prolog)}
}

@techreport{Smyth83,
   author = {MG Smyth},
   title = {Power domains and predicate transformers - a topological view},
   type = {Univ of Edinburgh},
   number = {CSR-126-83},
   month = jan,
   year = {1983}
}

@techreport{Bush83,
   author = {Vicky Bush},
   title = {Future directions for high speed computer architecture - proceedings},
   type = {Manchester},
   year = {1983},
   keywords = {An interesting workshop report}
}

@techreport{Applebaum83,
   author = {CH Applebaum and J Keeton-Williams},
   title = {{PVS} - design for a practical verification system},
   type = {MITRE Corp},
   number = {MTR8936},
   month = may,
   year = {1983}
}

@techreport{Williams84,
   author = {James G Williams},
   title = {A logic for reasoning about programs},
   type = {MITRE Corp},
   number = {MTP240},
   month = jan,
   year = {1984}
}

@techreport{Williams83,
   author = {James G Williams},
   title = {{PVS} - formal semantics volume 1: combinator tree interpretations},
   type = {MITRE Corp},
   number = {MTR9133},
   month = dec,
   year = {1983}
}

@techreport{Finn83,
   author = {SP Finn and P Williamson},
   title = {Lispkit open forum - proceedings},
   type = {Stirling},
   year = {1983}
}

@incollection{Broy82,
   author = {Manfred Broy},
   editor = {Broy and Schmidt},
   title = {A fixed point approach to applicative multiprogramming},
   booktitle = {Theoretical foundations of programming methodology,},
   publisher = {Reidel},
   year = {1982}
}

@article{Broyden83,
   author = {CG Broyden},
   title = {A mark scaling algorithm},
   journal = {Computer Journal},
   volume = {26},
   number = {2},
   pages = {109-112},
   month = feb,
   year = {1983},
   keywords = {Exam marks}
}

@article{Olsson83,
   author = {Olle Olsson},
   title = {The memory usage of a Lsip system - the Belady lifetime function},
   journal = {SIGPLAN Notices},
   volume = {18},
   number = {12},
   pages = {112-119},
   month = dec,
   year = {1983},
   keywords = {Lifetime means time between page faults; he tests how this varies with page size and page pool size}
}

@book{Kulisch83,
   editor = {Kulisch and Miranker},
   title = {A new approach to scientific computation},
   publisher = {Academic Press},
   year = {1983},
   keywords = {More on computer arithmetic}
}

@article{Nau83,
   author = {DS Nau},
   title = {Expert Computer Systems},
   journal = {IEEE Computer},
   pages = {63-85},
   month = feb,
   year = {1983},
   keywords = {Quite a good survey}
}

@incollection{Burstall77,
   author = {RM Burstall},
   title = {Design considerations for a functional programming language},
   booktitle = {The software revolution.},
   publisher = {Infotech},
   year = {1977}
}

@inproceedings{Burstall80,
   author = {RM Burstall and DB MacQueen and DT Sannella},
   title = {{HOPE} - an experimental applicative language},
   booktitle = {ACM Lisp conference},
   pages = {1236-143},
   year = {1980},
   keywords = {Also Edinburgh report CSR-62-80 (updated 1981)}
}

@article{MacQueen83,
   author = {Dave MacQueen},
   title = {Modules for Standard {ML}},
   journal = {Polymorphism},
   volume = {1},
   number = {3},
   month = dec,
   year = {1983}
}

@article{Turner77,
   author = {D A Turner},
   title = {Error diagnosis and recovery in one pass compilers},
   journal = {Info Proc Lett},
   volume = {6},
   number = {4},
   month = aug,
   year = {1977}
}

@article{Shapiro83,
   author = {Ehud Shapiro},
   title = {The fifth generation project},
   journal = {CACM},
   volume = {26},
   number = {9},
   pages = {637-641},
   month = sep,
   year = {1983},
   keywords = {A good trip report}
}

@article{Kung82,
   author = {HT Kung},
   title = {Why systolic architectures?},
   journal = {IEEE Computer},
   pages = {37-46},
   month = jan,
   year = {1982}
}

@book{Kulisch81,
   author = {U Kulisch and W Miranker},
   title = {Computer arithmetic in theory and practice},
   publisher = {Academic Press},
   year = {1981},
   keywords = {Mathematically decent algorithms for floating point arithmetic}
}

@incollection{Rogers83,
   author = {MH Rogers},
   title = {Specification of algorithms for systolic array elements},
   booktitle = {VLSI Architecture},
   pages = {348-380},
   publisher = {Prentice Hall},
   year = {1983}
}

@incollection{Treleaven83,
   author = {Philip Treleaven},
   title = {Decentralised computer architectures for {VLSI}},
   booktitle = {VLSI Architecture},
   pages = {348-380},
   publisher = {Prentice Hall},
   year = {1983},
   keywords = {Comprehensive bibliography}
}

@article{Anonymous83,
   key = {Anonymous83},
   journal = {IEEE Spectrum},
   volume = {20},
   number = {11},
   month = nov,
   year = {1983},
   keywords = {Special issue on 5th generation computing}
}

@article{Siegel80,
   author = {HJ Siegel},
   title = {The theory underlying the partitioning of permutation networks},
   journal = {IEEE Trans Computers C},
   volume = {29},
   number = {9},
   pages = {791-801},
   month = sep,
   year = {1980}
}

@article{watson+:dataflow,
   author = {Ian Watson and John Gurd},
   title = {A practical data flow computer},
   journal = {IEEE Computer},
   pages = {51-57},
   month = feb,
   year = {1982},
   keywords = {The Manchester data flow machine}
}

@article{Kozdrowicki80,
   author = {EW Kozdrowicki and DJ Theis},
   title = {Second generation of vector supercomputers},
   journal = {IEEE Computer},
   pages = {71-83},
   month = nov,
   year = {1980},
   keywords = {Cray, Burroughs BSP, Cyber 205}
}

@article{Haynes82,
   author = {LS Haynes and RL Lau and DP Siewiorek and DW Mizell},
   title = {A survey of highly parallel computing},
   journal = {IEEE Computer},
   pages = {9-24},
   month = jan,
   year = {1982},
   keywords = {Good bibliography}
}

@article{Dennis82,
   author = {Jack Dennis},
   title = {Data flow supercomputers},
   journal = {IEEE Computer},
   pages = {48-56},
   month = jan,
   year = {1982}
}

@techreport{al??,
   author = {Uchida et al},
   title = {The personal sequential inference machine ({PSI})},
   type = {ICOT tech memo},
   number = {TM-002},
   keywords = {An early description of the architecture of this Japanese prototype 5th generation machine}
}

@book{Hockey81,
   author = {Hockey and Jesshope},
   title = {Parallel computers},
   publisher = {Adam Hilger},
   year = {1981},
   keywords = {Saw it at Inmos, looked quite good}
}

@techreport{Abramsky82,
   author = {Samson Abramsky},
   title = {{SECD}-{M} - a virtual machine for applicative multiprogramming},
   type = {Computer Systems Lab, Queen Mary College},
   month = nov,
   year = {1982},
   keywords = {Nondeterminism, parallelism, functional operating systems, merge}
}

@misc{Wall??,
   author = {{Wall}},
   title = {Continued fractions},
   institution = {Wall},
   keywords = {Book recommended by Arthur}
}

@misc{Kowalski83,
   editor = {R Kowalski and J Darlington},
   title = {Declarative systems architecture},
   month = mar,
   year = {1983},
   keywords = {Tells how DSA fits into IKBS.  Lots of good Alvey buzz-words}
}

@article{Lim83,
   author = {WY Lim and JR Cox},
   title = {Clocks and the performance of synchronisers},
   journal = {IEEE Proc-E},
   volume = {130(E2)},
   pages = {57-64},
   month = mar,
   year = {1983},
   keywords = {The metastable state problem - good-looking references}
}

@article{Rumste83,
   author = {M van Rumste},
   title = {The iAPX432 - a next generation microprocessor},
   journal = {Microprocessing and microprogramming},
   volume = {11},
   number = {2},
   pages = {69-106},
   month = feb,
   year = {1983},
   keywords = {Quite detailed}
}

@article{Cioffi83,
   author = {G Cioffi and P Verlardi},
   title = {A fully distributed arbiter for multiprocessor systems},
   journal = {Microprocessing and microprogramming},
   volume = {11},
   number = {1},
   pages = {15-22},
   month = jan,
   year = {1983},
   keywords = {Addresses the metastable state problem}
}

@techreport{Jones83,
   author = {Simon B Jones},
   title = {Abstract machine support for purely functional operating systems},
   type = {PRG-34, Programming Research Group, Oxford},
   month = aug,
   year = {1983},
   keywords = {Lispkit, nondeterminism, merge}
}

@article{Nave83,
   author = {R Nave},
   title = {Implementation of transcendental functions on a numerics processor},
   journal = {Microprocessing and microprogramming},
   volume = {11},
   number = {3,4},
   pages = {221-226},
   month = mar,
   year = {1983},
   keywords = {CORDIC}
}

@article{Richards81,
   author = {Ian Richards},
   title = {Continued fractions without tears},
   journal = {Mathematics Magazine},
   volume = {54},
   number = {4},
   pages = {163-171},
   month = sep,
   year = {1981},
   keywords = {Via Farey sequences}
}

@article{Hinden83,
   author = {R Hinden and J Haverty and A Sheltzer},
   title = {The {DARPA} Internet - interconnecting heterogeneous computer networks with gateways},
   journal = {IEEE Computer},
   pages = {38-48},
   month = sep,
   year = {1983},
   keywords = {Very readable}
}

@techreport{Abramsky83,
   author = {Samson Abramsky},
   title = {Theory and practice of applicative multiprogramming},
   type = {Slides from talk at DCS workshop},
   year = {1983},
   keywords = {Nondeterminism}
}

@techreport{Foster83,
   author = {JM Foster and IF Currie and PW Edwards},
   title = {Flex - a working computer with an architecture based on procedure values},
   type = {In DCS mailshot},
   month = sep,
   year = {1983},
   keywords = {Algol 68 with higher order functions}
}

@article{Tanenbaum81,
   author = {AS Tanenbaum},
   title = {Network Protocols},
   journal = {Computing Surveys},
   volume = {13},
   number = {4},
   pages = {454-489},
   month = dec,
   year = {1981}
}

@incollection{Murray??,
   author = {AM Murray and EW Elcock},
   title = {Automatic description and recognition of board patterns in go-moku},
   booktitle = {Artificial Intelligence},
   keywords = {Pegit}
}

@misc{Doran??,
   author = {JE Doran},
   title = {Experiments with a pleasure seeking automaton},
   keywords = {Artificial Intelligence}
}

@misc{Doran??a,
   author = {JE Doran},
   title = {Planning and generalisation in an automaton/environment system},
   keywords = {Artificial Intelligence}
}

@misc{Michie??,
   author = {D Michie and RA Chambers},
   title = {Boxes: an experiment in adaptive control},
   keywords = {Artificial Intelligence}
}

@article{Treleaven82,
   author = {PC Treleaven},
   title = {{VLSI} processor architectures},
   journal = {IEEE Computer},
   pages = {33-44},
   month = jun,
   year = {1982}
}

@article{Hoffmann82,
   author = {CH Hoffmann and MJ O'Donnell},
   title = {Programming with equations},
   journal = toplas,
   volume = {4},
   number = {1},
   pages = {83-112},
   month = jan,
   year = {1982},
   keywords = {Recursion equations}
}

@incollection{Wand82,
   author = {M Wand},
   title = {Semantics directed machine architecture},
   booktitle = {POPL},
   pages = {234-241},
   year = {1982},
   keywords = {Relevant to combinators}
}

@article{LeBlanc82,
   author = {RJ LeBlanc and JJ Goda},
   title = {Ada and software development support},
   journal = {IEEE Computer IEEE Computer},
   pages = {75-80},
   year = {May 1982 June 1981 is devoted to Ada}
}

@techreport{Bauer??,
   author = {FL Bauer},
   title = {Nondeterministic concepts and tools in functional programming},
   type = {Paper from the Newcastle workshop},
   keywords = {Semantics of nondeterminism}
}

@article{Sanders82,
   author = {LS Sanders},
   title = {Pulse codes in serial dagta communications},
   journal = {Computer Design},
   pages = {203-210},
   month = jan,
   year = {1982},
   keywords = {NRZ, Manchester}
}

@misc{Beale??,
   author = {NCL Beale},
   title = {Linear semantics},
   keywords = {BES}
}

@misc{Boyer??,
   author = {B Boyer},
   title = {Pretty print},
   keywords = {DAI Edinburgh, Memo 64}
}

@article{Nelson82,
   author = {B Nelson},
   title = {Error correction and detection},
   journal = {Computer design},
   month = {Dec 1981 - Feb},
   year = {1982}
}

@misc{Henderson??,
   author = {Peter Henderson},
   title = {The {SLIK} programming system},
   keywords = {PRG Oxford}
}

@book{Henderson80,
   author = {P Henderson},
   title = {Functional programming: application and implementation},
   publisher = {Prentice Hall},
   year = {1980},
   keywords = {book, SECD machine}
}

@article{Hemenway81,
   author = {J Hemenway},
   title = {Object oriented design manages software complexity},
   journal = {EDN},
   month = aug,
   year = {1981},
   keywords = {Info on 432 architecture}
}

@article{Coonen81,
   author = {JT Coonen},
   title = {Underflow and denormalised numbers},
   journal = {IEEE Computer},
   pages = {75-87},
   month = mar,
   year = {1981},
   keywords = {Floating point standard}
}

@article{Cody81,
   author = {WJ Cody},
   title = {Analysis of proposals for the floating point standard},
   journal = {IEEE Computer},
   pages = {63-68},
   month = mar,
   year = {1981}
}

@article{Coonen80,
   author = {JT Coonen},
   title = {An implementation guide to a proposed standard for floating point arithmetic},
   journal = {IEEE Computer},
   pages = {68-79},
   month = jan,
   year = {1980}
}

@inproceedings{Kowalski74,
   author = {Robert Kowalski},
   title = {Predicate logic as a programming language},
   booktitle = {IFIP conference},
   pages = {569-574},
   year = {1974},
   keywords = {Prolog}
}

@misc{Jones??,
   author = {Simon Jones??},
   title = {A pseudo-machine implementation of Prolog},
   keywords = {Newcastle (appendix to thesis)}
}

@article{Martelli82,
   author = {A Martelli and U Montanari},
   title = {An efficient unification algorithm},
   journal = toplas,
   volume = {4},
   number = {2},
   pages = {258-282},
   month = apr,
   year = {1982}
}

@incollection{Cristian80,
   author = {F Cristian},
   title = {Exception handling and sofware fault tolerance},
   booktitle = {10th intl symp on Fault Tolerant Computing},
   pages = {97-103},
   year = {1980}
}

@techreport{Cristian81,
   author = {F Cristian},
   title = {Robust data abstractions},
   type = {Computer lab, Newcastle},
   month = may,
   year = {1981}
}

@article{Hoare78,
   author = {CAR Hoare},
   title = {Communicating sequential processes},
   journal = {CACM},
   volume = {21},
   number = {8},
   pages = {666-677},
   month = aug,
   year = {1978},
   keywords = {CSP}
}

@techreport{Kramer??,
   author = {J Kramer and J Magee and M Sloman},
   title = {Intertask communication primitives for distributed computer control systems},
   type = {DOC 80/17 Imperial College},
   keywords = {Process control situations especially}
}

@article{Hansen78,
   author = {Per Brinch Hansen},
   title = {Distributed processes - a concurrent programming concept},
   journal = {CACM},
   volume = {21},
   number = {11},
   pages = {934-941},
   month = nov,
   year = {1978}
}

@article{Silberschatz81,
   author = {A Silberschatz},
   title = {Port-directed communication},
   journal = {Computer Journal},
   volume = {24},
   number = {1},
   pages = {78-82},
   year = {1981},
   keywords = {An alternative to CSP}
}

@misc{Best??,
   author = {E Best and F Cristian},
   title = {Systematic detection of execption occurrences},
   keywords = {Computer lab, Newcastle}
}

@article{Metcalfe76,
   author = {RM Metcalfe and DR Boggs},
   title = {Ethernet - distributed packet switching for local computer networks},
   journal = {CACM},
   volume = {19},
   number = {7},
   pages = {395-403},
   month = jul,
   year = {1976}
}

@incollection{Abramson70,
   author = {N Abramson},
   title = {The {ALOHA} system - another alternative for computer communications},
   booktitle = {Fall Joint Computer},
   pages = {281-285},
   year = {1970}
}

@article{Guttag78,
   author = {JV Guttag and E Horowitz and DR Musser},
   title = {Abstract data types and software validation},
   journal = {CACM},
   volume = {21},
   number = {12},
   pages = {1048-1064},
   month = dec,
   year = {1978},
   keywords = {Specification languages}
}

@misc{Goguen??,
   author = {JA Goguen and JJ Tardo},
   title = {An introduction to {OBJ} - a langage for writing and testing \%{K} formal algebraic program specifications}
}

@misc{Musser??,
   author = {DR Musser},
   title = {Abstract data type specifiaction in the {AFFIRM} system}
}

@article{Fosdick76,
   author = {LD Fosdick and LJ Osterweil},
   title = {Data flow analysis in software reliability},
   journal = {Computing Surveys},
   volume = {8},
   number = {4},
   pages = {305-353},
   month = sep,
   year = {1976}
}

@article{P75481,
   author = {IEEE P754},
   title = {A proposed standard for binary floating point arithmetic},
   journal = {IEEE Computer},
   pages = {51-62},
   month = mar,
   year = {1981}
}

@article{Gajski82,
   author = {DD Gajski and DA Padua and DJ Kurek},
   title = {A second opinion on data flow machines and languages},
   journal = {IEEE Computer},
   month = feb,
   year = {1982},
   keywords = {A good anti-declarative system article. NB - this issue of Computer is all about data flow}
}

@misc{Bates??,
   author = {RM Bates},
   title = {A Pascal prettyprinter with a different purpose},
   keywords = {SIGPLAN Notices?}
}

@article{Tymes81,
   author = {LRW Tymes},
   title = {Routing and flow control in {TYMNET}},
   journal = {IEEE Trans Comms},
   volume = {29},
   number = {4},
   pages = {392-398},
   month = apr,
   year = {1981}
}

@article{Pouzin81,
   author = {L Pouzin},
   title = {Methods, tools, and observations on flow control in packet-switched data networks},
   journal = {IEEE Trans Comms},
   volume = {29},
   number = {4},
   pages = {413-426},
   month = apr,
   year = {1981}
}

@article{Gunther81,
   author = {KD Gunther},
   title = {Prevention of deadlocks in packet-switched data transport systems},
   journal = {IEEE Trans Comms},
   volume = {29},
   number = {4},
   pages = {512-524},
   month = apr,
   year = {1981}
}

@article{Lindsay81,
   author = {DC Lindsay},
   title = {On binding layers of software},
   journal = {Op Sys Review},
   volume = {15},
   number = {2},
   pages = {33-37},
   month = apr,
   year = {1981},
   keywords = {Pathnames}
}

@article{McBeath80,
   author = {M McBeath},
   title = {6800 routine extracts square roots},
   journal = {EDN},
   month = sep,
   year = {1980},
   keywords = {Clever sqrt}
}

@article{Norman79,
   author = {AC Norman},
   title = {A one-pass prettyprinter},
   journal = {SIGPLAN notices},
   pages = {52-55},
   month = dec,
   year = {1979}
}

@article{Reynolds70,
   author = {JC Reynolds},
   title = {{GEDANKEN} - a simple typeless language based on the principle of completeness and the reference concept},
   journal = {CACM},
   volume = {13},
   number = {5},
   pages = {308-319},
   month = may,
   year = {1970}
}

@article{Wyner81,
   author = {AD Wyner},
   title = {Fundamental limits in information theory},
   journal = {Proc IEEE},
   volume = {69},
   number = {2},
   pages = {239-251},
   month = feb,
   year = {1981}
}

@misc{Bell??,
   author = {AG Bell},
   title = {Kalah on Atlas},
   keywords = {Artificial Intelligence}
}

@misc{Collins??,
   author = {JS Collins},
   title = {A regression analysis program incorporating heuristic term selection},
   keywords = {Artificial Intelligence}
}

@article{Brown76,
   author = {PJ Brown},
   title = {Throw-away compiling},
   journal = {Software Practice and Experience},
   volume = {6},
   pages = {422-434},
   year = {1976}
}

@techreport{Dijkstra??,
   author = {EJW Dijkstra},
   title = {A mild variant of combinatory logic},
   type = {EWD735},
   keywords = {Different kind of combinators}
}

@incollection{Castan82,
   author = {M Castan and EI Organick},
   title = {u3L - an {HLL}-{RISC} processor for parallel execution of {FP}-language programs},
   booktitle = {Proc Comp Arch 9},
   year = {1982},
   keywords = {Architecture}
}

@incollection{Wadler??a,
   author = {PL Wadler},
   title = {Applicative style programming, program transformation, and list operators},
   booktitle = {POPL?},
   pages = {25-32}
}

@misc{Darlington??,
   author = {J Darlington and M Reeve},
   title = {The parallel evaluation of logic programs on {ALICE}},
   keywords = {Imperial College}
}

@techreport{Mycroft??,
   author = {Alan Mycroft},
   title = {Compile time program analysis},
   type = {Lecture notes},
   keywords = {Follows Cousot and Cousot}
}

@techreport{Cousot??,
   author = {P Cousot and R Cousot},
   title = {Abstract interpretation - a unified lattice model for static analysis of programs by construction of approximation of fix points},
   type = {Some conference proceedings},
   keywords = {Compile time program analysis}
}

@incollection{Glanville??,
   author = {RS Glanville and SL Graham},
   title = {A new method for compiler code generation},
   booktitle = {Proc POPL 5},
   pages = {231-239}
}

@phdthesis{Johnsson87,
   author = {Thomas Johnsson},
   title = {Compiling lazy functional languages},
   type = {Ph.{D}. Thesis},
   number = {PMG, Chal---mers University, Goteborg, Sweden},
   year = {1987},
   keywords = {G-machine, code generation, M-code, attribute grammars}
}

@techreport{Johnsson??,
   author = {Thomas Johnsson},
   title = {Detecting when call-by-value can be used instead of call-by-need},
   type = {LPM Memo 14, Chal---mers University},
   keywords = {Strictness analysis}
}

@incollection{Hayashi83,
   author = {H Hayashi and A Hattori and H Akimoto},
   title = {{ALPHA} - a high performance Lisp machine equipped with a new stack structure and garbage collection system},
   booktitle = {Proc Comp Arch 10},
   pages = {342-348},
   year = {1983},
   keywords = {Architecture}
}

@incollection{Houdek81,
   author = {ME Houdek and FG Soltis and RL Hoffman},
   title = {{IBM} system/38 support for capability based addressing},
   booktitle = {Proc Comp Arch 8},
   pages = {341-347},
   year = {1981}
}

@incollection{Kroft81,
   author = {D Kroft},
   title = {Lockup-free instruction fetch/prefetch cache organisation},
   booktitle = {Proc Comp Arch 9},
   pages = {81-87},
   year = {1981}
}

@incollection{Smith83,
   author = {JE Smith and JR Goodman},
   title = {A sutdy of instruction cache organisations and replacement policies},
   booktitle = {Proc Comp Arch 10},
   pages = {132-137},
   year = {1983}
}

@incollection{Pier83,
   author = {KA Pier},
   title = {A retrospective on the Dorado},
   booktitle = {Proc Comp Arch 10},
   pages = {252-269},
   year = {1983}
}

@incollection{Gosper??,
   author = {{Gosper}},
   title = {Continued fractions},
   booktitle = {Hackmem},
   institution = {Gosper},
   keywords = {Tells how to do arithmetic on continued fractions}
}

@article{Wiedmer80,
   author = {E Wiedmer},
   title = {Computing with infinite objects},
   journal = {Theoretical Computer Science},
   volume = {10},
   pages = {135-155},
   year = {1980},
   keywords = {Lazy infinite decimal fractions}
}

@article{Burstall69,
   author = {RM Burstall},
   title = {Proving properties of programs by structural induction},
   journal = {Computer Journal},
   volume = {12},
   number = {1},
   year = {1969}
}

@article{Burstall77a,
   author = {RM Burstall and John Darlington},
   title = {A transformation system for developing recursive programs},
   journal = {JACM},
   volume = {24},
   number = {1},
   pages = {44-67},
   month = jan,
   year = {1977}
}

@misc{Gordon??,
   author = {Mike Gordon},
   title = {Advanced specification techniques},
   keywords = {Computer Lab, Cambridge}
}

@incollection{Scott82,
   author = {Dana Scott},
   title = {Domains for denotational semantics},
   booktitle = {ICALP 9},
   pages = {577-613},
   year = {July 1982, LNCS 140}
}

@techreport{Welch??,
   author = {PH Welch and MP Ellis},
   title = {Strong typing and functional programming},
   type = {1Computer Lab, Univ of Kent},
   keywords = {Polymorphic typing for KRC}
}

@techreport{Hammond84b,
   author = {Kevin Hammond},
   title = {{KRC} language manual and tutorial},
   type = {CSA/16/1984, Dept Comp Sci, Univ of East Anglia},
   month = may,
   year = {1984}
}

@incollection{Abramsky83a,
   author = {Samson Abramsky},
   title = {Experiments, powerdomains and fully abstract models for applicative multiprogramming},
   booktitle = {ICALP},
   month = jul,
   year = {1983}
}

@techreport{Abramsky??,
   author = {Samson Abramsky},
   title = {On semantic foundations for applicative multiprogramming},
   type = {Dept of computer science, Queen Mary College, London},
   keywords = {Nondeterminism}
}

@techreport{Paulsen83,
   author = {Christian Paulsen},
   title = {A parallel implementation of a functional language},
   type = {Aarhus Univ, DAIMI},
   number = {IR-45},
   month = jul,
   year = {1983}
}

@article{Lieberman83,
   author = {H Lieberman and C Hewitt},
   title = {A real-time garbage collector based on the lifetimes of objects},
   journal = {CACM},
   volume = {26},
   number = {6},
   pages = {419-429},
   month = jun,
   year = {1983}
}

@article{landin:next-700,
   author = {PJ Landin},
   title = {The next 700 programming languages},
   journal = cacm,
   volume = {9},
   number = {3},
   pages = {157-166},
   month = mar,
   year = {1966}
}

@article{Clark77,
   author = {DW Clark and CC Green},
   title = {An empirical study of list structure in Lisp},
   journal = {CACM},
   volume = {20},
   number = {2},
   pages = {78-87},
   month = feb,
   year = {1977},
   keywords = {lifetimes}
}

@article{Baker78,
   author = {Henry Baker},
   title = {List processing in real time on a serial computer},
   journal = {CACM},
   volume = {21},
   number = {4},
   pages = {280-294},
   month = apr,
   year = {1978},
   keywords = {Classic paper - describes copying garbage collector}
}

@article{Fenichel71,
   author = {RR Fenichel},
   title = {List tracing in systems allowing multiple cell types},
   journal = {CACM},
   volume = {14},
   number = {8},
   pages = {522-526},
   month = aug,
   year = {1971},
   keywords = {Garbage collection}
}

@article{Fenichel69,
   author = {RR Fenichel and JC Yochelson},
   title = {A Lisp garbage collector for virtual memory computer systems},
   journal = {CACM},
   volume = {12},
   number = {11},
   pages = {611-612},
   month = nov,
   year = {1969}
}

@article{Cheney79,
   author = {CJ Cheney},
   title = {A nonrecursive list compacting algorithm},
   journal = {CACM},
   volume = {13},
   number = {11},
   pages = {677-678},
   month = nov,
   year = {1979},
   keywords = {Garbage collection}
}

@article{Goto77,
   author = {E Goto and T Ida},
   title = {Parallel hashing algorithms},
   journal = {Info Proc Lett},
   volume = {6},
   number = {1},
   pages = {8-13},
   month = feb,
   year = {1977}
}

@article{Sassa76,
   author = {M Sassa and E Goto},
   title = {A hashing method for fast set operations},
   journal = {Info Proc Lett},
   volume = {5},
   number = {2},
   pages = {31-34},
   month = jun,
   year = {1976}
}

@article{Denning70,
   author = {PJ Denning},
   title = {Virtual Memory},
   journal = {Computing Surveys},
   volume = {2},
   number = {3},
   pages = {153-189)},
   month = sep,
   year = {1970},
   keywords = {Good coverage}
}

@article{Smith78,
   author = {AJ Smith},
   title = {Sequential program prefetching in memory heirachies},
   journal = {IEEE Computer},
   pages = {7-21},
   month = dec,
   year = {1978},
   keywords = {Cacheing}
}

@incollection{al82a,
   author = {E Goto et al},
   title = {The design of a Lisp based machine - {FLATS}},
   booktitle = {Proc ACM symposium on Lisp and functional programming},
   pages = {208-215},
   address = {Pittsburgh},
   month = aug,
   year = {1982}
}

@misc{Marti??,
   author = {Jed Marti and John Fitch},
   title = {The Bath concurrent Lisp machine},
   keywords = {School of Maths, Univ of Bath}
}

@article{Terashima78,
   author = {M Terashima and E Goto},
   title = {Genetic order and compactifying garbage collectors},
   journal = {Info Proc Lett},
   volume = {7},
   number = {1},
   pages = {27-32},
   month = jan,
   year = {1978}
}

@article{Clark78,
   author = {DW Clark and CC Green},
   title = {A note on shared list structure in Lisp},
   journal = {Info Proc Lett},
   volume = {7},
   number = {6},
   month = oct,
   year = {1978}
}

@article{Jonkers78,
   author = {HBM Jonkers},
   title = {A fast garbage compaction algorithm},
   journal = {Info Proc Lett},
   volume = {9},
   number = {1},
   pages = {26-30},
   month = jul,
   year = {1978}
}

@article{Friedman79,
   author = {DP Friedman and DS Wise},
   title = {Reference counting can manage the circular environments of mutual recursion},
   journal = {Info Proc Lett},
   volume = {8},
   number = {1},
   pages = {41-45},
   month = jan,
   year = {1979},
   keywords = {Garbage collection}
}

@article{Cohen81,
   author = {J Cohen},
   title = {Garbage collection of linked data structures},
   journal = {Computing Surveys},
   volume = {13},
   number = {3},
   pages = {343-367},
   month = sep,
   year = {1981}
}

@article{Lindstrom74,
   author = {G Lindstrom},
   title = {Copying list structures using bounded workspace},
   journal = {CACM},
   volume = {17},
   number = {4},
   pages = {198-202},
   month = apr,
   year = {1974}
}

@article{Clark78a,
   author = {DW Clark},
   title = {A fast algorithm for copying list structures},
   journal = {CACM},
   volume = {21},
   number = {5},
   pages = {351-357},
   month = may,
   year = {1978}
}

@article{Clark76,
   author = {DW Clark},
   title = {An efficient list-moving algorithm using constant workspace},
   journal = {CACM},
   volume = {19},
   number = {6},
   pages = {352-354},
   month = jun,
   year = {1976},
   keywords = {List copying}
}

@article{Fisher75,
   author = {DA Fisher},
   title = {Copying cyclic list structures in linear time using bounded workspace},
   journal = {CACM},
   volume = {18},
   number = {5},
   pages = {251-252},
   month = may,
   year = {1975}
}

@article{Lee80,
   author = {KP Lee},
   title = {A linear algorithm for copying binary trees using bounded workspace},
   journal = {CACM},
   volume = {23},
   number = {3},
   pages = {159-162},
   month = mar,
   year = {1980}
}

@article{Steele75,
   author = {GL Steele},
   title = {Multiprocessing compactifying garbage collection},
   journal = {CACM},
   volume = {18},
   number = {9},
   pages = {495-508},
   month = sep,
   year = {1975}
}

@article{al78,
   author = {EW Dijkstra et al},
   title = {On the fly garbage collection - an exercise in cooperation},
   journal = {CACM},
   volume = {21},
   number = {11},
   pages = {966-975},
   month = nov,
   year = {1978}
}

@article{Deutsch76,
   author = {LP Deutsch and DG Bobrow},
   title = {An efficient, incremental, automatic garbage collector},
   journal = {CACM},
   volume = {19},
   number = {9},
   pages = {522-527},
   month = sep,
   year = {1976}
}

@article{Bobrow80,
   author = {DG Bobrow},
   title = {Managing reentrant structures using reference counts},
   journal = toplas,
   volume = {2},
   number = {3},
   pages = {269-273},
   month = jul,
   year = {1980}
}

@article{Steele80,
   author = {GL Steele and GJ Sussman},
   title = {Design of a Lisp based microprocessor},
   journal = {CACM},
   volume = {23},
   number = {11},
   pages = {628-644},
   month = nov,
   year = {1980}
}

@article{Morris78,
   author = {F Lockwood Morris},
   title = {A time and space efficient garbage compaction algorithm},
   journal = {CACM},
   volume = {21},
   number = {8},
   pages = {662-665},
   month = aug,
   year = {1978}
}

@article{Bobrow67,
   author = {DG Bobrow and DL Murphy},
   title = {Structure of a Lisp system using two-level storage},
   journal = {CACM},
   volume = {10},
   number = {3},
   pages = {155-159},
   month = mar,
   year = {1967}
}

@article{Cohen67,
   author = {J Cohen},
   title = {A use of fast and slow memories in list processing language},
   journal = {CACM},
   volume = {10},
   number = {2},
   pages = {82-86},
   month = feb,
   year = {1967}
}

@article{Hansen69,
   author = {WL Hansen},
   title = {Compace list representation: definition, garbage collection, and system implementation},
   journal = {CACM},
   volume = {12},
   number = {9},
   pages = {499-507},
   month = sep,
   year = {1969}
}

@book{Bauer76,
   editor = {FL Bauer and J Eickel},
   title = {Compiler construction - an advanced course},
   publisher = {Springer Verlag},
   year = {1976}
}

@book{Darlington82,
   editor = {J Darlington and P Henderson and D A Turner},
   title = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982}
}

@techreport{Johnson??,
   author = {SC Johnson},
   title = {Yacc - yet another compiler compiler},
   type = {Bell labs (undated)},
   keywords = {Parser generator}
}

@article{Samuel59,
   author = {AL Samuel},
   title = {Some studies in machine learning using the game of checkers},
   journal = {IBM Journal},
   pages = {211-229},
   month = jul,
   year = {1959}
}

@article{Samuel67,
   author = {AL Samuel},
   title = {Some studies in machine learning using the game of checkers. {II} - recent progress},
   journal = {IBM Journal},
   pages = {601-617},
   month = nov,
   year = {1967}
}

@article{Arnold80,
   author = {DB Arnold and MR Sleep},
   title = {Uniform random generation of balanced parenthesis strings},
   journal = toplas,
   volume = {2},
   number = {1},
   pages = {122-128},
   month = jan,
   year = {1980}
}

@techreport{Burton82,
   author = {F Warren Burton and Matthew M Huntbach},
   title = {Virtual tree machines},
   type = {University of East Anglia},
   year = {1982}
}

@techreport{Burton82a,
   author = {F Warren Burton},
   title = {A linear space translation of functional programs to Turner combinators},
   type = {University of East Anglia},
   year = {1982}
}

@article{Keller86,
   author = {RM Keller and MR Sleep},
   title = {Applicative caching},
   journal = toplas,
   volume = {8},
   number = {1},
   pages = {88-108},
   month = jan,
   year = {1986},
   keywords = {memo functions}
}

@incollection{Kennaway82,
   author = {JR Kennaway and MR Sleep},
   title = {Expressions as processes},
   booktitle = {Proc ACM symposium on Lisp and functional programming},
   pages = {21-28},
   month = {Pittsburgh},
   year = {1982}
}

@incollection{Kennaway82a,
   author = {JR Kennaway and MR Sleep},
   title = {Applicative objects as processes},
   booktitle = {Proc 3rd Intl conf on distributed computing systems},
   address = {Miami},
   year = {1982}
}

@article{Burton84,
   author = {F Warren Burton},
   title = {Annotations to control parallelism and reduction order in the distributed evaluation of functional programs},
   journal = {ACM Transactions on Programming Languages and Systems},
   volume = {6},
   number = {2},
   month = apr,
   year = {1984}
}

@techreport{Kennaway82b,
   author = {JR Kennaway},
   title = {The complexity of a translation of lambda calculus to combinators},
   type = {University of East Anglia},
   month = jun,
   year = {1982}
}

@article{Burton82b,
   author = {F Warren Burton},
   title = {An efficient functional implementation of fifo queues},
   journal = {Info Proc Lett},
   volume = {14},
   number = {5},
   pages = {205-206},
   month = jul,
   year = {1982}
}

@techreport{Kennaway82c,
   author = {JR Kennaway and MR Sleep},
   title = {Director strings as combinators},
   type = {University of East Anglia},
   year = {1982}
}

@inproceedings{Ruggiero87,
   author = {Carlos A Ruggiero and John Sargeant},
   editor = {G Kahn},
   title = {Control of parallelism in the Manchester dataflow machine},
   booktitle = {Proc IFIP conference on Functional Programming Languages and Computer Architecture, Portland},
   pages = {1-15},
   publisher = {Springer Verlag LNCS 274},
   month = sep,
   year = {1987},
   keywords = {throttle, scheduling policy, LIFO, FIFO}
}

@inproceedings{fairbairn:tim,
   author = {Jon Fairbairn and Stuart Wray},
   editor = {G Kahn},
   title = {{TIM} - a simple lazy abstract machine to execute supercombinators},
   booktitle = {Proc IFIP conference on Functional Programming Languages and Computer Architecture, Portland},
   pages = {34-45},
   publisher = {Springer Verlag LNCS 274},
   month = sep,
   year = {1987},
   keywords = {closures, sharing analysis.  Wonderful.}
}

@inproceedings{Watson87,
   author = {Paul Watson and Ian Watson},
   editor = {G Kahn},
   title = {Evaluating functional programs on the {FLAGSHIP} machine},
   booktitle = {Proc IFIP conference on Functional Programming Languages and Computer Architecture, Portland},
   pages = {80-97},
   publisher = {Springer Verlag LNCS 274},
   month = sep,
   year = {1987},
   keywords = {packets, distributed memory, copying vs sharing}
}

@techreport{Sleep82,
   author = {MR Sleep and S Holmstr{\"o}m},
   title = {A short note concerning lazy reduction rules of {APPEND}},
   type = {University of East Anglia},
   month = may,
   year = {1982}
}

@incollection{Darlington84,
   author = {J Darlington},
   editor = {Duce},
   title = {Functional programming},
   booktitle = {Distributed Computing},
   publisher = {Peter Peregrinus},
   year = {1984},
   keywords = {Intro to functional programming}
}

@incollection{Burton81,
   author = {F Warren Burton and MR Sleep},
   title = {Communication in a distributed implementation of an applicative language},
   booktitle = {Proc intl computing symposium on systems architecture},
   pages = {462-468},
   year = {1981}
}

@inproceedings{Burton81a,
   author = {F Warren Burton and MR Sleep},
   title = {Executing functional programs on a virtual tree of processors},
   booktitle = {Proc ACM Conference on Functional Programming Languages and Computer Architecture, New Hampshire},
   pages = {187-194},
   month = oct,
   year = {1981},
   keywords = {LIFO/FIFO scheduling; throttle}
}

@incollection{Burton81b,
   author = {F Warren Burton and MR Sleep},
   title = {The Zero Assignment Parallel Processor ({ZAPP}) project},
   booktitle = {Proc Chal---mers Inst symposium on functional languages and computer architecture},
   pages = {118-123},
   month = jun,
   year = {1981}
}

@incollection{Sleep80,
   author = {MR Sleep},
   title = {Applicative languages, dataflow, and pure combinatory code},
   booktitle = {Proc IEEE Compcon},
   pages = {112-115},
   month = feb,
   year = {1980}
}

@incollection{Sleep81,
   author = {MR Sleep and F Warren Burton},
   title = {Towards a zero assignment parallel processor},
   booktitle = {Proc 2nd Intl conf on distributed computing systems},
   pages = {80-84},
   month = apr,
   year = {1981}
}

@techreport{Wadsworth71,
   author = {CP Wadsworth},
   title = {A graph evaluation technique for the lambda calculus},
   type = {D Phil thesis, PRG Oxford},
   pages = {Ch 4},
   year = {1971}
}

@techreport{Karlsson82,
   author = {Kent Karlsson},
   title = {An outline of the Sky reduction machine},
   type = {Chal---mers Inst, Goteborg},
   year = {1982}
}

@techreport{Karlsson82a,
   author = {Kent Karlsson},
   title = {Nebula - a functional operating system},
   type = {Chal---mers Inst, Goteborg},
   year = {1982}
}

@techreport{Sufrin81,
   author = {B Sufrin},
   title = {Formal specification of a display editor},
   type = {PRG-21, Programming Research Group, Oxford},
   month = jun,
   year = {1981}
}

@techreport{Kuo78,
   author = {SS Kuo and MH Linck and S Saadat},
   title = {A guide to communicating sequential processes},
   type = {PRG-14, Programming Research Group, Oxford},
   month = aug,
   year = {1978}
}

@article{Hughes82,
   author = {RJM Hughes},
   title = {A semi-incremental garbage collection algorithm},
   journal = {Software Practice and Experience (short communication)},
   year = {1982}
}

@techreport{Sufrin82,
   author = {B Sufrin},
   title = {Formal specification of an automated mail system},
   type = {Programming Research Group, Oxford},
   month = mar,
   year = {1982}
}

@techreport{Sufrin82a,
   author = {B Sufrin},
   title = {Formal system specifications - notation and examples},
   type = {Programming Research Group, Oxford},
   month = mar,
   year = {1982}
}

@techreport{Hughes82a,
   author = {RJM Hughes},
   title = {Reference counting with circular structures in virtual memory applicative systems},
   type = {Programming Research Group, Oxford},
   year = {1982},
   keywords = {Garbage collection}
}

@techreport{Hughes82b,
   author = {RJM Hughes},
   title = {Graph reduction with supercombinators},
   type = {Technical monograph PRG-28, Programming Research Group, Oxford},
   month = jun,
   year = {1982}
}

@techreport{French82,
   author = {E French and H Glaser},
   title = {{TUKI} - a dataflow processor},
   type = {Westfield College, London},
   month = jul,
   year = {1982}
}

@techreport{Shute83,
   author = {Malcom Shute},
   title = {The cobweb machine},
   type = {D Phil thesis, Westfield College, London},
   year = {1983}
}

@article{McGraw82,
   author = {JR McGraw},
   title = {The {VAL} language - description and analysis},
   journal = toplas,
   volume = {4},
   number = {1},
   pages = {44-82},
   month = jan,
   year = {1982},
   keywords = {Good.}
}

@article{Sussman81,
   author = {GJ Sussman and J Holloway and GL Steele and A Bell},
   title = {Scheme-79 - Lisp on a chip},
   journal = {IEEE Computer},
   pages = {10-21},
   month = jul,
   year = {1981}
}

@techreport{Steele79,
   author = {GL Steele and GJ Sussman},
   title = {The dream of a lifetime - a lazy scoping mechanism},
   type = {MIT AI Memo},
   number = {527},
   month = nov,
   year = {1979},
   keywords = {Racks}
}

@techreport{Stallman80,
   author = {RM Stallman},
   title = {Phantom stacks},
   type = {MIT AI Memo},
   number = {556},
   month = jul,
   year = {1980}
}

@techreport{Steele78,
   author = {GL Steele and GJ Sussman},
   title = {The revised report on Scheme},
   type = {MIT AI Memo},
   number = {452},
   month = jan,
   year = {1978}
}

@article{SchemeR2,
   author = {J Rees and W Clinger},
   title = {Revised report on the algorithmic language scheme},
   journal = {ACM SIGPLAN Notices},
   volume = {21},
   issue = {12},
   pages = {37-79},
   month = dec,
   year = {1986}
}

@techreport{Steele77,
   author = {GL Steele},
   title = {Debunking the expensive procedure call myth or Lambda - the ultimate goto},
   type = {MIT AI Memo},
   number = {443},
   month = oct,
   year = {1977}
}

@techreport{Steele79a,
   author = {GL Steele and GJ Sussman},
   title = {Design of Lisp based processors or Lambda - the ultimate opcode},
   type = {MIT AI Memo},
   number = {514},
   month = mar,
   year = {1979}
}

@techreport{Sussman81a,
   author = {GJ Sussman and GL Steele},
   title = {Constraints - a language for expressing almost-heirachical descriptions},
   type = {MIT AI Memo},
   number = {502A},
   month = aug,
   year = {1981}
}

@techreport{Kleer78,
   author = {Johan de Kleer and GJ Sussman},
   title = {Propagation of constraints applied to circuit synthesis},
   type = {MIT AI Memo},
   number = {485},
   month = sep,
   year = {1978}
}

@techreport{Bawden77,
   author = {A Bawden and R Greenblatt and J Holloway and T Knight and D Moon and D Welnreb},
   title = {Lisp machine progress report},
   type = {MIT AI Memo},
   number = {444},
   month = aug,
   year = {1977}
}

@techreport{Stallman76,
   author = {RM Stallman and GJ Sussman},
   title = {Forward reasoning and dependency-directed backtracking in a system for computer aided circuit analysis},
   type = {MIT AI Memo},
   number = {380},
   month = sep,
   year = {1976}
}

@techreport{Steele76,
   author = {GL Steele},
   title = {Lambda - the ultimate declarative},
   type = {MIT AI Memo},
   number = {379},
   month = nov,
   year = {1976}
}

@techreport{Steele76a,
   author = {GL Steele and GJ Sussman},
   title = {Lambda - the ultimate imperative},
   type = {MIT AI Memo},
   number = {353},
   month = mar,
   year = {1976}
}

@techreport{Sussman77,
   author = {GJ Sussman},
   title = {Slices - at the boundary between analysis and synthesis},
   type = {MIT AI Memo},
   number = {433},
   month = jul,
   year = {1977}
}

@techreport{Kleer78a,
   author = {J de Kleer and J Doyle and C Rich and GL Steele and GJ Sussman},
   title = {{AMORD} - a deductive procedure system},
   type = {MIT AI Memo},
   number = {435},
   month = jan,
   year = {1978}
}

@techreport{Doyle79,
   author = {Jon Doyle},
   title = {A truth maintainance system},
   type = {MIT AI Memo},
   number = {521},
   month = jun,
   year = {1979}
}

@techreport{Steele78a,
   author = {GL Steele and GJ Sussman},
   title = {The art of the interpreter},
   type = {AI Memo},
   number = {453},
   month = may,
   year = {1978}
}

@techreport{sussman:scheme,
   author = {GJ Sussman and GL Steele},
   title = {Scheme - an interpreter for extended lambda calculus},
   type = {AI Memo},
   institution = "MIT",
   number = {349},
   month = dec,
   year = {1975}
}

@misc{Corp??,
   author = {Burroughs Corp},
   title = {A new compilation technique for {WHERE} clauses},
   keywords = {Deals with the B epidemic through dependency graphs.}
}

@article{turner:sk1,
   author = {D A Turner},
   title = {A new implementation technique for applicative languages},
   journal = {Software Practice and Experience},
   volume = {9},
   pages = {31-49},
   year = {1979}
}

@article{turner:sk2,
   author = {D A Turner},
   title = {Another algorithm for bracket abstraction},
   journal = {Journal of Symbolic Logic},
   volume = {44},
   number = {2},
   pages = {267-270},
   month = jun,
   year = {1979}
}

@techreport{Reeve82,
   author = {Mike Reeve},
   title = {An introduction to the Alice compiler target language ({CTL})},
   type = {Imperial College},
   month = apr,
   year = {1982}
}

@techreport{Sannella81,
   author = {D Sannella},
   title = {Hope update},
   type = {Edinburgh},
   month = feb,
   year = {1981},
   keywords = {Just a printout.}
}

@incollection{Darlington81,
   author = {John Darlington},
   editor = {de Bakker and van Vliet},
   title = {The structured description of algorithm derivations},
   booktitle = {Algorithmic Languages},
   pages = {221-250},
   publisher = {North Holland},
   year = {1981}
}

@incollection{Darlington81a,
   author = {John Darlington and Mike Reeve},
   title = {Alice - a multiprocessor reduction machine for the parallel evaluation of applicative languages},
   booktitle = {Proc ACM conf on functional programming languages and computer architecture},
   pages = {65-75},
   month = oct,
   year = {1981}
}

@incollection{Moor82,
   author = {Ian W Moor},
   title = {An applicative compiler for a parallel machine},
   booktitle = {Proc ACM Symposium on compiler construction},
   year = {1982}
}

@techreport{Clark82,
   author = {KL Clark and S Gregory},
   title = {A relational language for parallel programming},
   type = {Imperial College},
   year = {1982},
   keywords = {Parlog}
}

@techreport{Lampson79,
   author = {BW Lampson and KA Pier},
   title = {A processor for a high-performance personal computer},
   type = {Xerox Parc},
   year = {1979},
   keywords = {Dorado.}
}

@article{Smith82,
   author = {AJ Smith},
   title = {Cache memories},
   journal = {ACM Comp. Surveys},
   volume = {14},
   number = {3},
   pages = {473-530},
   month = sep,
   year = {1982}
}

@incollection{Sequin83,
   author = {CH Sequin and DA Patterson},
   editor = {Randall and Treleaven},
   title = {Design and implementation of {RISC} 1},
   booktitle = {VLSI Architecture},
   pages = {276-298},
   publisher = {Prentice Hall},
   year = {1983}
}

@techreport{Sykes83,
   author = {R Sykes},
   title = {Techniques for applicative multiprogramming},
   type = {Queen Mary College},
   year = {1983}
}

@article{Bobrow75,
   author = {DG Bobrow},
   title = {A note on hash linking},
   journal = {CACM},
   volume = {18},
   number = {7},
   pages = {413-415},
   month = jul,
   year = {1975}
}

@article{Poulton82,
   author = {AS Poulton and T Davies},
   title = {{IEEE}-488 bus interface devices},
   journal = {Journal of Microcomputer Applications},
   volume = {5},
   pages = {323-337},
   year = {1982}
}

@article{Ramamoorthy77,
   author = {CV Ramamoorthy and HF Li},
   title = {Pipeline architecture},
   journal = {ACM Comp. Surveys},
   volume = {9},
   number = {1},
   pages = {61-102},
   month = mar,
   year = {1977}
}

@misc{Canepa83,
   author = {M Canepa and E Weber and H Talley (HP)},
   title = {Designing a 32-bit {CPU} chip {VLSI} design},
   pages = {20-24},
   month = jan,
   year = {1983},
   keywords = {32-bit HP chip.}
}

@techreport{Hooper83,
   author = {D Hooper},
   title = {Aspects of processor architectures},
   type = {GEC Hirst Research Centre},
   year = {1983},
   keywords = {Mainly about systolic architecture (set of 4 papers).}
}

@book{Levy??,
   author = {JJ Levy},
   title = {Optimal reductions in the lambda calculus},
   keywords = {Lambda calculus book dedicated to HB Curry.}
}

@techreport{Arvind81,
   author = {Arvind and RE Thomas},
   title = {I-structures: an efficient data structure for functional languages},
   type = {MIT/LCS/TM-178},
   month = oct,
   year = {1981}
}

@article{Brownbridge82,
   author = {DR Brownbridge and LF Marshall and B Randell},
   title = {The Newcastle connection},
   journal = {Software Practice and Experience},
   volume = {12},
   pages = {1147-1162},
   year = {1982},
   keywords = {Unix united.}
}

@techreport{Padget83,
   author = {JA Padget},
   title = {The ecology of Lisp},
   type = {School of Maths, Bath},
   year = {1983},
   keywords = {An efficient binding scheme for dynamic binding in Lisp.}
}

@article{backus:liberation,
   author = {J Backus},
   title = {Can programming be liberated from the von {Neumann} style?},
   journal = cacm,
   volume = {21},
   number = {8},
   month = aug,
   year = {1978}
}

@incollection{Mycroft81,
   author = {Alan Mycroft},
   title = {The theory and practice of transforming call-by-need into call-by-value},
   booktitle = {LNCS 83},
   pages = {269-281},
   publisher = {Springer Verlag},
   month = jul,
   year = {1981},
   keywords = {Strictness analysis.}
}

@article{Morris82,
   author = {F Lockwood Morris},
   title = {Another compacting garbage collector},
   journal = {Info Proc Lett},
   volume = {15},
   number = {4},
   pages = {139-142},
   month = oct,
   year = {1982}
}

@techreport{Johnsson81,
   author = {Thomas Johnsson},
   title = {Code generation for lazy evaluation},
   type = {Chal---mers Inst, Goteborg},
   month = nov,
   year = {1981}
}

@inproceedings{Johnsson83,
   author = {Thomas Johnsson},
   title = {The {G}-machine.  An abstract machine for graph reduction},
   booktitle = {Proc UCL workshop on declarative programming, University College London.},
   year = {1983}
}

@incollection{Robinson71,
   author = {J. Alan Robinson},
   title = {Computational Logic: The Unification Computation},
   booktitle = {Machine Intelligence 6},
   pages = {63-72},
   year=1971,
   publisher = {Edinburgh University Press}
}

@incollection{Boyer??a,
   author = {RS Boyer and JS Moore},
   editor = {Meltzer and Michie},
   title = {The sharing of structure in theorem proving programs},
   booktitle = {Machine Intelligence 7},
   pages = {101-116},
   publisher = {Edinburgh Univ Press}
}

@article{Snyder82,
   author = {L Snyder},
   title = {Introduction to the configurable highly parallel computer},
   journal = {IEEE Computer},
   pages = {47-56},
   month = jan,
   year = {1982},
   keywords = {CHiP.}
}

@techreport{Fairbairn82,
   author = {J Fairbairn},
   title = {{PONDER}, and its type system},
   type = {Cambridge Computer Lab Tech. Rep.},
   number = {31},
   year = {1982},
   keywords = {Polymorphic typing.}
}

@article{Hirschberg78,
   author = {DS Hirschberg},
   title = {Fast parallel sorting algorithms},
   journal = {CACM},
   volume = {21},
   number = {8},
   pages = {657-661},
   month = aug,
   year = {1978}
}

@article{Milner78,
   author = {R Milner},
   title = {A theory of type polymorphism in programming},
   journal = {JCSS},
   volume = {13},
   number = {3},
   month = dec,
   year = {1978},
   keywords = {Hindley-Milner type system, Algorithm W}
}

@techreport{Milner78a,
   author = {R Milner},
   title = {A theory of type polymorphism in programming},
   type = {CSR-9-77, Dept Comp Sci, Univ of Edinburgh},
   month = mar,
   year = {1978}
}

@book{Kernighan76,
   author = {Kernighan and Plauger},
   title = {Software tools},
   publisher = {Addison Wesley},
   year = {1976},
   keywords = {A C-oriented tutorial on filters, pattern matchers, editors etc. Seems pretty clearly written.}
}

@book{Nilsson??,
   author = {{Nilsson}},
   title = {Principles of artificial intelligence},
   institution = {Nilsson},
   keywords = {Deals with planning strategies, especially 'strips'.}
}

@book{Shank81,
   author = {Shank and Riesbeck},
   title = {Inside computer understanding},
   publisher = {Lawrence Erlbaum},
   year = {1981},
   keywords = {Gives 5 programming minatures of significant AI programs. Suitable as a base for project work.  Talespin.}
}

@book{Winograd??,
   author = {{Winograd}},
   title = {Understanding natural language},
   institution = {Winograd},
   keywords = {The original SHRDLU book.  AI. Blocks world.}
}

@techreport{Hill86,
   author = {SA Hill},
   title = {Simulating digital circuits in Miranda},
   type = {Univ of Kent, Canterbury},
   month = mar,
   year = {1986}
}

@misc{INSPEC??,
   author = {{INSPEC}},
   title = {Science Abstracts {C}, Computing and Control},
   institution = {INSPEC},
   keywords = {Excellent periodical abstracts and references.}
}

@misc{Anonymous??,
   key = {Anonymous??},
   title = {Ulrich's index to periodical (serials) titles.},
   keywords = {Contains long form periodical titles for references.}
}

@misc{Anonymous??a,
   key = {Anonymous??a},
   title = {Index to serials received ({BL}).},
   keywords = {Contains long form periodical titles for references.}
}

@misc{Anonymous??b,
   key = {Anonymous??b},
   title = {{KIST} ({BL}) microfiche.},
   keywords = {Contains long form periodical titles for references.}
}

@techreport{A85,
   author = {Cheese A},
   title = {Applicability of {SKI}({BC}) combinators in a parallel rewrite environment},
   type = {MSc Thesis, Dept Comp Sci, Univ of Manchester},
   year = {1985},
   keywords = {Parallel SKI combinator reduction.}
}

@article{K86,
   author = {Clark K and Gregory S},
   title = {{PARLOG} - parallel programming in logic},
   journal = toplas,
   volume = {8},
   number = {1},
   pages = {1-49},
   month = jan,
   year = {1986}
}

@article{VP86,
   author = {Srini VP},
   title = {An architectural comparison of dataflow systems},
   journal = {IEEE Computer},
   volume = {19},
   number = {3},
   month = mar,
   year = {1986}
}

@article{JH85,
   author = {Hester JH and Hirschberg DS},
   title = {Self-organising linear search},
   journal = {ACM Computing Surveys},
   volume = {17},
   number = {3},
   pages = {295-312},
   month = sep,
   year = {1985},
   keywords = {Zip files.}
}

@book{E83,
   author = {Kreyszig E},
   title = {Advanced engineering mathematics, 5th ed},
   publisher = {Wiley},
   year = {1983},
   keywords = {B42 text?  Mathematical methods.}
}

@techreport{damas:thesis,
   author = {LMM Damas},
   title = {Type assignment in programming languages ({PhD} thesis)},
   type = "{CST-33-85}",
   year = {1985},
   institution = "Department of Computer Science, Edinburgh University",
   keywords = {Polymorphic type checking, overloading, store reference.}
}

@book{D86,
   author = {Waterman D},
   title = {A guide to expert systems},
   publisher = {Addison Wesley},
   year = {1986},
   keywords = {Recommended Stuart Clayman.}
}

@article{fleming86,
   author = {PJ Fleming and JJ Wallace},
   title = {How not to lie with statistics - the correct way to summarise benchmark results},
   journal = {CACM},
   volume = {29},
   number = {3},
   pages = {218-221},
   month = mar,
   year = {1986},
   keywords = {Excellent easy-to-read article about arithmetic/geometric means.}
}

@article{al86,
   author = {Bentley JL et al},
   title = {A locally adaptive data compression scheme},
   journal = {CACM},
   volume = {29},
   number = {4},
   month = apr,
   year = {1986},
   keywords = {Better than Huffman coding.}
}

@article{RM86,
   author = {Karp RM},
   title = {Combinatorics, complexity and randomness},
   journal = {CACM},
   volume = {29},
   number = {2},
   pages = {98-109},
   month = feb,
   year = {1986},
   keywords = {Good survey of NP completeness, traveling salesman, computability.}
}

@article{NM86,
   author = {Pitman NM and Burton FW and Haddon EW},
   title = {Buddy systems with selective splitting},
   journal = {Computer Journal},
   volume = {29},
   number = {2},
   pages = {127-134},
   year = {1986},
   keywords = {Storage management, garbage collection.}
}

@techreport{C73,
   author = {Strachey C},
   title = {The varieties of programming language},
   type = {PRG-10, Programming Research Group, Oxford},
   month = mar,
   year = {1973}
}

@techreport{D70,
   author = {Scott D},
   title = {Outline of a mathematical theory of computation},
   type = {PRG-2, Programming Research Group, Oxford},
   month = nov,
   year = {1970}
}

@techreport{D71,
   author = {Dana Scott and Christopher Strachey},
   title = {Towards a mathematical semantics for computer languages},
   type = {PRG-6, Programming Research Group},
   institution = "Oxford University",
   month = aug,
   year = {1971}
}

@techreport{C74,
   author = {Strachey C and Wadsworth CP},
   title = {Continuations - a mathematics semantics for handling full jumps},
   type = {PRG-11, Programming Research Group, Oxford},
   month = jan,
   year = {1974}
}

@misc{Turner??,
   author = {D A Turner},
   title = {Constructive type theory as a programming language},
   keywords = {OHP slides.}
}

@incollection{hall-odonnell:debugging,
   author = {Hall, CV and O'Donnell, JT},
   title = {Debugging in a side-effect-free programming environment},
   booktitle = {Proc ACM Symposium on Language Issues and Programming Environments},
   address = {Seattle},
   publisher = acm,
   month = jan,
   year = {1985}
}

@techreport{P86,
   author = {Watson P and Watson, I, and Woods V},
   title = {A model of computation for the parallel evaluation of functional languages, based on a canonical representation of variables},
   type = {PMP/MU/PW/00001, Dept Comp Sci, Univ of Manchester},
   month = feb,
   year = {1986},
   keywords = {Parallel graph reduction.}
}

@techreport{J86,
   author = {Darlington J and Field T},
   title = {A simplified approach to variable renaming in packet-based reduction machines},
   type = {Dept Comp Sci, Imperial College},
   month = mar,
   year = {1986},
   keywords = {Uses the storage manager to hand out unique names.}
}

@misc{RS??,
   author = {Nikhil RS and Arvind},
   title = {Id/83s},
   keywords = {The Id language.}
}

@incollection{Dijkstra85,
   author = {EW Dijkstra and WHJ Feijen and AJM van Gasteren},
   editor = {Broy},
   title = {Derivation of a termination detection algorithm for distributed computations},
   booktitle = {Control flow and data flow - concepts of distributed programming,},
   publisher = {Springer Verlag},
   year = {1985}
}

@techreport{K84,
   author = {Pingali K and Kathail V},
   title = {An introduction to the lambda calculus},
   type = {MIT},
   month = jul,
   year = {1984},
   keywords = {Includes the "lemma of parallel moves".}
}

@techreport{B85,
   author = {Bethke B and Kaufmann M and Mills C},
   title = {The {ARC} eta compiler},
   type = {Burroughs Austin Research Centre (submitted to TOPLAS).},
   month = oct,
   year = {1985},
   keywords = {Deals with the eta-reduction problem in compilation to SK combinators.}
}

@inproceedings{turner:semantic-elegance,
     author={D A Turner}
    ,title={The Semantic Elegance of Applicative Languages}
    ,booktitle={Proceedings of the 1981 Conference on Functional
                Programming Languages and Computer Architecture}
    ,organization={ACM}
    ,year=1981
    ,pages={85-92}
    }

@incollection{turner:recursion-equations,
   author = {D A Turner},
   editor = {Darlington and Henderson and Turner},
   title = {Recursion equations as a programming language},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982},
   keywords = {KRC intro}
}

@techreport{Brus85,
   author = {Tom Brus and Betsy Pepels},
   title = {Simulating the parallel execution of Sasl programs},
   type = {OHP slides, Nijmegen},
   year = {1985}
}

@techreport{Appel86,
   author = {Andrew Appel},
   title = {A proposal for an efficient reducer for lambda expressions},
   type = {NSF proposal},
   month = jul,
   year = {1986},
   keywords = {Relevant when the expression will only be reduced ONCE.}
}

@book{D85,
   editor = {DeGroot D and Lindstrom G},
   title = {Logic programming - functions, relations and equations},
   publisher = {Prentice Hall},
   year = {1985},
   keywords = {Relation between functiaonal and logic programming}
}

@techreport{Paulson85,
   author = {LC Paulson},
   title = {Interactive theorem proving with Cambridge {LCF} - a user manual},
   type = {Tech Rep 80, Cambridge Computer Lab},
   month = nov,
   year = {1985}
}

@article{Colmerauer85,
   author = {Alain Colmerauer},
   title = {Prolog in ten figures},
   journal = {CACM},
   volume = {28},
   number = {12},
   pages = {1296-1310},
   month = dec,
   year = {1985},
   keywords = {Introduction to Prolog.}
}

@article{Cohen85,
   author = {Jacques Cohen},
   title = {Describing Prolog by its interpretation and compilation},
   journal = {CACM},
   volume = {28},
   number = {12},
   pages = {1311-1324},
   month = dec,
   year = {1985},
   keywords = {Introduction to Prolog.}
}

@article{Parnas85,
   author = {DL Parnas},
   title = {Software aspects of strategic defence systems},
   journal = {CACM},
   volume = {28},
   number = {12},
   pages = {1326-1335},
   month = dec,
   year = {1985},
   keywords = {Anti star wars paper, nuclear weapons, SDI.}
}

@article{Halstead85,
   author = {Robert H Halstead},
   title = {Multilisp - a language for concurrent symbolic computation},
   journal = toplas,
   volume = {7},
   number = {4},
   pages = {501-538},
   month = oct,
   year = {1985},
   keywords = {Parallel machine, some similarities to GRIP, good paper. Speculative vs conservative parallelism, parallel concurrent garbage collection.}
}

@article{Ganapathi85,
   author = {M Ganapathi and CN Fischer},
   title = {Affix grammar driven code generation},
   journal = toplas,
   volume = {7},
   number = {4},
   pages = {560-599},
   month = oct,
   year = {1985},
   keywords = {Attribute grammars.  Pretty badly written.}
}

@techreport{Keller85,
   author = {Robert M Keller},
   title = {Rediflow architecture prospectus},
   type = {TU UUCS-85-105, Univ of Utah},
   month = aug,
   year = {1985}
}

@inproceedings{Keller85a,
   author = {Robert M Keller and Gary Lindstrom},
   title = {Approaching distributed database design through functional programming},
   booktitle = {International Conference on Distributed Systems},
   address = {Denver},
   month = may,
   year = {1985}
}

@techreport{Davie85,
   author = {A Davie},
   title = {Using the heap for variable access in a block structured language},
   type = {Dept Comp Sci, St Andrews Univ,},
   month = dec,
   year = {1985}
}

@techreport{Toyn85,
   author = {Ian Toyn and Colin Runciman},
   title = {Adapting {SECD} and combinator reduction machines to display snapshots of functional computations},
   type = {YCS.79, Dept Comp Sci, Univ of York},
   year = {1985},
   keywords = {Debugging functional programs.}
}

@article{Chaum85,
   author = {David Chaum},
   title = {Security without idenitification - transaction systems to make Big Brother obselete},
   journal = {CACM},
   volume = {28},
   number = {10},
   month = oct,
   year = {1985},
   keywords = {Cryptography, public key encryption, unconditional untracability. A good article.}
}

@book{Beranek85,
   author = {Bolt Beranek and Newman},
   title = {Butterfly parallel processor overview},
   publisher = {BBN},
   month = jun,
   year = {1985}
}

@article{Milner85,
   author = {Robin Milner},
   title = {The Standard {ML} core language},
   journal = {Polymorphism},
   volume = {2},
   number = {2},
   month = oct,
   year = {1985}
}

@article{MacQueen85,
   author = {David MacQueen},
   title = {Modules for Standard {ML}},
   journal = {Polymorphism},
   volume = {2},
   number = {2},
   month = oct,
   year = {1985},
   keywords = {Abstract data types too.}
}

@book{Bizley??,
   author = {MTL Bizley},
   title = {Probability - an intermediate textbook},
   publisher = {Inst of Actuaries (ISBN 0 901066 07 9 or 0 901019 12 7).},
   keywords = {Good first year text.}
}

@book{Hillis85,
   author = {MD Hillis},
   title = {The Connection Machine},
   publisher = {MIT Press},
   year = {1985},
   keywords = {Supposed to be very good.}
}

@article{Broomell83,
   author = {G Broomell and JR Heath},
   title = {Classification categories and historical development of cirucit switching topologies},
   journal = {ACM Computing Surveys},
   volume = {15},
   number = {2},
   pages = {95-134},
   month = jun,
   year = {1983},
   keywords = {Connection networks for MIMD machines.}
}

@article{Boyer77,
   author = {RS Boyer and JS Moore},
   title = {A fast string searching algorithm},
   journal = {CACM},
   volume = {20},
   number = {10},
   pages = {762-772},
   month = oct,
   year = {1977},
   keywords = {The fastest known.}
}

@techreport{Elworthy85,
   author = {David Elworthy},
   title = {Implementing a Ponder cross compiler for the {SKIM} processor},
   type = {Dip Comp Sci Dissertation, Computer Lab, Cambridge},
   month = jul,
   year = {1985},
   keywords = {Produces SKIM microcode from Ponder abstract machine code. Good project, writeup not very clear!}
}

@article{Watt83,
   author = {DA Watt and OL Madsen},
   title = {Extended attribute grammars},
   journal = {Computer Journal},
   volume = {26},
   number = {2},
   year = {1983, pp142ff.}
}

@techreport{Minton85,
   author = {S Minton},
   title = {A game playing program that learns by analyzing examples},
   type = {Carnegie Mellen University},
   month = may,
   year = {1985},
   keywords = {Go, chess, noughts and crosses.}
}

@techreport{Bryant85,
   author = {RE Bryant},
   title = {Graph based algorithms for boolean function manipulation},
   type = {CMU-CS-85-135, Carnegie Mellen University},
   month = jun,
   year = {1985},
   keywords = {Relevant to frontiers. Combinatorially implosive. Satisfiability.}
}

@techreport{Fairbairn85,
   author = {J Fairbairn},
   title = {Design and implementation of a simple typed language based on the lambda calculus},
   type = {TR 75, Computer Lab, Cambridge},
   month = may,
   year = {1985},
   keywords = {PhD thesis, Ponder, abstract machine.}
}

@article{IEEE85,
   author = {{IEEE}},
   title = {Special issue on parallel systems (software)},
   institution = {IEEE},
   journal = {IEEE Software},
   month = jul,
   year = {1985},
   keywords = {Operating systems, international parallel processing projects.}
}

@book{Lipson81,
   author = {JD Lipson},
   title = {Elements of algebra and algebraic computing},
   publisher = {Addison Wesley},
   year = {1981},
   note = {UCL library E5LIP.}
}

@article{Pavelle81,
   author = {R Pavelle and M Rothstein and J Fitch},
   title = {Computer Algebra},
   journal = {Scientific American},
   volume = {245},
   number = {6},
   pages = {136-152},
   month = dec,
   year = {1981}
}

@article{al85,
   author = {Colwell RP et al},
   title = {Computers, complexity and controversy},
   journal = {IEEE Computer},
   volume = {18},
   number = {9},
   month = sep,
   year = {1985},
   keywords = {A good article about RISC/CISC. Urges caution about RISC philosophy.}
}

@techreport{Wadge85,
   author = {WW Wadge},
   title = {{VISCID} - a vi-like screen editor written in Lucid},
   type = {DCS-40-IR, Dept Comp Sci, Univ of Victoria},
   month = jun,
   year = {1985}
}

@techreport{Faustini85,
   author = {AA Faustini and WW Wadge},
   title = {An eductive interpreter for the functional language PLucid},
   type = {DCS-46-IR, Dept Comp Sci, Univ of Victoria},
   month = jun,
   year = {1985}
}

@book{Kalish??,
   author = {Kalish and Montague},
   title = {An introduction to natural deduction},
   edition = {2nd},
   publisher = {Addison Wesley(?)},
   keywords = {Recommended by Tony Davie.  Logic. Mathematics.}
}

@inproceedings{okasaki:square-matrices,
  author = {C Okasaki},
  title = {From fast exponentiation to square matrices: an adventure in types},
  crossref = "icfp99",
  pages = "28-35",
  keywords = "higher kinds"
}

@misc{Anonymous??c,
   key = {Anonymous??c},
   title = {From Frege to Godel},
   keywords = {Foudations of mathematics. Strongly recommended.}
}

@incollection{Moon85,
   author = {David A Moon},
   title = {Architecture of the Symbolics 3600},
   booktitle = {Proc 12th Intl Symposium on Computer Architecture},
   pages = {76-83},
   month = jun,
   year = {1985},
   keywords = {Lisp machines, tagging, boxed and unboxed, stacks, implementation.},
   note = {Published as SIGARCH, volume 13, number 3}
}

@incollection{Traub85,
   author = {KR Traub},
   title = {An abstract parallel graph reduction machine},
   booktitle = {Proc 12th Intl Symposium on Computer Architecture},
   pages = {333-341},
   month = jun,
   year = {1985},
   keywords = {Combinators, distributed machines, tasks.  Quite good.},
   note = {Published as SIGARCH, volume 13, number 3}
}

@incollection{Gehringer85,
   author = {EF Gehringer and JL Keedy},
   title = {Tagged architecture - how compelling are its advantages?},
   booktitle = {Proc 12th Intl Symposium on Computer Architecture},
   pages = {162-170},
   month = jun,
   year = {1985},
   keywords = {A convincing rebuttal of Myers.},
   note = {Published as SIGARCH, volume 13, number 3}
}

@article{Pnueli81,
   author = {A Pnueli},
   title = {The temporal semantics of concurrent programs},
   journal = {Theoretical Computer Science},
   volume = {13},
   pages = {45-60},
   year = {1981},
   keywords = {Operating systems, temporal logic.}
}

@techreport{Tighe85,
   author = {Steven Tighe},
   title = {A study of the parallelism inherent in combinator reduction},
   type = {MCC Tech Rep},
   number = {PP-140-85},
   month = nov,
   year = {1985},
   keywords = {Simulations.  Same bug as ours.}
}

@article{church:lambda-calculus,
    author    = {Church, Alonzo},
    title     = {The Calculi of Lambda-Conversion},
    journal = {Annals of Mathematics Studies},
    volume = 6, 
    publisher ="Princeton University Press",
    signature = {RH:MISC2},
    year      = 1941
}

@article{Chuang73,
   author = {HYH Chuang and S Das},
   title = {Synthesis of multiple input change asynchronous machines using controlled exitation and flip flops},
   journal = {IEEE Trans Computers C-},
   volume = {22},
   number = {12},
   pages = {1103-1109},
   month = dec,
   year = {1973},
   keywords = {Asynchronous finite state machines, hardware design.}
}

@incollection{Sohi85,
   author = {GS Sohi and ES Davidson and JH Patel},
   title = {An efficient lisp execution architecture with a new representation for list structures},
   booktitle = {Proc 12th Intl Symposium on Computer Architecture},
   pages = {91-98},
   month = jun,
   year = {1985},
   keywords = {Garbage collection.},
   note = {Published as SIGARCH, volume 13, number 3}
}

@incollection{Ram85,
   author = {A Ram and JH Patel},
   title = {Parallel garbage collection without synchronisation overhead},
   booktitle = {Proc 12th Intl Symposium on Computer Architecture},
   pages = {84-90},
   month = jun,
   year = {1985},
   note = {Published as SIGARCH, volume 13, number 3}
}

@incollection{Metayer85,
   author = {D le Metayer},
   title = {Mechanical analysis of program complexity},
   booktitle = {ACM Symposium on Programming Languages and Programming Environments},
   month = jul,
   year = {1985},
   keywords = {Eliminating small tasks by estimating execution cost.},
   note = {Published as SIGPLAN Notices, volume 20, number 7}
}

@techreport{Cardelli85,
   author = {Luca Cardelli and Peter Wegner},
   title = {On understanding types, data abstraction and polymorphism},
   type = {Tech Rep CS-85-14, Dept Comp Sci, Brown Univ},
   month = aug,
   year = {1985}
}

@techreport{Augusteijn84,
   author = {L Augusteijn},
   title = {A translation of combinator graphs into machine code},
   type = {Twente Univ of Technology, Enschede},
   year = {1984},
   keywords = {Combinator graphs as self-modifying assembly code.}
}

@techreport{Hoeven84,
   author = {GF van der Hoeven},
   title = {Ad hoc combinators},
   type = {Twente Univ of Technology, Enschede},
   year = {1984},
   keywords = {Supercombinator graphs as self-modifying assembly code.}
}

@incollection{Anonymous??d,
   key = {Anonymous??d},
   title = {Computer algebra.},
   booktitle = {LNCS 72, 144, 162, 174.}
}

@misc{Scheevel??,
   author = {Mark Scheevel},
   title = {{NORMA}},
   keywords = {For my book.  Combinators. Burroughs.}
}

@misc{T85,
   author = {Ida T and Konagaya A},
   title = {Comparison of closure reduction and combinatory reduction schemes},
   month = aug,
   year = {1985},
   keywords = {Lambda reduction, director strings.}
}

@techreport{Burn85,
   author = {Geoff Burn},
   title = {Monthly report},
   type = {Hirst Research Centre},
   month = aug,
   year = {1985},
   keywords = {Abstract interpretation notes, strictness analysis.}
}

@article{Anonymous85,
   key = {Anonymous85},
   journal = {IEEE Computer},
   volume = {18},
   number = {6},
   month = jun,
   year = {1985},
   keywords = {Special issue on multiprocessing technology. Parallel processing, fifth generation.}
}

@article{Anonymous85a,
   key = {Anonymous85a},
   journal = {IEEE Computer},
   volume = {18},
   number = {4},
   month = {Par},
   year = {1985},
   keywords = {Special issue on requirements specification. Software engineering.}
}

@article{Bass85,
   author = {LJ Bass},
   title = {A generalised user interface for applications programs},
   journal = {CACM},
   volume = {28},
   number = {6},
   month = jun,
   year = {1985},
   keywords = {Software engineering, display system.}
}

@article{Stefik85,
   author = {Mark Stefik},
   title = {Strategic computing at {DARPA} - overview and assessment},
   journal = {CACM},
   volume = {28},
   number = {7},
   month = jul,
   year = {1985},
   keywords = {Artifical intelligence, knowledge bases, defence.}
}

@article{Rajlich85,
   author = {V Rajlich},
   title = {Paradigms for design and implementation in Ada},
   journal = {CACM},
   volume = {28},
   number = {7},
   month = jul,
   year = {1985},
   keywords = {Top down, bottom up, large small.  Modules, packages.}
}

@article{Noshita85,
   author = {K Noshita},
   title = {Translation of Turner combinators in {O}(nlogn) space},
   journal = {Information Processing Letters},
   volume = {20},
   pages = {71-74},
   year = {1985},
   keywords = {Director strings.}
}

@techreport{Hanna85,
   author = {FK Hanna and N Daeche},
   title = {The {VERITAS} theorem prover},
   type = {Computer Lab, Univ of Kent, Canterbury},
   month = jul,
   year = {1985},
   keywords = {Written in a functional language, specification, verification.}
}

@techreport{Keller85b,
   author = {RM Keller and G Lindstrom},
   title = {Rediflow project publications},
   type = {Univ of Utah},
   month = aug,
   year = {1985}
}

@techreport{Muxworthy??,
   author = {D Muxworthy},
   title = {Programming language standards},
   type = {Univ of Edinburgh},
   keywords = {Gives pointers to standards for many languages. Incl Ada, Algol68, APL, BASIC, FORTRAN, Lisp, Pascal etc.}
}

@techreport{Li85,
   author = {K Li and P Hudak},
   title = {A new list compaction method},
   type = {YALEU/DCS/RR-362, Dept Comp Sci, Yale},
   month = feb,
   year = {1985},
   keywords = {Storage management, cdr coding, garbage collection, arrays.}
}

@incollection{Hayes83,
   author = {AB Hayes},
   title = {Self timed {IC} design with PPLs},
   booktitle = {Proc 3rd CalTech Conf on VLSI},
   pages = {257-273},
   publisher = {Computer Science Press},
   month = {D},
   year = {1983},
   keywords = {Asynchronous finite state machines.}
}

@phdthesis{Meira85,
   author = {SL Meira},
   title = {On the efficiency of applicative algorithms},
   type = {Ph.{D}. Thesis},
   number = {Univ of Kent, Canterbury},
   month = mar,
   year = {1985},
   keywords = {Strictness analysis, arrays, sorting, graph algorithms.}
}

@techreport{Petros84,
   author = {ES Petros},
   title = {Parallel Prolog - the language and the machine},
   type = {MSc thesis, Univ of Essex, Colchester},
   year = {1984}
}

@techreport{Kieburtz85,
   author = {RB Kieburtz and M Napierala},
   title = {A studied laziness - strictness analysis with structured data types},
   type = {Oregon Graduate Centre},
   month = jul,
   year = {1985},
   keywords = {Non-flat domains, higher order functions.}
}

@misc{Nielson??,
   author = {Flemming Nielson},
   title = {Bibliography on abstract interpretation},
   keywords = {Strictness analysis too.}
}

@article{Burn86,
   author = {GL Burn and CL Hankin and S Abramsky},
   title = {Strictness analysis for higher order functions},
   journal = scp,
   volume = {7},
   pages = {249-278},
   month = nov,
   year = {1986},
   keywords = {Excellent paper, good intro too.}
}

@article{Bibel85,
   author = {W Bibel and B Buchberger},
   title = {Towards a connection machine for logical inference},
   journal = {FGCS},
   volume = {1},
   number = {3},
   pages = {177-188},
   month = feb,
   year = {1985},
   keywords = {First order logic, L-networks, Prolog.}
}

@article{Giloi85,
   author = {WK Giloi},
   title = {Advanced object oriented architectures},
   journal = {FGCS},
   volume = {1},
   number = {3},
   pages = {169-175},
   month = feb,
   year = {1985},
   keywords = {Smalltalk, von Neumann bottleneck, dataflow.}
}

@techreport{Burton85,
   author = {W Burton and D Maurer and HG Oberhauser and R Wilhelm},
   title = {A space efficient optimisation of call by need},
   type = {University of Saarlandes, Saarbrucken},
   month = aug,
   year = {1985},
   keywords = {Lazy evaluation.  Not startling, but good examples.}
}

@techreport{Maurer85,
   author = {D Maurer},
   title = {Strictness computation using generalised lambda expressions},
   type = {University of Saarlandes, Saarbrucken},
   month = aug,
   year = {1985},
   keywords = {Strictness analysis, abstract interpretation.}
}

@techreport{Jones85,
   author = {Neil Jones and Alan Mycroft},
   title = {Data flow analysis of applicative programs using minimal function graphs},
   type = {DIKU, Copenhagen},
   month = aug,
   year = {1985},
   keywords = {Mix, partial evalutation, abstract interpretation.}
}

@techreport{Wadler85a,
   author = {PL Wadler},
   title = {Why calculating is better than scheming},
   type = {Programming Research Group, Oxford},
   month = aug,
   year = {1985},
   keywords = {Teaching functional programming vs teaching Lisp.}
}

@techreport{Turner85,
   author = {David A Turner},
   title = {Miranda system manual},
   type = {Computer Lab, University of Kent},
   month = aug,
   year = {1985},
   keywords = {Draft.}
}

@article{Brailsford85,
   author = {DF Brailsford and RJ Duckworth},
   title = {The {MUSE} machine - an architecture for structured data flow computation},
   journal = {New Generation Computing},
   volume = {3},
   pages = {181-195},
   year = {1985},
   keywords = {Parallel computing, Nottingham.}
}

@techreport{Hughes85,
   author = {John Hughes},
   title = {Strictness detection in non-flat domains},
   type = {Programming Research Group, Oxford},
   month = jul,
   year = {1985}
}

@incollection{Brownbridge85,
   author = {David Brownbridge},
   title = {Cyclic reference counting for combinator machines .},
   booktitle = {Proc ACM Symposium on Functional Progamming and Computer Architecture},
   month = aug,
   year = {1985}
}

@techreport{Fernandes85,
   author = {EST Fernandes},
   title = {Parallelism description on garget architecures},
   type = {UCL},
   month = jun,
   year = {1985},
   keywords = {Hardware description languages.}
}

@inproceedings{Sloman85,
   author = {M Sloman and J Kramer and J Magee},
   title = {The Conic toolkit for building distributed systems},
   booktitle = {Proc 6th IFAC Distributed Computer Control System Workshop},
   address = {Monterey},
   month = may,
   year = {1985}
}

@misc{Biswas75,
   author = {{Biswas}},
   title = {Introduction to logic and switching theory},
   institution = {Biswas},
   year = {1975; Something on asynchronous finite state machines.  In PSL.},
   keywords = {Gordon and Breach}
}

@book{Unger69,
   author = {SH Unger},
   title = {Asynchronous sequential switching circuits},
   publisher = {Wiley},
   year = {1969},
   keywords = {Asynchronous finite state machines.  In PSL.}
}

@book{Lewin68,
   author = {D Lewin},
   title = {Logical design of switching circuits},
   publisher = {Nelson},
   year = {1968},
   keywords = {Something on asynchronous finite state machines.  In PSL.}
}

@book{MCCluskey65,
   author = {EJ MCCluskey},
   title = {Introduction to the toeory of switching circuits},
   publisher = {McGraw},
   month = {Hill},
   year = {1965},
   keywords = {Something on asynchronous finite state machines.  In PSL.}
}

@book{Proat79,
   author = {DI Proat and A Barna},
   title = {Introduction to digital techniques},
   publisher = {Wiley},
   year = {1979},
   keywords = {Something on asynchronous finite state machines.  In PSL.}
}

@book{Dietmeyer78,
   author = {DL Dietmeyer},
   title = {Logic design of digital systems},
   publisher = {Allyn and Bacon},
   year = {1978},
   keywords = {Something on asynchronous finite state machines.  In PSL.}
}

@article{Hoare72,
   author = {CAR Hoare and DCS Allison},
   title = {Incomputability},
   journal = {ACM Computing Surveys},
   volume = {4},
   number = {3},
   pages = {169-178},
   month = sep,
   year = {1972},
   keywords = {Not hard, quite intuitive. Termination, recursion.}
}

@inproceedings{seres+:embedding-prolog,
  title = "Embedding {Prolog} in {Haskell}",
  author = "Silvija Seres and Michael Spivey",
  crossref = "haskell-workshop-99"
}

@inbook{spiby+:combinators-logic,
  title = "Combinators for logic programming",
  author = "Michael Spivey and Silvija Seres",
  booktitle = "The Fun of Programming", 
  editors= "Jeremy Gibbons and Oege de Moor",
  publisher = "Palgrave",
  year = 2003,
  pages = "177-200"
}

@incollection{al79,
   author = {WL van der Poel et al},
   title = {New arithmetic operators in the theory of combinators},
   booktitle = {Proc Koninklijke Nederlandse Akademie van Wetenschappen, Series A},
   volume = {83},
   number = {3},
   month = oct,
   year = {1979}
}

@techreport{al85a,
   author = {JRW Glauert et al},
   title = {An active term rewrite model for parallel computation},
   type = {Dept Comp Sci, Univ of East Anglia},
   month = jun,
   year = {1985},
   keywords = {DACTL.}
}

@techreport{Kornfeld79,
   author = {William A Kornfeld},
   title = {Combinatorially implosive algorithms},
   type = {MIT},
   year = {1979},
   keywords = {Similar to the problem of finding fixpoints in strictness analysis.}
}

@techreport{Boute84,
   author = {Raymond T Boute},
   title = {System semantics applied to digital and analogue circuits},
   type = {Report 56, Dept Comp Sci, Univ of Nijmegen, Holland},
   month = aug,
   year = {1984}
}

@techreport{Koopman85,
   author = {Pieter Koopman},
   title = {Interactive programs in a functional language},
   type = {Report 65, Dept Comp Sci, Univ of Nijmegen, Holland},
   month = apr,
   year = {1985},
   keywords = {A functional editor.}
}

@techreport{Lee85,
   author = {TGA Lee and H Oolman},
   title = {Tracing and debugging in Sasl},
   type = {Report 66, Dept Comp Sci, Univ of Nijmegen, Holland},
   month = apr,
   year = {1985}
}

@incollection{Boute85,
   author = {Raymond T Boute},
   editor = {Giloi and Shriver},
   title = {Functional description of digital systems},
   booktitle = {Methodologies for Computer Systems Design},
   publisher = {IFIP},
   year = {1985}
}

@techreport{Boute85a,
   author = {Raymond T Boute},
   title = {Functional temporal calculus vs temporal logic - an engineering approach},
   type = {Dept Comp Sci, Univ of Nijmegen, Holland},
   month = jun,
   year = {1985}
}

@techreport{al85b,
   author = {JRW Glauert et al},
   title = {DACTL0 - a computational model and associated compiler target language},
   type = {University of East Anglia},
   month = may,
   year = {1985}
}

@incollection{Keller85c,
   author = {RM Keller},
   title = {Distributed computation by graph reduction},
   booktitle = {Systems Research},
   publisher = {Pergamon Press},
   year = {1985},
   keywords = {Supercombinators by blocks with relative internal addresses.}
}

@inproceedings{Jayaraman82,
   author = {B Jayaraman and RM Keller},
   title = {Resource expressions for applicative languages},
   booktitle = {Proc International Conference on Parallel Processing},
   year = {1982},
   keywords = {Pragmatics in functional languages, evaluation order, operating systems.}
}

@incollection{Tanaka82,
   author = {J Tanaka and RM Keller},
   title = {Code optimisation in a functional language},
   booktitle = {Proc Working Group on Software Foundation, Information Processing Society of Japan},
   month = dec,
   year = {1982},
   keywords = {Primitive strictness analysis, and avoiding copying THEN and ELSE parts of IF by abstraction.}
}

@inproceedings{Keller80,
   author = {RM Keller},
   title = {Divide and CONCer - data structuring in applicative multiprocesing systems},
   booktitle = {Proc ACM Lisp Conference, Stanford},
   year = {1980},
   keywords = {Functional operating systems, nondeterminism.}
}

@incollection{Mishra85,
   author = {P Mishra and US Reddy},
   title = {Declaration-free type checking},
   booktitle = {ACM Symposium on Principles of Programming Languages},
   pages = {7-21},
   month = jan,
   year = {1985},
   keywords = {Polymorphic typing without type declarations.}
}

@incollection{Keller81,
   author = {RM Keller and WJ Yen},
   title = {A graphical approach to software development using function graphs},
   booktitle = {IEEE Compcon},
   year = {1981}
}

@techreport{Keller82,
   author = {RM Keller},
   title = {{FEL} - an experimental applicative language},
   type = {Dept Comp Sci, Univ of Utah},
   year = {1982},
   keywords = {Functional language.}
}

@techreport{Keller82a,
   author = {RM Keller and FCH Lin and PR Badovinatz},
   title = {The Rediflow simulator},
   type = {Dept Comp Sci, Univ of Utah},
   year = {1982}
}

@inproceedings{keller:amps,
   author = {RM Keller and G Lindstrom and S Patil},
   title = {A loosely coupled applicative multiprocessing system},
   booktitle = {AFIPS Conference Proceedings},
   pages = {613-622},
   month = jun,
   year = {1979},
   keywords = {AMPS.}
}

@article{Davis82,
   author = {A Davis and RM Keller},
   title = {Data flow program graphs},
   journal = {IEEE Computer},
   pages = {26-41},
   month = feb,
   year = {1982}
}

@techreport{Bailey84,
   author = {Roger Bailey},
   title = {{FP}/{M} abstract syntax description},
   type = {Imperial College},
   month = dec,
   year = {1984},
   keywords = {Intermediate code for functional languages.}
}

@techreport{Cripps85,
   author = {MD Cripps and AJ Field and MJ Reeve},
   title = {The design and implementation of {ALICE}},
   type = {Imperial College},
   month = jun,
   year = {1985}
}

@techreport{Field85,
   author = {Tony Field},
   title = {The compilation of {FP}/{M} programs into conventional machine code},
   type = {Imperial College},
   month = jun,
   year = {1985},
   keywords = {Similar to Cardelli FAM?  Functional language implementation.}
}

@article{al85c,
   author = {J DeRosa et al},
   title = {Design and implementation of the {VAX} 8600 pipeline},
   journal = {IEEE Computer},
   pages = {38-50},
   month = may,
   year = {1985},
   keywords = {Architecture.}
}

@article{Siegel79,
   author = {HJ Siegel},
   title = {Interconnection newtorks for {SIMD} machines},
   journal = {IEEE Computer},
   pages = {57-65},
   month = jun,
   year = {1979},
   keywords = {Perfect shuffles, omega networks etc.}
}

@article{Feng81,
   author = {T Feng},
   title = {A survey of interconnection networks},
   journal = {IEEE Computer},
   pages = {12-27},
   month = dec,
   year = {1981},
   keywords = {Perfect shuffles, omega networks etc.}
}

@article{Heering85,
   author = {J Heering and P Klint},
   title = {Towards monolingual programming environments},
   journal = {TOPLAS},
   volume = {7},
   number = {2},
   pages = {183-213},
   month = apr,
   year = {1985},
   keywords = {Unified command/programming languages.  Relevant to functional operating systems?}
}

@article{Yemina85,
   author = {S Yemina and DM Berry},
   title = {A modular verifiable exception handling mechanism},
   journal = toplas,
   volume = {7},
   number = {2},
   pages = {214-243},
   month = apr,
   year = {1985}
}

@article{Schmidt85,
   author = {DA Schmidt},
   title = {Detecting global variables in denotational specifications},
   journal = toplas,
   volume = {7},
   number = {2},
   pages = {299-310},
   month = apr,
   year = {1985},
   keywords = {V relevant to update-in-place for arrays in functional languages.}
}

@article{Pingali85,
   author = {K Pingali and Arvind},
   title = {Efficient demand driven evaluation, part 1},
   journal = toplas,
   volume = {7},
   number = {2},
   pages = {311-333},
   month = apr,
   year = {1985},
   keywords = {Shows how to "simulate" demand driven evaluation using data flow.}
}

@article{Bates85,
   author = {JL Bates and RL Constable},
   title = {Proofs as programs},
   journal = toplas,
   volume = {7},
   number = {1},
   pages = {113-136},
   month = jan,
   year = {1985},
   keywords = {Program transformation, looks quite good.}
}

@article{Skeen85,
   author = {D Skeen},
   title = {Determining the last process to fail},
   journal = {TOCS},
   volume = {3},
   number = {1},
   pages = {15-30},
   month = feb,
   year = {1985},
   keywords = {Distributed algorithm.}
}

@article{Chandy85,
   author = {KM Chandy and L Lamport},
   title = {Distributed snapshots - determining global states of distributed systems},
   journal = {TOCS},
   volume = {3},
   number = {1},
   pages = {63-75},
   month = feb,
   year = {1985},
   keywords = {Seems to generalise a number of distributed algorithms.}
}

@article{al84a,
   author = {D Bitton et al},
   title = {A taxonomy of parallel sorting},
   journal = {Computing Surveys},
   volume = {16},
   number = {3},
   pages = {287-318},
   month = sep,
   year = {1984}
}

@article{Quinn84,
   author = {MJ Quinn and N Deo},
   title = {Parallel graph algorithms},
   journal = {Computing Surveys},
   volume = {16},
   number = {3},
   pages = {319-348},
   month = sep,
   year = {1984},
   keywords = {Connected components, cliques, spanning trees, travelling salesman.}
}

@inproceedings{kohlbecker:hygienic-macros,
  author = "EM Kohlbecker and DP Friedman and M Felleisen and B Duba",
  title = "Hygienic macro expansion",
  crossref = "lfp86",
  pages = "151-161",
  keywords = "lisp, scheme"
}

@inproceedings{pitman:macros,
   author = "KM Pitman",
   title = "Special forms in {Lisp}",
   crossref = "lfp80",
   pages = "179-187",
   keywords = "macros"
}

@inproceedings{clinger:macros-that-work,
  author = "W Clinger and J Rees",
  title = "Macros that work",
  crossref = "popl91",
  pages = "155-162",
  keywords = "lisp, scheme"
}

@inproceedings{bawden:macros-have-types,
  author = "A Bawden",
  title = "First-class macros have types",
  crossref = "popl00",
  pages = "133-141",
  keywords = "lisp, scheme"
}

@misc{Horowitz??,
   author = {Horowitz and Hill},
   title = {The art of electronics},
   keywords = {Oxford? Highly recommended, analogue circuits.}
}

@misc{Harland84a,
   author = {D Harland},
   title = {Polymorphic programming languages},
   year = {1984},
   keywords = {No 25 in some series}
}

@article{Kirkpatrick83,
   author = {Kirkpatrick and Gelatt and Vecchi},
   title = {Optimisation by simulated annealing},
   journal = {Science},
   volume = {220},
   pages = {671-680},
   year = {1983}
}

@article{Anonymous78,
   key = {Anonymous78},
   journal = {CACM},
   volume = {21},
   number = {1},
   month = jan,
   year = {1978},
   keywords = {Special issue on computer architecture.  Atlas, MU5, Univac 1100, Dec 10, IBM 370, Cray.}
}

@article{Glass85,
   author = {Harvey Glass},
   title = {Threaded interpretive systems and functional programming environments},
   journal = {SIGPLAN Notices},
   volume = {20},
   number = {4},
   pages = {24-32},
   month = apr,
   year = {1985},
   keywords = {Functional Forth.}
}

@techreport{Turner84,
   author = {D A Turner},
   title = {Constructive type theory as a programming language},
   type = {Slides from a talk},
   year = {1984},
   keywords = {Per Martin Lof's type theory.}
}

@incollection{Broy83,
   author = {Manfred Broy},
   editor = {REA Mason},
   title = {Applicative real time programming},
   booktitle = {Information Processing 83},
   publisher = {Elsevier},
   year = {1983},
   keywords = {Time stamping, nondeterminism.}
}

@article{Broy84,
   author = {M Broy and M Wirsing and C Pair},
   title = {A systematic study of models of abstract data types},
   journal = {Theoretical Computer Science},
   volume = {33},
   pages = {139-174},
   year = {1984},
   keywords = {Stream processing, domains, lattices, algebras.}
}

@techreport{Pettorossi84,
   author = {A Pettorossi},
   title = {Methodologies for transformations and memoing in applicative languages},
   type = {CST-29-24, Univ of Edinburgh},
   year = {1984},
   keywords = {Memo functions, program transformation.}
}

@techreport{Nielson84,
   author = {Flemming Nielson},
   title = {Abstract interpretation using domain theory},
   type = {CST-31-84, Univ of Edinburgh},
   year = {1984},
   keywords = {Strictness analysis, quite hard going.}
}

@article{al81,
   author = {FL Bauer et al},
   title = {Programming in a wide spectrum language - a collection of examples},
   journal = scp,
   volume = {1},
   pages = {73-114},
   year = {1981},
   keywords = {Program transformation.}
}

@inproceedings{Broy81,
   author = {Manfred Broy},
   title = {Are fairness assumptions fair?},
   booktitle = {Second International Conference on Distributed Computing Systems, Paris},
   pages = {116-125},
   month = apr,
   year = {1981},
   keywords = {Nondeterminism, parallelism.}
}

@inproceedings{Broy82a,
   author = {Manfred Broy},
   title = {Fixed point theory for communication and concurrency},
   booktitle = {Working conference on Formal Description of Programming Concepts II},
   month = jun,
   year = {1982},
   keywords = {Parallel functional programs, nondeterminism.}
}

@inproceedings{robinson:economics,
  author = "Arch D Robinson",
  title = "Impact of economics on compiler optimization",
  booktitle = {Proceedings of the ACM 2001 Java Grande Conference, Stanford},
  publisher = ACM,
  month = jun,
  year = 2001,
  pages = "1-10",
  keywords = "template meta-programming, C++"
}
  
@inproceedings{Dosch??,
   author = {W Dosch and B Moller},
   title = {Impact of functional languages on teaching and programing methodology},
   booktitle = {IFIP TC3 working conference on Teaching Programming.}
}

@book{Johnson85,
   author = {SD Johnson},
   title = {Synthesis of digital designs from recursion equations},
   publisher = {MIT Press},
   year = {1985},
   keywords = {Program transformation.}
}

@INCOLLECTION{pottier:pierce-chapter,
  AUTHOR = {Fran\c{c}ois Pottier and Didier R{\'{e}}my},
  TITLE = {The Essence of {ML} Type Inference},
  BOOKTITLE = {Advanced Topics in Types and Programming Languages},
  PAGES = {389--489},
  PUBLISHER = {MIT Press},
  YEAR = {2005},
  EDITOR = {Benjamin C. Pierce},
  CHAPTER = {10},
  html = {http://cristal.inria.fr/attapl/}
}
  
@book{Potter85,
   editor = {JL Potter},
   title = {The massively parallel processor (MPP)},
   publisher = {MIT Press},
   year = {1985}
}

@misc{Anonymous??e,
   key = {Anonymous??e},
   title = {Data protection bill (filed under "Data").},
   note = {A briefing.}
}

@article{Daley68,
   author = {RC Daley and JB Dennis},
   title = {Virtual memory, processes and sharing in Multics},
   journal = {CACM},
   volume = {5},
   number = {11},
   pages = {306-312},
   month = may,
   year = {1968},
   keywords = {Segmentation, address translation.}
}

@article{Randell68,
   author = {B Randell and CJ Kuehner},
   title = {Dynamic storage allocation systems},
   journal = {CACM},
   volume = {5},
   number = {11},
   pages = {297-306},
   month = may,
   year = {1968},
   keywords = {Segmentation, address translation.}
}

@techreport{Boute85b,
   author = {Ray T Boute},
   title = {System semantics - principles, applications and implementation},
   type = {Dept Comp Sci, Univ of Nijmegen},
   month = apr,
   year = {1985}
}

@techreport{Boute85c,
   author = {Ray T Boute},
   title = {System semantics and formal circuit descriptions},
   type = {Dept Comp Sci, Univ of Nijmegen},
   month = aug,
   year = {1985}
}

@techreport{Panzieri85,
   author = {F Panzieri and SK Shrivastava.},
   title = {Rajdoot - a remote procedure call mechanism supporting orphan detection and killing},
   type = {Computer Lab, Univ of Newcastle on Tyne},
   month = apr,
   year = {1985}
}

@techreport{Moody80,
   author = {Ken Moody and Martin Richards},
   title = {A coroutine mechanism for {BCPL}},
   type = {Computer Lab, Cambridge},
   month = apr,
   year = {1980},
   keywords = {Compilers, tasking.}
}

@techreport{Hsu84,
   author = {FH Hsu and HT Kung and T Nishizawa and A Sussman},
   title = {{LINC} - the link and interconnection chip},
   type = {Comp Sci Tech Rep, CMU},
   month = oct,
   year = {1984},
   keywords = {Replaces busses and register files, contains 8x8 crossbar.}
}

@techreport{Moller84,
   editor = {B Moller},
   title = {A survey of the project {CIP}},
   type = {TUM-18406, Institut fur Informatik, Technische Universtitat Munchen},
   month = jul,
   year = {1984},
   keywords = {Program transformation at the Munich group.}
}

@phdthesis{Burton84a,
   author = {Cameron Burton},
   title = {An algebraic approach to program transformation},
   type = {Ph.{D}. Thesis},
   number = {Queen Mary College},
   year = {1984},
   keywords = {I have Intro, summary and good bibliography.}
}

@phdthesis{Corovessis82,
   author = {Jiannis Corovessis},
   title = {A parallel implementation of Sasl},
   type = {Ph.{D}. Thesis},
   number = {Univ of St Andrews},
   month = sep,
   year = {1982},
   keywords = {Combinators.}
}

@incollection{Padget85,
   author = {Julian Padget and John Fitch},
   title = {Closureise and concentrate},
   booktitle = {POPL},
   pages = {255-265},
   month = jan,
   year = {1985},
   keywords = {Dynamic binding and environments.}
}

@phdthesis{Padget84,
   author = {Julian Padget},
   title = {The preservation of the environment},
   type = {Ph.{D}. Thesis},
   number = {Dept Comp Sci, Univ of Bath},
   year = {1984},
   keywords = {Dynamic binding and environments.}
}

@techreport{Henderson84,
   author = {Peter Henderson and Nic Holt},
   title = {Declarative languages and parallel machines},
   type = {FPN-3, Dept Comp Sci, Univ of Sirling},
   month = feb,
   year = {1984}
}

@techreport{Henderson83,
   author = {Peter Henderson},
   title = {A practical view of functional programming},
   type = {FPN-2, Dept Comp Sci, Univ of Sirling},
   month = dec,
   year = {1983}
}

@techreport{Henderson83a,
   author = {Peter Henderson},
   title = {A simple semantic network database},
   type = {FPN-1, Dept Comp Sci, Univ of Sirling},
   month = aug,
   year = {1983}
}

@techreport{Henderson84a,
   author = {Peter Henderson},
   title = {Some distributed systems},
   type = {FPN-6, Dept Comp Sci, Univ of Sirling},
   month = jul,
   year = {1984}
}

@techreport{Henderson84b,
   author = {Peter Henderson},
   title = {me too - a language for software specification and model building},
   type = {FPN-9, Dept Comp Sci, Univ of Sirling},
   month = dec,
   year = {1984}
}

@techreport{Henderson84c,
   author = {Peter Henderson},
   title = {Process combinators},
   type = {FPN-7, Dept Comp Sci, Univ of Sirling},
   month = aug,
   year = {1984}
}

@techreport{Henderson84d,
   author = {Peter Henderson},
   title = {Communicating functional programs},
   type = {FPN-8, Dept Comp Sci, Univ of Sirling},
   month = sep,
   year = {1984}
}

@techreport{Wadler85b,
   author = {PL Wadler},
   title = {An introduction to Orwell},
   type = {Programming Research Group, Oxford},
   month = apr,
   year = {1985}
}

@incollection{Henderson84e,
   author = {Peter Henderson},
   editor = {T Anderson},
   title = {Specificatons and programs},
   booktitle = {Software; requirements, specification and testing},
   publisher = {Blackwell Scientific Publications.},
   year = {1984}
}

@book{Hoare85,
   author = {CAR Hoare},
   title = {Communicating sequential processes},
   publisher = {Prentice Hall},
   year = {1985},
   keywords = {CSP - the book.}
}

@article{Plotkin76,
   author = {GD Plotkin},
   title = {A powerdomain construction},
   journal = {SIAM J Computing},
   volume = {5},
   number = {3},
   month = sep,
   year = {1976}
}

@article{Patterson85,
   author = {David A Patterson},
   title = {Reduced instruction set computers},
   journal = {CACM},
   volume = {28},
   number = {1},
   pages = {8-21},
   month = jan,
   year = {1985},
   keywords = {Excellent review of RISC architectures.}
}

@article{Seitz85,
   author = {Charles L Seitz},
   title = {The cosmic cube},
   journal = {CACM},
   volume = {28},
   number = {1},
   pages = {22-33},
   month = jan,
   year = {1985},
   keywords = {CalTech cube connected MIMD multiprocessor.}
}

@article{Gurd85,
   author = {JR Gurd and CC Kirkham and I Watson},
   title = {The Manchester prototype dataflow computer},
   journal = {CACM},
   volume = {28},
   number = {1},
   pages = {34-52},
   month = jan,
   year = {1985}
}

@book{Sowa84,
   author = {JF Sowa},
   title = {Conceptual structures - information processing in mind and machine},
   publisher = {Addison Wesley},
   year = {1984},
   keywords = {Artificial intelligence, knowledge representation, databases.}
}

@techreport{Robinson84,
   author = {JA Robinson},
   title = {Syracuse University Parallel Expression Reduction - first annual report},
   type = {Syracuse},
   month = dec,
   year = {1984},
   keywords = {SUPER, unification of logic and functional languages, Nubus, Lambda machine.}
}

@techreport{Cardelli85a,
   author = {L Cardelli},
   title = {Amber},
   type = {Bell Labs},
   month = feb,
   year = {1985},
   keywords = {Multiple type inheritance, polymorphism.}
}

@article{Cardelli88,
   author = {L Cardelli},
   title = {A semantics of multiple inheritance},
   journal = {Information and Computation},
   month = feb,
   year = {1988},
   keywords = {Multiple type inheritance, polymorphism, Amber.}
}

@techreport{Reddy85,
   author = {US Reddy},
   title = {Narrowing as the operational semantics of functional languages},
   type = {Dept Comp Sci, Univ of Utah},
   month = mar,
   year = {1985}
}

@incollection{Reddy85a,
   author = {US Reddy},
   editor = {D Degroot and G Lindstrom},
   title = {On the relationship between logic and functional languages},
   booktitle = {Functional and logic programming},
   publisher = {Prentice Hall},
   year = {1985}
}

@incollection{Lindstrom85,
   author = {Gary Lindstrom},
   title = {Functional programming and the logical variable},
   booktitle = {POPL},
   pages = {266-280},
   month = jan,
   year = {1985}
}

@incollection{Cartwright85,
   author = {Robert Cartwright},
   title = {Types as intervals},
   booktitle = {POPL},
   pages = {22-36},
   month = jan,
   year = {1985},
   keywords = {Polymorphism.}
}

@article{Hoare72a,
   author = {CAR Hoare},
   title = {Proof of correctness of data representations},
   journal = {Acta Informatica},
   volume = {1},
   pages = {271-281},
   year = {1972}
}

@article{Meyer85,
   author = {B Meyer},
   title = {On formalism in specification},
   journal = {IEEE Software},
   volume = {2},
   number = {1},
   pages = {6-26},
   month = jan,
   year = {1985},
   note = {Easy reading, good motivational material.}
}

@techreport{Hayes85,
   author = {Ian J Hayes},
   title = {Examples of specification using mathematics},
   type = {PRG, Oxford},
   month = jan,
   year = {1985},
   keywords = {Z.}
}

@incollection{Turner80,
   author = {D A Turner},
   editor = {Neel},
   title = {Functional programming and proofs of progarm correctness},
   booktitle = {Tools and notions for program construction},
   publisher = {CUP},
   year = {1980?},
   keywords = {Program transformation.}
}

@techreport{Darlington85,
   author = {John Darlington and AJ Field and H Pull},
   type = {Imperial College},
   month = feb,
   year = {1985}
}

@incollection{Karr84,
   author = {Michael Karr},
   title = {Code generation by coagulation},
   booktitle = {Proc ACM Symposium on Compiler Construction},
   pages = {1-12},
   year = {1984}
}

@incollection{Burstall84,
   author = {Rod Burstall},
   title = {Programming with modules as typed functional programming},
   booktitle = {Proc Int Conf on Fifth Gen Computing Systems Tokyo},
   month = nov,
   year = {1984},
   keywords = {Pebble.}
}

@techreport{Goguen84,
   author = {JA Goguen and J Meseguer},
   title = {Equality, types, modules and generics for logic programming},
   type = {SRI},
   month = jan,
   year = {1984},
   keywords = {Polymorphic typing, Prolog.}
}

@book{Boyer79,
   author = {Boyer and Moore},
   title = {A computational logic},
   publisher = {Academic Press},
   year = {1979},
   keywords = {The Boyer Moore theorem prover.}
}

@techreport{Gimson84,
   author = {Roger Gimson and Carroll Morgan},
   title = {A reservation service - user manual},
   type = {PRG},
   month = nov,
   year = {1984},
   keywords = {An example of the Z specification language in use.}
}

@techreport{al84b,
   author = {RH Katz et al},
   title = {Implementing a cache consistency protocol},
   type = {Report no UCB/CSD 84/207, Berkeley},
   month = oct,
   year = {1984},
   keywords = {Multiprocessor cache coherence.}
}

@techreport{Austin??,
   author = {Rodney Austin},
   title = {Data update},
   type = {UCL Bulletin.},
   keywords = {Data protection act.}
}

@inproceedings{Wray85,
   author = {Stuart Wray},
   title = {A new strictness detection algorithm},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985},
   note = {Computer Lab, Cambridge.}
}

@techreport{Kieburtz84,
   author = {RB Kieburtz},
   title = {The {G}-machine - a fast graph reduction processor},
   type = {Oregon Graduate Centre},
   year = {1984},
   keywords = {G-machine on a chip set.}
}

@unpublished{Arvind84,
   author = {Arvind and V Kathail and K Pingali},
   title = {Sharing of computation in functional language implementation},
   type = {Draft, MIT},
   month = jul,
   year = {1984}
}

@inproceedings{Cousineau85,
   author = {G Cousineau and PL Curien and M Mauny},
   title = {The categorical abstract machine},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985}
}

@inproceedings{Stoye85,
   author = {William Stoye},
   title = {Director strings on {SKIM}},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985}
}

@techreport{Oolman85,
   author = {H Oolman},
   title = {A user friendly and modular Sasl implementation},
   type = {Univ of Nijmegen},
   month = feb,
   year = {1985}
}

@inproceedings{Keller85d,
   author = {Robert M Keller},
   title = {Distributed graph reduction from first principles},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985},
   keywords = {Block copy.}
}

@techreport{Hudak85,
   author = {Paul Hudak and Lauren Smith},
   title = {Para-functional programming - a paradigm for programming multiprocessor systems},
   type = {YALEU/DCS/RR-390, Yale},
   month = jun,
   year = {1985},
   keywords = {Distributed graph reduction, annotations.}
}

@techreport{Sheeran85,
   author = {Mary Sheeran},
   title = {Designing regular array architectures using higher order functions},
   type = {Chal---mers},
   month = jan,
   year = {1985},
   keywords = {Systolic architectures, muFP.}
}

@techreport{Reinhold84,
   author = {MB Reinhold},
   title = {Object oriented functional programming},
   type = {CIS675B, Dept of Comp Sci, Univ of Pennsylvania},
   month = apr,
   year = {1984},
   keywords = {Type inheritance, Amber, polymorphism.}
}

@inproceedings{Fairbairn85a,
   author = {Jon Fairbairn},
   title = {Removing redundant laziness from supercombinators},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985},
   note = {Computer Lab, Cambridge.}
}

@inproceedings{Kennaway85,
   author = {Richard Kennaway and Ronan Sleep},
   title = {Counting director strings},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985},
   keywords = {Combinators.}
}

@inproceedings{Richards85,
   author = {Ham Richards},
   title = {An overview of the Burroughs {NORMA}},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985},
   keywords = {Reduction machines, condition concentrator, path buffer.}
}

@incollection{Hudak85a,
   author = {Paul Hudak and Benjamin Goldberg},
   title = {Serial combinators - opimal grains of parallelism},
   booktitle = {Proc IFIP Conf on Functional Programming and Computer Architecture, Nancy},
   month = aug,
   year = {1985},
   keywords = {Distributed graph reduction.}
}

@techreport{Hudak85b,
   author = {Paul Hudak and Benjamin Goldberg},
   title = {Distributed execution of functional programs using serial combinators},
   type = {Yale Dept Comp Sci},
   month = may,
   year = {1985},
   keywords = {Gives simulations results for distributed graph reduction.}
}

@inproceedings{Kieburtz85a,
   author = {RB Kieburtz},
   title = {A proposal for interactive debugging of {ML} programs},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985}
}

@inproceedings{Jones85a,
   author = {ND Jones and P Sestoft and H Sondergaard},
   title = {An experiment in partial evaluation - the generation of a compiler generator},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985}
}

@inproceedings{Augustsson85,
   author = {Lennart Augustsson},
   title = {Compiling pattern matching},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985}
}

@incollection{johnsson:g-machine,
   author = {Thomas Johnsson},
   title = {Efficient compilation of lazy evaluation},
   booktitle = {Proc SIGPLAN Symposium on Compiler Construction, Montreal},
   month = jun,
   year = {1984},
   publisher = acm,
   keywords = {The G-machine, functional languages.}
}

@inproceedings{augustsson:g-machine,
   author = {Lennart Augustsson},
   title = {A compiler for lazy {ML}},
   pages = {218-227},
   crossref = "lfp84",
   keywords = {The G-machine.}
}

@inproceedings{Ali85,
   author = {KAM Ali},
   title = {Garbage collection schemes for distributed storage systems},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985}
}

@techreport{Pulkkis84,
   author = {G Pulkkis and A Tereshchatov},
   title = {Computer systems as parts of flexible manufacturing systems},
   type = {C4, Digital Systems Lab, Helsinki Univ of Tech},
   month = nov,
   year = {1984}
}

@techreport{Pulkkis82,
   author = {G Pulkkis},
   title = {On the performance evaluation of multimicropressor systems},
   type = {B20, Digital Systems Lab, Helsinki Univ of Tech},
   month = dec,
   year = {1982},
   keywords = {Bus, shared memory, memory hierachy.}
}

@techreport{Pulkkis84a,
   author = {G Pulkkis},
   title = {On the implementation of recursive computers},
   type = {B27, Digital Systems Lab, Helsinki Univ of Tech},
   month = apr,
   year = {1984}
}

@article{Pulkkis82a,
   author = {G Pulkkis},
   title = {A comparison of some mathematical models of the bus traffic in a single bus multimicroprocessor},
   journal = {Journal of Info Proc and Cybernetics},
   volume = {18},
   pages = {41-55},
   year = {1982}
}

@incollection{Mikkola84,
   author = {L Mikkola and G Pulkkis},
   editor = {Myhrhaug and Wilson},
   title = {On software testing for multimicroprocessor systems},
   booktitle = {Advances in Microprocessing and Microprogramming},
   pages = {55-61},
   publisher = {Elsevier},
   year = {1984}
}

@article{Seitz84,
   author = {CL Seitz},
   title = {Concurrent {VLSI} architectures},
   journal = {IEEE Trans Computers},
   volume = {33},
   number = {12},
   pages = {1247-1265},
   month = dec,
   year = {1984},
   keywords = {Systolic machines, parallel processing, active memory.}
}

@article{Stankovic84,
   author = {JA Stankovic},
   title = {A perspective on distributed computer systems},
   journal = {IEEE Trans Computers},
   volume = {33},
   number = {12},
   pages = {1102-1115},
   month = dec,
   year = {1984},
   keywords = {Operating systems, networks.}
}

@article{Vegdahl84,
   author = {SR Vegdahl},
   title = {A survey of proposed architectures for the execution of functional languages},
   journal = {IEEE Trans Computers},
   volume = {33},
   number = {12},
   pages = {1050-1071},
   month = dec,
   year = {1984},
   keywords = {Computer architecture, data flow, demand driven architectures.},
   note = {Not marvellous.}
}

@techreport{Hudak85c,
   author = {Paul Hudak and Johnathan Young},
   title = {A set theoretic characterisation of function strictness in the lambda calculus},
   type = {YALEU/DCS/RR-391, Dept Comp Sci, Yale},
   month = apr,
   year = {1985},
   keywords = {Strictness analysis}
}

@article{Doran76,
   author = {RW Doran},
   title = {Virtual memory},
   journal = {IEEE Computer},
   pages = {27-37},
   month = oct,
   year = {1976}
}

@misc{Feller??,
   author = {A Feller and HR Kaupp and JJ Digiacomo},
   title = {Crosstalk and reflections in high speed digital systems},
   keywords = {Stripline, microstrip, backplane, bus, isotropic medium.}
}

@misc{Motorola83,
   author = {{Motorola}},
   title = {An architectural contrast - 68000 vs 8086},
   institution = {Motorola},
   month = nov,
   year = {1983}
}

@book{Brooks75,
   author = {F Brooks},
   title = {The mythical man month},
   publisher = {Addison Wesley},
   year = {1975},
   keywords = {software engineering}
}

@inproceedings{hughes:memo,
   author = {John Hughes},
   title = {Lazy memo-functions},
   booktitle = {Proc Aspenas workshop on implementation of functional languages},
   month = feb,
   year = {1985},
   keywords = {Functional languages.}
}

@article{Gemballa82,
   author = {R Gemballa and R Lindner},
   title = {The multiple-write bus technique},
   journal = {IEEE Computer Graphics},
   pages = {33-41},
   month = sep,
   year = {1982},
   keywords = {Basis of Futurebus arbitration sorter, parallel sort.}
}

@techreport{Rol??,
   author = {Rol and Backhouse},
   title = {Algorithm development in Martin-Lof's type theory},
   type = {Dept Comp Sci, Univ of Essex.}
}

@misc{Wadsworth??,
   author = {CP Wadsworth},
   title = {Report on the Iota programming system},
   keywords = {Japan trip report.  Lisp machines, fifth generation.}
}

@misc{Lindsey84,
   author = {CH Lindsey},
   title = {Report on a meeting of {IFIP} 2.1, Los Angeles},
   month = jan,
   year = {1984},
   keywords = {Functional languages as specifications, CIP-L, English Functional Language.  Unification and nondeterminism in functional languages.}
}

@article{Rao78,
   author = {GS Rao},
   title = {Performance analysis of cache memories},
   journal = {JACM},
   volume = {25},
   number = {3},
   pages = {378-395},
   month = jul,
   year = {1978}
}

@article{Hoffman82,
   author = {CH Hoffman and MJ O'Donnell},
   title = {Pattern matching in trees},
   journal = {JACM},
   volume = {29},
   number = {1},
   pages = {68-95},
   month = jan,
   year = {1982},
   keywords = {Matching templates on left hand sides.}
}

@misc{Technology??,
   author = {Imperial Software Technology},
   title = {Industrial applications of functional programming},
   keywords = {Alvey grant applications.  Logic simulator + Jackson System Design.}
}

@incollection{Frank84,
   author = {Frank and Inselberg.},
   title = {Synapse tightly coupled multiprocessors - a new approach to solve old problems},
   booktitle = {National Computer Conf},
   pages = {42-50},
   year = {1984},
   keywords = {Cache coherence.}
}

@article{Georgeff84,
   author = {M Georgeff},
   title = {Transformations and reduction strageties for typed lambda expressions},
   journal = toplas,
   volume = {6},
   number = {4},
   pages = {603-631},
   month = oct,
   year = {1984},
   keywords = {SECD machine with a stacklike environment. Partially applied closures.}
}

@article{Patel82,
   author = {JH Patel},
   title = {Analysis of multiprocessors with private cache memories},
   journal = {IEEE Trans Computers},
   volume = {31},
   number = {4},
   pages = {296-304},
   year = {Apr 1982,}
}

@incollection{Papamarcos84,
   author = {MS Papamarcos and JH Patel},
   title = {A low overhead solution for multiprocessors with private cache memories},
   booktitle = {Proc ACM Conf on Computer Architecture},
   pages = {348-354},
   year = {1984}
}

@incollection{Archibald84,
   author = {J Archibald and JL Baer},
   title = {An economical solution to the cache coherence problem},
   booktitle = {Proc ACM Conf on Computer Architecture},
   pages = {355-362},
   year = {1984},
   keywords = {Multiprocessors.}
}

@incollection{Rudolph84,
   author = {L Rudolph and Z Segall},
   title = {Dynamic decentralised cache schemes for {MIMD} parallel processors},
   booktitle = {Proc ACM Conf on Computer Architecture},
   pages = {340-347},
   year = {1984},
   keywords = {Multiprocessors.}
}

@techreport{DEC??,
   author = {{DEC}},
   title = {Overall organisation of a cache system},
   institution = {DEC},
   type = {Some DEC manual.}
}

@techreport{Wadler84a,
   author = {PL Wadler},
   title = {The prisoner's dilemma and the prisoner's tourney},
   type = {PRG},
   month = nov,
   year = {1984}
}

@article{Hikita84,
   author = {Teruo Hikita},
   title = {On the average  size of Turner's translation to combinator programs},
   journal = {Journal of Info Proc},
   volume = {7},
   number = {3},
   pages = {164-169},
   year = {1984}
}

@article{MacGregor84,
   author = {D MacGregor and D Mothersole and B Moyer},
   title = {The Motorola 68020},
   journal = {IEEE Micro},
   volume = {4},
   number = {4},
   pages = {101-118},
   month = aug,
   year = {1984},
   keywords = {Has an instruction cache.}
}

@article{Taub84,
   author = {DM Taub},
   title = {Arbitration and control acquisition in the proposed {IEEE} 896 Futurebus},
   journal = {IEEE Micro},
   volume = {4},
   number = {4},
   pages = {28-41},
   month = aug,
   year = {1984},
   keywords = {Distributed bus arbiters.}
}

@article{Taub87,
   author = {DM Taub},
   title = {Improved control acquisition scheme for the {IEEE} 896 Futurebus},
   journal = {IEEE Micro},
   pages = {52-62},
   month = jun,
   year = {1987},
   keywords = {Distributed bus arbiters.}
}

@article{Balakrishnan84,
   author = {RV Balakrishnan},
   title = {The proposed {IEEE} 896 Futurebus - a solution to the bus driving problem},
   journal = {IEEE Micro},
   volume = {4},
   number = {4},
   pages = {23-27},
   month = aug,
   year = {1984},
   keywords = {Drivers, glitches, bus impedence.}
}

@article{Gustavson84,
   author = {DB Gustavson},
   title = {Computer buses - a tutorial},
   journal = {IEEE Micro},
   volume = {4},
   number = {4},
   pages = {7-22},
   month = aug,
   year = {1984}
}

@article{Cody84,
   author = {WJ Cody and et al},
   title = {A proposed radix- and word-length independent standard for floating point arithmetic},
   journal = {IEEE Micro},
   volume = {4},
   number = {4},
   pages = {86-100},
   month = aug,
   year = {1984},
   keywords = {An implementation guide to the IEEE floating point standard.}
}

@article{Borrill84,
   author = {Paul Borrill and John Theus},
   title = {An advanced communication protocol for the proposed {IEEE} 896 Futurebus},
   journal = {IEEE Micro},
   volume = {4},
   number = {4},
   pages = {42-56},
   month = aug,
   year = {1984},
   keywords = {Asynchronous bus.}
}

@techreport{Stucki79,
   author = {MJ Stucki and JR Cox},
   title = {Synchronisation strategies},
   type = {WUCS-79-1, Dept Comp Sci, Washington University},
   month = apr,
   year = {1979},
   keywords = {Metastability, arbitration.}
}

@article{Gustavson83,
   author = {DB Gustavson and J Theus},
   title = {Wire-or logic on transmission lines},
   journal = {IEEE Micro},
   volume = {3},
   number = {3},
   pages = {51-55},
   month = jun,
   year = {1983},
   keywords = {Glitches on wire-or buses.}
}

@techreport{Wise84,
   author = {David Wise},
   title = {A powerdomain semantics for indeterminism},
   type = {Dept Comp Sci, Indiana Univ},
   month = jan,
   year = {1984},
   keywords = {Nondeterminism.}
}

@incollection{Meertens??,
   author = {L Meertens},
   editor = {de Bakker et al},
   title = {Algorithmics - towards programming as a mathematical activity},
   booktitle = {Mathematics and Computer Science},
   publisher = {CWI Monographs Vol 1, North Holland.},
   keywords = {Program transformation, specifications as programs, rather FPish.}
}

@incollection{Backus81,
   author = {John Backus},
   editor = {de Bakker and van Vliet},
   title = {Is computer science based on the wrong fundamental concept of 'program'?  An extended concept},
   booktitle = {Algorithmic Languages},
   pages = {133-165},
   publisher = {IFIP, North Holland},
   year = {1981},
   keywords = {Input-output transformation instead of store manipulation. FPish.}
}

@techreport{Hughes84a,
   author = {John Hughes},
   title = {A distributed garbage collection algorithm},
   type = {Chal---mers Inst, Gotegorg},
   month = dec,
   year = {1984},
   keywords = {Uses timestamps.  Non-shared memory.}
}

@article{Smith84,
   author = {Frank Smith},
   title = {Myths of writing},
   journal = {IEEE Trans Professional Communication,},
   volume = {27},
   number = {2},
   pages = {101-104},
   month = jun,
   year = {1984},
   keywords = {How to write.}
}

@techreport{Milner84,
   author = {Robin Milner},
   title = {The standard {ML} core language},
   type = {University of Edinburgh},
   month = oct,
   year = {1984}
}

@article{robinson:unification,
   author = {JA Robinson},
   title = {A machine-oriented logic based on the resolution principle.},
   journal = {JACM},
   volume = {12},
   number = {1},
   pages = {23-41},
   month = jan,
   year = {1965},
   keywords = {The original paper. Unification.}
}

@incollection{Cohen82,
   editor = {PR Cohen and EA Feigenbaum},
   title = {The Boyer-Moore theorem prover},
   booktitle = {The Handbood of Artificial Intelligence Vol 3,},
   pages = {102-113},
   publisher = {Heuristech Press},
   year = {1982},
   keywords = {The BMTP actually proves things about functional programs.}
}

@article{al83a,
   author = {A Gottlieb et al},
   title = {The {NYU} Ultracomputer - designing a {MIMD} shared memory parallel computer},
   journal = {IEEE Trans Computers},
   volume = {32},
   number = {2},
   pages = {175-189},
   month = feb,
   year = {1983},
   keywords = {Processor-memory connection network is main feature.}
}

@article{cardelli:type-inference,
   author = {Luca Cardelli},
   title = {Basic polymorphic typechecking},
   journal = {Polymorphism},
   volume = {2},
   number = {1},
   month = jan,
   year = {1985},
   keywords = {Pragmatics of polymorphic type checking.}
}

@article{Paulson85a,
   author = {Lawrence Paulson},
   title = {Annotated bibliography on {LCF}},
   journal = {Polymorphism},
   volume = {2},
   number = {1},
   month = jan,
   year = {1985}
}

@article{Milner83,
   author = {Robin Milner},
   title = {How {ML} evolved},
   journal = {Polymorphism},
   volume = {1},
   number = {1},
   month = jan,
   year = {1983}
}

@article{Sethi83a,
   author = {Ravi Sethi},
   title = {Unambiguous syntax for {ML}},
   journal = {Polymorphism},
   volume = {1},
   number = {1},
   month = jan,
   year = {1983}
}

@article{Cardelli83,
   author = {Luca Cardelli},
   title = {The functional abstract machine},
   journal = {Polymorphism},
   volume = {1},
   number = {1},
   month = jan,
   year = {1983},
   keywords = {FAM, SECD, closures.}
}

@article{Owen84,
   author = {Kenneth Owen},
   title = {Focus on fifth generation architecture},
   journal = {Alvey News},
   number = {6},
   pages = {12-15},
   month = aug,
   year = {1984},
   keywords = {Declarative systems architecture a separate area, simulation important, Warwick workshop writeup.}
}

@article{Gunn84,
   author = {HIE Gunn and DM Harland},
   title = {Polymorphic programming {II}.  An orthogonal tagged high level architecture abstract machine},
   journal = {Software Practice and Experience},
   volume = {14},
   number = {11},
   pages = {1021-1046},
   month = nov,
   year = {1984},
   keywords = {Type checking, higher order functions.}
}

@article{al84c,
   author = {M Spenke et al},
   title = {A language independent error recovery for LL1 parsers},
   journal = {Software Practice and Experience},
   volume = {14},
   number = {11},
   pages = {1095-1107},
   month = nov,
   year = {1984},
   keywords = {Yacc, parser generator.}
}

@article{Tison71,
   author = {PL Tison},
   title = {An algebra for logic systems - switching circuits application},
   journal = {IEEE Trans Computers 20},
   pages = {339-351},
   month = mar,
   year = {1971},
   keywords = {Maybe something to do with strictness truth tables.}
}

@techreport{Abramsky82a,
   author = {Samson Abramsky},
   title = {A simple proof theory for non deterministic recursive programs},
   type = {Queen Mary College},
   month = mar,
   year = {1982},
   keywords = {Non determinism, referential transparency, oracles.}
}

@inproceedings{Johnsson85,
   author = {Thomas Johnsson},
   editor = {Jouannaud},
   title = {Lambda lifting: transforming programs to recursive equations},
   booktitle = {Proc IFIP Conference on Functional Programming and Computer Architecture},
   pages = {190-205},
   publisher = {LNCS 201, Springer Verlag},
   year = {1985},
   keywords = {Related to supercombinators.}
}

@article{Hickey84,
   author = {T Hickey and J Cohen},
   title = {Performance analysis of on the fly garbage collection},
   journal = {CACM},
   volume = {27},
   number = {11},
   pages = {1143-1154},
   month = nov,
   year = {1984},
   keywords = {Baker gc, mainly theoretical.}
}

@phdthesis{Clarke84,
   author = {TJW Clarke},
   title = {A preliminary study of fast hardware support for combinator reduction},
   type = {Diploma Dissertation},
   number = {Cambridge},
   month = jul,
   year = {1984},
   keywords = {Memory bandwidth, caches, reference  counting.}
}

@book{al83b,
   author = {B Buchberger et al},
   title = {Computer algebra - symbolic and algebraic computation},
   publisher = {Springer},
   month = {Verlag},
   year = {1983},
   keywords = {The nearest there is to a text.}
}

@article{Noshita85a,
   author = {K Noshita and Teruo Hikita},
   title = {The {BC} chain method for representing combinators in linear space},
   journal = {New Generation Computing},
   volume = {3},
   pages = {131-144},
   year = {1985}
}

@article{Trakhtenbrot84,
   author = {MB Trakhtenbrot},
   title = {Some equivalent transformations of recursive programs based on their schematic properties},
   journal = {Info Proc Lett},
   volume = {18},
   number = {5},
   pages = {275-284},
   month = jun,
   year = {1984},
   keywords = {Program transformation; might just have something to do with strictness analysis.}
}

@article{Garcia-Molina84,
   author = {H Garcia-Molina and RJ Lipton and J Valdes},
   title = {A massive memory machine},
   journal = {IEEE Trans Computers},
   volume = {33},
   number = {5},
   pages = {391-399},
   month = may,
   year = {1984},
   keywords = {Caches, computer architecture, multiprocessor.}
}

@article{Goguen??a,
   author = {JA Goguen and RM Burstall},
   title = {Some fundamental algebraic tools for the semantics of computation},
   journal = {Theoretical Computer Science 31(1,2)},
   volume = {31},
   number = {3},
   pages = {175-209 263-295},
   keywords = {Category theory, CLEAR, theories.}
}

@book{Lala84,
   author = {PK Lala},
   title = {Fault tolerant and fault testable hardware design},
   publisher = {Prentice Hall International},
   year = {1984},
   keywords = {Self checking logic, testability.}
}

@article{Hood81,
   author = {R Hood and R Melville},
   title = {Real time queue operations in pure Lisp},
   journal = {Info Proc Letters},
   volume = {13},
   number = {2},
   pages = {50-53},
   month = nov,
   year = {1981},
   keywords = {In functional Lisp.}
}

@techreport{Stoye84,
   author = {William Stoye},
   title = {A new scheme for writing functional operating systems},
   type = {TR 56, Computer Lab, Univ of Cambridge},
   month = oct,
   year = {1984},
   keywords = {Nondeterminism, merge.}
}

@book{Buchburger83,
   editor = {Buchburger},
   title = {Computer algebra},
   publisher = {2nd edn, Springer Verlag},
   year = {1983}
}

@article{Oppen80,
   author = {Derek C Oppen},
   title = {Prettyprinting},
   journal = toplas,
   volume = {2},
   number = {4},
   pages = {465-483},
   month = oct,
   year = {1980}
}

@article{Aberth84,
   author = {O Aberth},
   title = {Precise scientific computation with a microprocessor},
   journal = {IEEE Trans Computers},
   volume = {33},
   number = {8},
   pages = {685-690},
   month = aug,
   year = {1984},
   keywords = {Computer arithmetic.}
}

@article{hughes:why-fp-matters,
   author = {John Hughes},
   title = {Why functional programming matters},
   journal = {The Computer Journal},
   volume = {32},
   number = {2},
   pages = {98-107},
   month = apr,
   year = {1989},
   keywords = {Higher order functions, numerical algorithms, alpha-beta heuristic.}
}

@techreport{Hughes84b,
   author = {John Hughes},
   title = {From formal specification to functional program - a regular expresssion matcher},
   type = {PMG-39, Programming Methodology Group, Chal---mers Inst, Sweden},
   month = oct,
   year = {1984}
}

@techreport{Hughes84c,
   author = {RJM Hughes},
   title = {A novel representation of lists and its application to the function 'Reverse'},
   type = {PMG-38, Programming Methodology Group, Chal---mers Inst, Sweden},
   month = oct,
   year = {1984}
}

@techreport{Jones84,
   author = {Simon B Jones},
   title = {A range of operating systems written in a purely functional style},
   type = {TR 16, Department of Computer Science, University of Stirling},
   month = sep,
   year = {1984},
   keywords = {Lispkit, nondeterminism, merge, Companion to "Abstract machine support for purely functional operating systems"}
}

@book{Scott85,
   author = {NR Scott},
   title = {Computer number systems and arithmetic},
   publisher = {Prentice Hall},
   year = {1985},
   keywords = {Expensive (41 pounds).}
}

@article{Taylor84,
   author = {FJ Taylor},
   title = {Residue arithmetic - a tutorial with examples},
   journal = {IEEE Computer},
   volume = {17},
   number = {5},
   pages = {50-63},
   month = may,
   year = {1984}
}

@article{Korach84,
   author = {E Korach and D Rotem and N Santoro},
   title = {Distributed algorithms for finding centers and medians in networks},
   journal = toplas,
   volume = {6},
   number = {3},
   pages = {380-402},
   month = jul,
   year = {1984},
   keywords = {Graph algorithms.}
}

@article{Gallager83,
   author = {RG Gallager and PA Humblet and PM Spira},
   title = {A distributed algorithm for minimum weight spanning trees},
   journal = toplas,
   volume = {5},
   number = {1},
   pages = {66-77},
   month = jan,
   year = {1983},
   keywords = {Graph algorithms.}
}

@article{Keller84,
   author = {RM Keller and FCH Lin},
   title = {Simulated performance of a reduction based multiprocessor},
   journal = {IEEE Computer},
   volume = {17},
   number = {7},
   pages = {70-82},
   month = jul,
   year = {1984},
   keywords = {Parallel reduction, dataflow, rediflow, network.}
}

@article{Hoare81,
   author = {CAR Hoare},
   title = {The emperor's old clothes},
   journal = {CACM},
   volume = {24},
   number = {2},
   pages = {75-83},
   month = feb,
   year = {1981}
}

@misc{Anonymous80,
   key = {Anonymous80},
   year = {1980 Turing award lecture.},
   keywords = {Tony's experiences in design, implementation and standardisation of languages, and warnings about ADA.  Project time slip.}
}

@article{Becker84,
   author = {RA Becker and JM Chambers},
   title = {Design of the {S} System for data analysis},
   journal = {CACM},
   volume = {27},
   number = {5},
   pages = {486-495},
   month = may,
   year = {1984},
   keywords = {Spreadsheet, logging, graphics, Lotus.}
}

@article{Fateman82,
   author = {RJ Fateman},
   title = {{HLL} implications of proposed {IEEE} floating point standard},
   journal = toplas,
   volume = {4},
   number = {2},
   pages = {239-257},
   month = apr,
   year = {1982},
   keywords = {Arithmetic.}
}

@article{Andrews82,
   author = {M Andrews},
   title = {Mathematical microprocessor software - a sqrt(x) comparison},
   journal = {IEEE Micro},
   volume = {2},
   number = {2},
   pages = {63-79},
   month = may,
   year = {1982},
   keywords = {Gives 5 good sqrt(x) algorithms.  Arithmetic.}
}

@article{Wetherall82,
   author = {CS Wetherall},
   title = {Error data values in the data flow language {VAL}},
   journal = toplas,
   volume = {4},
   number = {2},
   pages = {226-238},
   month = apr,
   year = {1982},
   keywords = {Exceptions.}
}

@article{Anonymous80a,
   key = {Anonymous80a},
   title = {Supersystems for the 80's},
   journal = {IEEE Computer},
   volume = {13},
   number = {11},
   month = nov,
   year = {1980},
   keywords = {Supercomputers.}
}

@article{Swartzlander82,
   author = {E Swartzlander and B Gilbert},
   title = {Supersystems - technology and architecture},
   journal = {IEEE Trans Computing},
   volume = {31},
   number = {5},
   pages = {399-409},
   month = may,
   year = {1982},
   keywords = {Complexity of connection networks. Supercomputers.}
}

@article{Anonymous82,
   key = {Anonymous82},
   journal = {IEEE Trans Computing},
   volume = {31},
   number = {5},
   month = may,
   year = {1982},
   keywords = {Special issue on supercomputers.}
}

@article{al82b,
   author = {P Civera et al},
   title = {The mu* project - an experience with a multi microprocessor system},
   journal = {IEEE Micro},
   volume = {2},
   number = {2},
   pages = {38-50},
   month = may,
   year = {1982}
}

@article{al82c,
   author = {P Treleaven et al},
   title = {Data driven and demand driven computer architecture},
   journal = {ACM Computing Surveys},
   volume = {14},
   number = {1},
   month = mar,
   year = {1982},
   keywords = {Data flow, reduction machines.}
}

@article{Fairclough82,
   author = {DA Fairclough},
   title = {A unique microprocessor instruction set},
   journal = {IEEE Micro},
   volume = {2},
   number = {2},
   pages = {8-18},
   month = may,
   year = {1982},
   keywords = {Instruction set design.}
}

@article{Stamos84,
   author = {JW Stamos},
   title = {Static grouping of small objects to enhance performance of a paged virtual memory},
   journal = {ACM TOCS},
   volume = {2},
   number = {2},
   pages = {155-180},
   month = may,
   year = {1984},
   keywords = {Smalltalk, garbage collection.}
}

@article{Ben-Ari84,
   author = {M Ben-Ari},
   title = {Algorithms for on-the-fly garbage collection},
   journal = toplas,
   volume = {6},
   number = {3},
   pages = {333-344},
   month = jul,
   year = {1984},
   keywords = {Mutator-collector version.}
}

@article{Anonymous84a,
   key = {Anonymous84a},
   journal = {IEEE Computer},
   month = sep,
   year = {1984},
   keywords = {Expert systems, artificial intelligence, man machine interface.}
}

@article{Anonymous84b,
   key = {Anonymous84b},
   journal = {IEEE Computer},
   month = aug,
   year = {1984},
   keywords = {Special issue: fault tolerant computing.}
}

@article{Johnson84,
   author = {D Johnson},
   title = {The Intel 432 - a {VLSI} architecture for fault tolerant computer systems},
   journal = {IEEE Computer},
   pages = {40-48},
   month = aug,
   year = {1984}
}

@techreport{Cockshott83,
   author = {WP Cockshott.},
   title = {Orthogonal persistence - an abstract representation of persistent storage in Algol-like languages},
   type = {CST-21-83, Dept Comp Sci, Univ of Edinburgh},
   year = {1983}
}

@article{Ward84,
   author = {RK Ward and M Tabandeh},
   title = {Error correction and detection, a geometric approach},
   journal = {Computer Hjournal},
   volume = {27},
   number = {3},
   pages = {246-253},
   month = aug,
   year = {1984}
}

@article{Anonymous83a,
   key = {Anonymous83a},
   journal = {Software Practice and Experience},
   month = jun,
   year = {1983},
   keywords = {Articles on space filling curves (functional).}
}

@article{Chapman84,
   author = {Nigel Chapman},
   title = {{LALR}(1,1) parser generation for regular right part grammars},
   journal = {Acta Informatica 21},
   pages = {29-45},
   year = {1984}
}

@article{Atkinson83,
   author = {M Atkinson and K Chisholm and P Cockshott and R Marshall},
   title = {Algorithms for a persistent heap},
   journal = {Software Practice and Experience 13},
   pages = {259-271},
   year = {1983},
   keywords = {Garbage collection.}
}

@incollection{Brooks82,
   author = {RA Brooks and RP Gabriel and GL Steele},
   title = {An optimizing compiler for lexically scoped Lisp},
   booktitle = {Proc ACM Symposium on Compiler Construction, Boston},
   pages = {261-275},
   month = jun,
   year = {1982}
}

@book{Alefeld83,
   author = {G Alefeld and J Herzberger},
   title = {Introduction to interval computation},
   publisher = {Academic Press},
   year = {1983},
   keywords = {Arithmetic, numerical analysis.}
}

@book{Moore66,
   author = {RE Moore},
   title = {Interval analysis},
   publisher = {Prentice Hall},
   year = {1966},
   keywords = {Arithmetic, numerical analysis.}
}

@book{Winston84,
   author = {Patrick H Winston},
   title = {Artifical intelligence},
   publisher = {Addison Wesley, 2nd ed},
   year = {1984},
   keywords = {V good.}
}

@article{Malone83,
   author = {JR Malone},
   title = {Implementation of a retrospective tracing facility},
   journal = {Software Practice and Experience},
   volume = {13},
   number = {9},
   pages = {791-796},
   month = sep,
   year = {1983},
   keywords = {Debugging, small mods to compiler for big results.}
}

@book{Weiss84,
   author = {SM Weiss and CA Kulikowski},
   title = {A practical guide to designing expert systems},
   publisher = {Rowman and Littlefield},
   year = {1984}
}

@book{Cavanaugh84,
   author = {JJF Cavanaugh},
   title = {Digital computer arithmetic},
   publisher = {McGraw Hill},
   year = {1984}
}

@techreport{Fairbairn84,
   author = {Jon Fairbairn},
   title = {A new type checker for a functional language},
   type = {Submitted to Science of Computer Programming},
   month = aug,
   year = {1984},
   keywords = {Ponder, polymorphic typing.}
}

@techreport{Mandil73,
   author = {SM Mandil},
   title = {The {MP}/3 macro processor},
   type = {UKSC 0044, IBM Peterlee},
   month = dec,
   year = {1973}
}

@techreport{Brodlie72,
   author = {KW Brodlie},
   title = {A new method for unconstrained minimization without evaluating derivatives},
   type = {UKCS 0019, IBM Peterlee},
   year = {1972(?).}
}

@misc{Semiconductor83,
   author = {National Semiconductor},
   title = {The benefits of demand paged virtual memory},
   month = aug,
   year = {1983},
   keywords = {NS16000.}
}

@misc{Semiconductor83a,
   author = {National Semiconductor},
   title = {Introduction to the NS16000 architecture},
   month = jan,
   year = {1983}
}

@misc{Semiconductor83b,
   author = {National Semiconductor},
   title = {The Genix operating system summary},
   month = nov,
   year = {1983},
   keywords = {NS16000.}
}

@techreport{Milner75,
   author = {R Milner and L Morris and M Newey},
   title = {A logic for computable functions with reflexive and polymorphic types},
   type = {LCF Report 1, Dept Comp Sci, Univ of Edinburgh},
   month = jan,
   year = {1975}
}

@techreport{Gordon77,
   author = {M Gordon and R Milner and L Morris and M Newey and C Wadsworth},
   title = {A metalanguage for interactive proof in {LCF}},
   type = {CSR-16-77, Dept Comp Sci, Univ of Edinburgh},
   month = sep,
   year = {1977}
}

@techreport{Ackerman??,
   author = {WB Ackerman},
   title = {Efficient implementation of applicative languages},
   type = {MIT Comp Sci Lab,},
   number = {TR-323.},
   keywords = {Data flow, arrays, functional languages.}
}

@unpublished{Glaser??,
   author = {Hugh Glaser and P thompson},
   title = {Lazy garbage collection},
   type = {Draft paper, Kings College London.},
   keywords = {Reference counting with deferred dereferencing.}
}

@techreport{Warren77,
   author = {David Warren},
   title = {Implementing Prolog},
   type = {Edinburgh DAI Reports 39 and},
   number = {40},
   month = may,
   year = {1977}
}

@techreport{Warren80,
   author = {David Warren},
   title = {An improved Prolog implementation which optimises tail recursion},
   type = {Edinburgh DAI Research Paper},
   number = {141},
   month = jul,
   year = {1980}
}

@techreport{Mellish80,
   author = {CS Mellish.},
   title = {An alternative to structure-sharing in the implementation of a Prolog interpreter},
   type = {Edinburgh DAI Research Paper},
   number = {150},
   year = {1980}
}

@techreport{Borning79,
   author = {Alan Borning},
   title = {Thinglab - a constraint oriented simulation laboratory},
   type = {Xerox PARC},
   number = {SSL-79-3},
   month = jul,
   year = {1979},
   keywords = {Object oriented programming, Smalltalk.}
}

@techreport{Oberhauser84,
   author = {HG Oberhauser and R Wilhelm},
   title = {Flow analysis in combinator implementations of functional programming languages},
   type = {Universitat des Saarlandes},
   month = feb,
   year = {1984},
   keywords = {Strictness analysis.}
}

@techreport{Hughes84d,
   author = {JW Hughes and MS Powell},
   title = {Program development using an abstract data store},
   type = {UMIST},
   month = aug,
   year = {1984},
   keywords = {Persistent data, data types.}
}

@techreport{Monk84,
   author = {LG Monk},
   title = {Theorem provers for specification systems},
   type = {Mitre Corp},
   number = {MTR9211},
   month = jan,
   year = {1984},
   keywords = {Unification, combinators.}
}

@techreport{Halpern84,
   author = {CD Halpern},
   title = {An implementation of 2-Lisp},
   type = {Dept Comp Sci, Univ of Indiana, TR},
   number = {160},
   month = jun,
   year = {1984},
   keywords = {Reflection.}
}

@inproceedings{haynes:engines,
   author = {CT Haynes and DP Friedman},
   title = {Engines build process abstractions},
   booktitle = {Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming},
   year = {1984},
   keywords = {Continuations, functional operating systems}
}

@techreport{Kohlbecker84,
   author = {E Kohlbecker},
   title = {eu-Prolog},
   type = {Dept Comp Sci, Univ of Indiana, TR},
   number = {155},
   month = apr,
   year = {1984}
}

@incollection{Friedman84,
   author = {DP Friedman and CT Haynes and E Kohlbecker},
   editor = {Pepper},
   title = {Programming with continuations},
   booktitle = {Program transformation and programming environments},
   pages = {263-274},
   publisher = {Springer},
   year = {1984}
}

@techreport{Friedman84a,
   author = {DP Friedman and CT Haynes and E Kohlbecker and M Wand},
   title = {Scheme 84 reference manual, version 0.5},
   type = {Dept Comp Sci, Univ of Indiana},
   month = may,
   year = {1984},
   keywords = {Lisp.}
}

@techreport{Friedman84b,
   author = {DP Friedman and CT Haynes and M Wand},
   title = {Continuations and coroutines},
   type = {Dept Comp Sci, Univ of Indiana, TR},
   number = {158},
   month = jun,
   year = {1984}
}

@article{Wise77,
   author = {DS Wise and DP Friedman},
   title = {The one-bit reference count},
   journal = {BIT},
   volume = {17},
   number = {3},
   pages = {351-359},
   year = {1977},
   keywords = {Garbage collection.}
}

@techreport{Wise83,
   author = {DS Wise},
   title = {Representing matrices as quadtrees for parallel processors},
   type = {Dept Comp Sci, Oregon State Univ},
   month = {Fall},
   year = {1983},
   keywords = {Nice functional programming application.}
}

@techreport{Cripps83,
   author = {MD Cripps and AJ Field},
   title = {An asynchronous structure-independent switching system with system-level fault tolerance},
   type = {Imperial College London},
   year = {1983},
   keywords = {March Hare switching chip, delta networks, processor-memory switch.}
}

@techreport{group84,
   author = {Alvey architecture strategy group},
   title = {Guidelines for Alvey architecture strategy - interim report},
   type = {Alvey},
   month = jun,
   year = {1984}
}

@techreport{Roberts84,
   author = {JD Roberts},
   title = {The construction and transformation of collections of communicating sequential processes that represent pipeline configurations},
   type = {Comp Sci Dept, Univ. of Reading},
   month = jul,
   year = {1984},
   keywords = {CSP, Occam, parallelism.}
}

@phdthesis{Brownbridge84,
   author = {David R Brownbridge},
   title = {Recursive structures in computer systems},
   type = {Ph.{D}. Thesis},
   number = {Univ of Newcastle},
   year = {1984},
   keywords = {Reference counting garbage collection which recovers loops.}
}

@incollection{Owicki81,
   author = {Susan Owicki},
   title = {Making the world safe for garbage collection},
   booktitle = {ACM POPL},
   month = jan,
   year = {1981},
   keywords = {Specification of storage manager.}
}

@incollection{Newman82,
   author = {IA Newman},
   title = {Alternative approaches to multiprocessor garbage collection},
   booktitle = {IEEE ICP},
   pages = {205-210},
   month = {P},
   year = {1982}
}

@article{Abdali76,
   author = {SK Abdali},
   title = {An abstraction algorithm for combinatory logic},
   journal = {Journal of Symbolic Logic},
   volume = {41},
   number = {1},
   pages = {222-224},
   month = mar,
   year = {1976},
   keywords = {Indexed combinators.}
}

@incollection{Leivant83,
   author = {Daniel Leivant},
   title = {Polymorphic type inference},
   booktitle = {ACM POPL},
   pages = {88-98},
   month = jan,
   year = {1983}
}

@incollection{Raoult83,
   author = {JC Raoult and R Sethi},
   title = {The global storage needs of a subcomputation},
   booktitle = {ACM POPL},
   pages = {148-157},
   month = jan,
   year = {1983},
   keywords = {Pebbling, updating arrays.}
}

@incollection{Johnson84a,
   author = {Steven D Johnson},
   title = {Applicative programming and digital design},
   booktitle = {ACM POPL},
   pages = {218-227},
   month = jan,
   year = {1984}
}

@incollection{Wand84,
   author = {Mitchell Wand},
   title = {A types-as-sets semantic for Milner-style polymorphism},
   booktitle = {ACM POPL},
   pages = {158-164},
   month = jan,
   year = {1984}
}

@incollection{MacQueen84,
   author = {David MacQueen and Gordon Plotkin and Ravi Sethi},
   title = {An ideal model for recursive polymorphic types},
   booktitle = {ACM POPL},
   pages = {165-174},
   month = jan,
   year = {1984}
}

@incollection{Mitchell84,
   author = {JC Mitchell},
   title = {Coercion and type inference},
   booktitle = {ACM POPL},
   pages = {175-185},
   month = jan,
   year = {1984},
   keywords = {Polymorphism.}
}

@article{Mitchell88,
   author = {John C. Mitchell},
   title = {Polymorphic type inference and containment},
   journal = {Inf. Comput.},
   volume = 76,
   number = {2-3},
   year = 1988,
   issn = {0890-5401},
   pages = {211--249},
   doi = {http://dx.doi.org/10.1016/0890-5401(88)90009-0},
   publisher = {Academic Press, Inc.},
   address = {Duluth, MN, USA},
   keywords = {Polymorphism, containment relation.}
}


@techreport{Traub84,
   author = {KR Traub},
   title = {An abstract architecture for parallel graph reduction},
   type = {MIT Comp Sci Lab,},
   number = {TR-317},
   month = may,
   year = {1984},
   keywords = {Distributed systems.}
}

@incollection{Turner85b,
   author = {D A Turner},
   editor = {CAR Hoare and JC Shepherdson},
   title = {Functional programs as executable specifications},
   booktitle = {Mathematical logic and programming languages"},
   pages = {29-54},
   publisher = {Prentice Hall},
   year = {1985}
}

@article{Clenshaw84,
   author = {CW Clenshaw and FWJ Olver},
   title = {Beyond floating point},
   journal = {JACM},
   volume = {31},
   number = {2},
   pages = {319-328},
   month = apr,
   year = {1984},
   keywords = {Arbitrary precision arithmetic, error analysis, overflow.}
}

@article{Smyth78,
   author = {MB Smyth},
   title = {Power domains},
   journal = {JCSS},
   volume = {16},
   pages = {23-36},
   year = {1978}
}

@techreport{Kung77,
   author = {HT Kung and SW Wong},
   title = {An efficient parallel garbage collection system, and its correctness proof},
   type = {Dept of Comp Sci, Carnegie-Mellen Univ},
   month = sep,
   year = {1977}
}

@techreport{Barrow83,
   author = {Harry G Barrow},
   title = {{VERIFY} - a program for proving correctness of digital hardware design},
   type = {Fairchild Lab for AI Research},
   month = nov,
   year = {1983}
}

@article{Gosper84,
   author = {RW Gosper},
   title = {Exploiting regularities in large cellular spaces},
   journal = {Physica D, 10D},
   pages = {75-80},
   month = jan,
   year = {1984},
   keywords = {Efficient algorithms for Life.}
}

@techreport{Arvind84a,
   author = {Arvind and V Kathail and K Pingali},
   title = {Sharing of computation in functional language implementations},
   type = {Lab for Comp Sci, MIT},
   year = {1984}
}

@techreport{Hudak84,
   author = {Paul Hudak},
   title = {{ALFL} reference manual and programmer's guide},
   type = {YALEU/DCS/TR-322, Dept of Comp Sci, Yale},
   month = jul,
   year = {1984},
   keywords = {ALFL is a functional language.}
}

@techreport{hudak:daps,
   author = {Paul Hudak},
   title = {Distributed applicative processing systems - project goals, motivation and status report},
   type = {YALEU/DCS/TR-317, Computer Science Department},
   institution = "Yale University",
   month = may,
   year = {1984}
}

@techreport{Hudak83,
   author = {Paul Hudak},
   title = {Distributed graph marking},
   type = {Comp Sci Dept, Yale, Research report},
   number = {268},
   month = jan,
   year = {1983},
   keywords = {Garbage collection.}
}

@incollection{Hudak82,
   author = {Paul Hudak and Robert M Keller},
   title = {Garbage collection and task deletion in distributed applicative processing systems},
   booktitle = {Proc ACM Symposium on Lisp and functional programming},
   pages = {168-178},
   year = {1982}
}

@incollection{Hudak83a,
   author = {Paul Hudak},
   editor = {NA Lynch et al},
   title = {Distributed task and memory management},
   booktitle = {Symposium on Principles of Distributed Computing},
   pages = {277-289},
   publisher = {ACM},
   month = aug,
   year = {1983},
   keywords = {Garbage collection, speculative, conservative parallelism.}
}

@techreport{Hudak84b,
   author = {Paul Hudak and Adrienne Bloss},
   title = {Avoiding copying in functional and logic programming languages},
   type = {Comp Sci Dept, Yale},
   year = {1984}
}

@techreport{Hudak83b,
   author = {Paul Hudak},
   title = {{DAPS} - systems support for {AI}},
   type = {Comp Sci Dept, Yale},
   month = nov,
   year = {1983}
}

@techreport{Hudak83c,
   author = {Paul Hudak and C Riesbeck},
   title = {Distributed applicative processing systems},
   type = {Comp Sci Dept, Yale},
   month = dec,
   year = {1983}
}

@incollection{Rees82,
   author = {JA Rees and NI Adams},
   title = {T - a dialect of Lisp},
   booktitle = {ACM Symposium on Lisp and functional programming},
   year = {1982}
}

@incollection{Hoffmann83,
   author = {CM Hoffmann and MJ O'Donnell},
   title = {Implementation of an interpreter for abstract equations},
   booktitle = {10th ACM POPL},
   pages = {111-121},
   month = jan,
   year = {1983},
   keywords = {Functional languages, recursion equations, pattern matching (s4), parsing and prettyprinting (p116), hashing cons (p117), no distinction between functions and constructors.}
}

@inproceedings{Danforth83,
   author = {Scott Danforth},
   title = {{DOT} - a distributed operating system model of a tree-structured multiprocessor},
   booktitle = {Proc 12th International Conference on Parallel Processing},
   month = aug,
   year = {1983}
}

@techreport{Welch79,
   author = {Peter H Welch},
   title = {Program transformation - an easier way of proof},
   type = {Computer Lab, Univ of Kent},
   month = oct,
   year = {1979}
}

@article{W78,
   author = {Mitchell W and and Daniel Friedman},
   title = {Compiling lambda expressions using continuations and factorisation},
   journal = {Computer Languages},
   volume = {3},
   pages = {241-263, Pergamon},
   month = {Press},
   year = {1978}
}

@article{Schwarz82,
   author = {J Schwarz},
   title = {Using annotations to make recursion equations behave},
   journal = {IEEE Trans Software Engineering},
   volume = {8},
   number = {1},
   pages = {21-33},
   month = jan,
   year = {1982},
   keywords = {Functional languages.}
}

@techreport{Aerts81,
   author = {JPH Aerts},
   title = {Implementing Sasl without garbage collection},
   type = {Eindhoven Univ of Technology, EUT-Report},
   number = {81-WSK-05},
   month = nov,
   year = {1981},
   keywords = {Strongly connected components.}
}

@techreport{Revesz??,
   author = {G Revesz},
   title = {An extension of lambda calculus for functional programming},
   type = {Tulane University TR},
   number = {84-109.}
}

@article{Dromey84,
   author = {RG Dromey},
   title = {Exploiting partial order with quicksort},
   journal = {SPE},
   volume = {14},
   number = {6},
   pages = {509-518},
   month = jun,
   year = {1984},
   keywords = {Transort.  Quicksort which works well if initially ordered. cf Smoothsort (Dijkstra).}
}

@article{Christopher84,
   author = {TW Christopher},
   title = {Reference count garbage collection},
   journal = {SPE},
   volume = {14},
   number = {6},
   pages = {503-507},
   month = jun,
   year = {1984},
   keywords = {Uses mark-scan, but doesn't need to know about off-heap pointers.}
}

@techreport{Cripps??,
   author = {Martin Cripps and Tony Field},
   title = {The March Hare network switching device},
   type = {Imperial College report},
   number = {83/30.},
   keywords = {Switching chip for Alice.}
}

@incollection{Park82,
   author = {David Park},
   title = {The fairness problem and nondeterministic computing networks},
   booktitle = {Proc 4th Advanced course on theoretical computer science},
   year = {1982},
   keywords = {Hiatons, merge.},
   note = {Mathematisch Centrum}
}

@incollection{Nilsson84,
   author = {M Nilsson},
   editor = {Cambell},
   title = {The world's shortest Prolog interpreter?},
   booktitle = {Book on Prolog implementations},
   pages = {87-92},
   year = {1984},
   keywords = {Prolog interpreter in Lisp.}
}

@article{Tarjan84,
   author = {Robert Tarjan and Jan van Leeuwen},
   title = {Worst case analysis of set union algorithms},
   journal = {JACM},
   volume = {31},
   number = {2},
   pages = {245-281},
   month = apr,
   year = {1984},
   keywords = {Data structures.}
}

@article{mccarthy:lisp,
    author = "John L. McCarthy",
    title = "Recursive Functions of Symbolic Expressions and Their Computation by Machine, {Part I}",
    journal = "Communications of the ACM",
    volume = "3",
    number = "4",
    pages = "184-195",
    year = "1960",
    url = "citeseer.ist.psu.edu/mccarthy60recursive.html",
   note = "The original Lisp paper" }

@incollection{McCarthy63,
   author = {John McCarthy},
   editor = {Braffort and Hirschberg},
   title = {A basis for a mathematical theory of computation},
   booktitle = {Computer Programming and Formal Systems,},
   pages = {32-70},
   publisher = {North Holland},
   year = {1963}
}

@article{Dijkstra82,
   author = {EW Dijkstra},
   title = {Smoothsort, an alternative for sorting in situ},
   journal = scp,
   volume = {1},
   pages = {223-233},
   year = {1982},
   note = {(Errata in 2(1) 1982 85-86)}
}

@article{Knuth84,
   author = {Donald Knuth},
   title = {Literate programming},
   journal = {Computer Journal},
   volume = {27},
   number = {2},
   pages = {97-111},
   year = {1984},
   keywords = {Documentation, web, tangle, weave, tex.}
}

@article{Downey76,
   author = {Peter Downey and Ravi Sethi},
   title = {Correct computation rules for recursive languages},
   journal = {SIAM Journal of Computing},
   volume = {5},
   number = {3},
   pages = {378-401},
   month = sep,
   year = {1976},
   keywords = {Reduction order, termination, correctness, computation rules.}
}

@misc{Clocksin??,
   author = {Bill Clocksin},
   title = {Prolog - a tutorial},
   note = {Draft copy.}
}

@inproceedings{Jackson78,
   author = {MA Jackson},
   title = {Information systems - modelling, sequencing and transformations},
   booktitle = {Proc 3rd Intl Conference on Software Engineering},
   pages = {72-81},
   year = {1978},
   keywords = {Program transformation.  Relevant to Occam?}
}

@article{Plotkin77,
   author = {GD Plotkin},
   title = {{LCF} considered as a programming language},
   journal = {Theoretical Computer Science},
   volume = {5},
   pages = {223-255},
   year = {1977},
   keywords = {Parallel conditional, parallel or, completeness, domains.}
}

@techreport{Saltzer81,
   author = {JH Saltzer and DD Clark},
   title = {Why a ring?},
   type = {MIT report},
   month = dec,
   year = {1981}
}

@incollection{JH78,
   author = {Saltzer JH},
   title = {Naming and binding of objects},
   booktitle = {Operating systems - an advanced course,},
   publisher = {LNCS 60, Springer Verlag},
   year = {1978},
   keywords = {Segmentation.}
}

@techreport{Kennaway84,
   author = {JR Kennaway},
   title = {An outline of some results of Staples on optimal reduction orders in replacement systems},
   type = {University of East Anglia},
   month = mar,
   year = {1984}
}

@article{Anonymous84c,
   key = {Anonymous84c},
   journal = {IBM Journal},
   volume = {28},
   number = {2},
   month = mar,
   year = {1984},
   keywords = {All about error detection and correction in memory systems.}
}

@article{Mago79,
   author = {GA Mago},
   title = {A network of microprocessors to execute reduction languages (part 1)},
   journal = {International journal of computer and information sciences},
   volume = {8},
   number = {5},
   pages = {349-385;},
   year = {1979}
}

@article{Mago79a,
   author = {GA Mago},
   title = {A network of microprocessors to execute reduction languages (part 2)},
   journal = {International journal of computer and information sciences},
   volume = {8},
   number = {6},
   pages = {435-471},
   year = {1979}
}

@incollection{Mago80,
   author = {GA Mago},
   title = {A cellular computer architecture for functional programming},
   booktitle = {IEEE Computer Society COMPCON},
   pages = {179-187},
   month = {Spring},
   year = {1980}
}

@incollection{Mycroft84,
   author = {Alan Mycroft and Richard O'Keefe},
   title = {A polymorphic type system for Prolog},
   booktitle = {Artificial Intelligence 23},
   pages = {295-307},
   year = {1984, Elsevier},
   note = {Research paper 211, Dept of AI, Edinburgh.}
}

@misc{Mycroft83,
   author = {Alan Mycroft},
   title = {Notes on the {ML} machine instruction set and data structures},
   address = {Chal---mers},
   year = {1983}
}

@article{Staples80,
   author = {John Staples},
   title = {Computation on graph-like expressions},
   journal = {Theoretical Computer Science},
   volume = {10},
   pages = {171-185},
   year = {1980},
   keywords = {Optimality results for graph reduction, combinators.}
}

@article{Staples80a,
   author = {John Staples},
   title = {Optimal evaluations of graph-like expressions},
   journal = {Theoretical Computer Science},
   volume = {10},
   pages = {297-316},
   year = {1980},
   keywords = {Optimality results for graph reduction, combinators.}
}

@article{Staples80b,
   author = {John Staples},
   title = {Speeding up subtree replacement systems},
   journal = {Theoretical Computer Science},
   volume = {11},
   pages = {39-47},
   year = {1980},
   keywords = {Optimality results for graph reduction, combinators.}
}

@article{Friedman78,
   author = {Daniel Friedman and David Wise},
   title = {Aspects of applicative programming for parallel processing},
   journal = {IEEE Trans Computers},
   volume = {27},
   number = {4},
   pages = {289-296},
   month = apr,
   year = {1978},
   keywords = {Multiprocessing, Lisp.}
}

@article{Friedman77,
   author = {Daniel Friedman and David Wise},
   title = {Aspects of applicative programming for file systems},
   journal = {Sigplan Notices},
   volume = {12},
   number = {3},
   pages = {41-55},
   month = mar,
   year = {1977}
}

@incollection{Friedman79a,
   author = {Daniel Friedman and David Wise},
   title = {An approach to fair applicative multiprogramming},
   booktitle = {Semantics of concurrent programming},
   pages = {203-225},
   publisher = {Springer LNCS},
   year = {1979},
   keywords = {Frons, semantics, scheduling, sting.}
}

@techreport{Friedman78a,
   author = {Daniel Friedman and David Wise},
   title = {Applicative multiprogramming},
   type = {Comp Sci Dept, Univ of Indiana, TR},
   number = {72},
   month = dec,
   year = {1978},
   keywords = {Frons, ferns, nondeterminism, functional operating systems.}
}

@article{Friedman78b,
   author = {Daniel Friedman and David Wise},
   title = {A note on conditional expressions},
   journal = {CACM},
   volume = {21},
   number = {11},
   pages = {931-933},
   month = nov,
   year = {1978},
   keywords = {Parallel conditional, amb, nondeterminism.}
}

@article{Heath84,
   author = {JL Heath},
   title = {Re-evaluation of {RISC} 1},
   journal = {Computer Architecture News},
   pages = {3-10},
   year = {1984}
}

@article{Patterson84,
   author = {DA Patterson},
   title = {{RISC} watch},
   journal = {Computer Architecture News},
   pages = {11-19},
   year = {1984}
}

@article{Huet73,
   author = {GP Huet},
   title = {The undecidability of unification in third order logic},
   journal = {Information and Control},
   volume = {22},
   pages = {257-267},
   year = {1973},
   keywords = {Prolog.}
}

@techreport{Norman83,
   author = {Arthur Norman},
   title = {Lisp model that supports extended control structures},
   type = {Cambridge},
   month = aug,
   year = {1983},
   keywords = {Notes on shallow and deep binding, environments, value cells etc.}
}

@incollection{Kahn84,
   author = {KM Kahn and M Carlsson},
   editor = {Campbell},
   title = {How to implement Prolog on a Lisp machine},
   booktitle = {Implementing Prolog},
   pages = {117-134},
   year = {1984},
   keywords = {Prolog on a Symbolics.}
}

@techreport{Norman84,
   author = {Arthur Norman and John Fitch},
   title = {Notes on Lisp},
   type = {Cambridge},
   month = may,
   year = {1984},
   note = {Rather general.}
}

@incollection{Hudak84c,
   author = {P Hudak and DA Kranz},
   title = {A combinator based compiler for a functional language},
   booktitle = {POPL 11},
   month = jan,
   year = {1984},
   keywords = {Strictness analysis, mutual recursion.}
}

@article{Sedgewick78,
   author = {R Sedgewick},
   title = {Implementing quicksort programs},
   journal = {CACM},
   volume = {21},
   number = {10},
   pages = {847-857},
   month = oct,
   year = {1978},
   keywords = {The ultimate in primary memory sorting.}
}

@misc{International84d,
   author = {Systems International},
   month = may,
   year = {1984},
   keywords = {Comms update. Basics of comms interfaces, HDLC, Bisync, X.25, pinouts, X.21.}
}

@article{Griss81,
   author = {Martin Griss and Tony Hearn},
   title = {A portable Lisp compiler},
   journal = {Software Practice and Experience},
   volume = {11},
   pages = {541-605},
   year = {1981},
   keywords = {Intermediate code, optimisation.}
}

@article{Fitch77,
   author = {John Fitch and Arthur Norman},
   title = {Implementing {LISP} in a high level language},
   journal = {Software Practice and Experience},
   volume = {7},
   pages = {713-725},
   year = {1977},
   keywords = {Garbage collection, systems programming.}
}

@article{Wyck82,
   author = {CJ van Wyck},
   title = {A high level language for specifying pictures},
   journal = {ACM Transactions on Graphics,},
   volume = {1},
   number = {2},
   pages = {163-182},
   month = apr,
   year = {1982},
   keywords = {Ideal.}
}

@misc{Fairbairn84a,
   author = {Jon Fairbairn and Stuart Wray},
   title = {Optimisations for lazy evaluators},
   month = may,
   year = {1984},
   keywords = {Cambridge}
}

@misc{Clarke84a,
   author = {Thomas Clarke},
   title = {Timestamps for functional operating systems},
   year = {1984}
}

@incollection{stoye+:skim,
   author = {William Stoye and Thomas Clarke and Arthur Norman},
   title = {Some practical methods for rapid combinator reduction},
   crossref = "lfp84",
   pages = {159-166},
   keywords = {SKIM}
}

@article{Rosin69,
   author = {RF Rosin},
   title = {Contemporary concepts of microprogramming and emulation},
   journal = {Computing Surveys},
   volume = {1},
   pages = {197-212},
   year = {1969}
}

@incollection{al83c,
   author = {Mark Stefik et al},
   editor = {Hayes-Roth et al},
   title = {Basic concepts for building expert systems},
   booktitle = {Building expert systems},
   publisher = {Addison Wesley},
   year = {1983}
}

@book{Hayes-Roth83,
   author = {F Hayes-Roth and DA Waterman and DB Lenat},
   title = {Building expert systems},
   publisher = {Addison Wesley},
   year = {1983},
   keywords = {A good guide to what's available, not much detail on how.}
}

@book{Nilsson80,
   author = {NJ Nilsson},
   title = {Principles of artificial intelligence},
   publisher = {Toiga Press},
   year = {1980},
   keywords = {Contains discussion of resolution theorem proving.}
}

@inproceedings{Duff78,
   author = {MJB Duff},
   title = {Review of the {CLIP} image processing system},
   booktitle = {Proc National Computer Conference},
   pages = {1055-1060},
   year = {1978},
   keywords = {Array processors, SIMD.}
}

@incollection{Wood84,
   author = {AM Wood},
   title = {The organisation of parallel processing machines},
   booktitle = {Parallel processing: logic, organisation and technology},
   publisher = {LNCS 196, Springer Verlag},
   year = {1984}
}

@techreport{Fountain??,
   author = {TJ Fountain},
   title = {A review of {SIMD} architectures},
   type = {University College London.},
   keywords = {Array processors.}
}

@techreport{Duff??,
   author = {MJB Duff},
   title = {{CLIP} 4 - a {LSI} array parallel processor},
   type = {University College London.},
   keywords = {Image processing, SIMD.}
}

@article{Lampson84a,
   author = {BW Lampson},
   title = {Hints for computer system design},
   journal = {IEEE Software},
   pages = {11-28},
   month = jan,
   year = {1984}
}

@incollection{Turner84a,
   author = {D A Turner},
   title = {Combinator reduction machines},
   booktitle = {ICALP?, Los Angeles.},
   year = {1984}
}

@misc{Kennaway??,
   author = {Richard Kennaway.},
   title = {Notes on spine reduction.},
   keywords = {Lambda, evaluation order.}
}

@misc{Inc??,
   author = {Burroughs Inc.},
   title = {Patent application for a reduction machine.}
}

@techreport{Welch75,
   author = {Peter Welch},
   title = {Some notes on the Martin-Lof proof of the Church-Rosser theorem, as rediscovered by Park},
   type = {University of Kent},
   month = oct,
   year = {1975}
}

@article{Bishop81,
   author = {JM Bishop and DW Barron},
   title = {Principles of descriptors},
   journal = {Computer Journal},
   volume = {24},
   number = {3},
   pages = {210-221},
   year = {1981},
   keywords = {Computer architecture.}
}

@article{Harrison82,
   author = {PG Harrison},
   title = {Efficient storage management for functional languages},
   journal = {Computer Journal},
   volume = {25},
   number = {2},
   pages = {264-271},
   year = {1982},
   keywords = {Garbage collection, stacks, memory.}
}

@article{Topor82,
   author = {RW Topor},
   title = {Functional programs for generating permutations},
   journal = {Computer Journal},
   volume = {25},
   number = {2},
   pages = {257-263},
   year = {1982},
   keywords = {Mainly concerned with performance bounds.}
}

@article{Dijkstra68,
   author = {EW Dijkstra},
   title = {The {GOTO} statement considered harmful},
   journal = {CACM},
   volume = {11},
   number = {3},
   pages = {147-148},
   month = mar,
   year = {1968}
}

@article{Bentley86,
   author = {JL Bentley and BW Kernighan},
   title = {{GRAP} - a language for typesetting graphs},
   journal = {CACM},
   volume = {29 8},
   pages = {782-792},
   month = aug,
   year = {1986},
   keywords = {nroff}
}

@article{IEEE86,
   author = {{IEEE}},
   title = {Special issue on parallel programming},
   institution = {IEEE},
   journal = {IEEE Computer},
   volume = {19 8},
   month = aug,
   year = {1986},
   keywords = {Ada, parallel functional programming, paralfl, concurrent prolog, multilisp, futures}
}

@article{Silbey86,
   author = {A Silbey and V Milutinovic and V Mendoza-Grado},
   title = {A survey of advanced microprocessor and {HLL} computer architectures},
   journal = {IEEE Computer},
   volume = {19 8},
   pages = {72-85},
   month = aug,
   year = {1986},
   keywords = {RISC, VAX, 68000, 32032, Z80000}
}

@techreport{Jones86,
   author = {Neil D Jones},
   title = {Flow analysis of lazy higher-order programs},
   type = {DIKU, University of Copenhagen},
   year = {1986},
   keywords = {abstract interpretation, denotational semantics, strictness analysis, partial evaluation}
}

@article{Joy85,
   author = {MS Joy and VJ Rayward-Smity and FW Burton},
   title = {Efficient combinator code},
   journal = {Computer languages},
   volume = {10},
   number = {3/4},
   pages = {211-224},
   year = {1985},
   keywords = {complexity, J}
}

@techreport{Boute86,
   author = {RT Boute},
   title = {Systems semantics - principles, applications and implementation},
   type = {Univ of Nijmegen},
   year = {1986},
   keywords = {submitted to TOPLAS}
}

@techreport{Hancock86,
   author = {Peter Hancock},
   title = {Notes on interactive input and output in a functional language},
   type = {PRG, Oxford},
   month = sep,
   year = {1986}
}

@techreport{Sharp86,
   author = {Helen Sharp},
   title = {Some concerns about declarative programming},
   type = {IN 2010, Dept Comp Sci, University College London},
   month = jun,
   year = {1986},
   keywords = {specification, correctness, reasoning}
}

@techreport{Fairbairn86,
   author = {Jon Fairbairn},
   title = {Making form follow function - an exercise in functional programming style},
   type = {TR 89, Computer Lab, Cambridge},
   month = jun,
   year = {1986},
   keywords = {Parsers}
}

@techreport{Halstead85a,
   author = {RH Halstead and TL Anderson and RB Osbourne and TL Sterling},
   title = {Concert - a multiprocessor development system},
   type = {Lab for Comp Sci, MIT},
   month = jan,
   year = {1985},
   keywords = {shared memory, ringbus, multilisp}
}

@article{Dally86,
   author = {WJ Dally and CL Seitz},
   title = {The torus routing chip},
   journal = {Journal of Distributed Computing},
   volume = {1},
   number = {3},
   year = {1986},
   keywords = {asynchronous, self-timed, deadlock avoidance}
}

@article{Applegate85,
   author = {JH Applegate and et al},
   title = {A digital orrery},
   journal = {IEEE Trans Computers},
   volume = {C34},
   number = {9},
   pages = {822-831},
   month = sep,
   year = {1985},
   keywords = {architecture, astronomy, orbital mechanics, microprogramming}
}

@article{Li86,
   author = {Kai Li and Paul Hudak},
   title = {Memory coherence in shared virtual memory systems},
   journal = {5th ACM Simposium on Principles of Distributed Computing},
   year = {1986},
   keywords = {cache coherence in a virtual memory context}
}

@article{Li86a,
   author = {Kai Li and Paul Hudak},
   title = {A new list compaction method},
   journal = {Software - Practice and Experience},
   volume = {16},
   number = {2},
   pages = {145-163},
   month = feb,
   year = {1986},
   keywords = {memory management, heaps, shared memory parallel computing}
}

@article{Hudak85d,
   author = {Paul Hudak and Ben Goldberg},
   title = {Distributed execution of functional programs using serial combinators},
   journal = {IEEE Trans Computers},
   volume = {C34},
   number = {10},
   pages = {881-891},
   month = oct,
   year = {1985},
   keywords = {parallel graph reduction, supercombinators}
}

@techreport{NEC85,
   author = {{NEC}},
   title = {PD7281 image pipelined processor},
   institution = {NEC},
   type = {NEC data sheet},
   month = feb,
   year = {1985},
   keywords = {dataflow chip}
}

@article{Arya86,
   author = {Kavi Arya},
   title = {A functional approach to animation},
   journal = {Computer Graphics Forum},
   volume = {5},
   number = {4},
   month = dec,
   year = {1986},
   keywords = {computer graphics and functional languages}
}

@article{Ackerman82,
   author = {WH Ackerman},
   title = {Data flow languages},
   journal = {IEEE Computer},
   volume = {15},
   number = {2},
   pages = {15-25},
   month = feb,
   year = {1982},
   keywords = {Val, Id}
}

@article{Arvind84b,
   author = {Arvind and JD Brock},
   title = {Resource managers in functional programming},
   journal = {Journal of parallel and distributed computing},
   volume = {1},
   pages = {5-21},
   year = {1984},
   keywords = {non-determinism, functional operating systems}
}

@article{Arvind82,
   author = {Arvind and KP Gostelow},
   title = {The {U}-interpreter},
   journal = {IEEE Computer},
   volume = {15},
   number = {2},
   pages = {42-49},
   month = feb,
   year = {1982},
   keywords = {dynamic data flow, implementation of data flow}
}

@techreport{Josephs86,
   author = {MB Josephs},
   title = {Functional programming with side effects},
   type = {D Phil thesis, Programming Research Group, Oxford},
   month = jun,
   year = {1986},
   keywords = {logical variable, single assignment, easy implementation, program transformation, ingenious denotational semantics}
}

@techreport{Siegel86,
   author = {HJ Siegel},
   title = {Parallel processing networks and systems},
   type = {Course slides, Purdue University},
   year = {1986},
   keywords = {Multi-stage interconnection networks, extra-stage cube}
}

@techreport{Darlington85a,
   author = {John Darlington and et al},
   title = {Report of working party on Alvey compiler target language ({DACTL})},
   type = {Alvey,},
   number = {1985},
   year = {1985},
   keywords = {graph reduction, pattern matching, control annotations}
}

@techreport{Barendregt86,
   author = {Henk Barendregt and Marc van Leeuwen},
   title = {Functional programming and the language Tale},
   type = {Dept of Maths, Univ of Utrecht},
   month = feb,
   year = {1986},
   keywords = {Very good definition, arrays, pattern matching}
}

@article{Kahn74,
   author = {Gilles Kahn},
   title = {The semantics of a simple language for parallel programming},
   journal = {Information Processing},
   year = {1974},
   keywords = {synchronisation, formal methods}
}

@techreport{Kernighan84,
   author = {BW Kernighan},
   title = {{PIC} - a graphics langage for typesetting},
   type = {Computer Science Technical Report 116, Bell Labs},
   month = dec,
   year = {1984},
   keywords = {nroff, grap}
}

@techreport{Yuba84,
   author = {T Yuba and K Hiraki and H Kashiwagi},
   title = {{SIGMA}-1 - a dataflow computer for scientific computations},
   type = {Electrotechnical Laboratory, Japan},
   year = {1984}
}

@techreport{Keller78,
   author = {RM Keller and G Lindstrom and S Patil},
   title = {An architecture for a loosely-coupled parallel processor},
   type = {UUCS-78-105, Dept Comp Sci, Univ of Utah},
   month = oct,
   year = {1978},
   keywords = {AMPS, Rediflow}
}

@inproceedings{Wand86,
   author = {M Wand},
   title = {Finding the source of type errors},
   booktitle = {Proc ACM conference on the Principles of Programming Languages},
   pages = {38-43},
   month = jan,
   year = {1986},
   keywords = {polymorphism, type-checking, compilers}
}

@inproceedings{Martin85,
   author = {AJ Martin},
   title = {The design of a self-timed circuit for distributed mutual exclusion},
   booktitle = {Chapel Hill Conference on VLSI},
   pages = {245-260},
   year = {1985},
   keywords = {asynchronous state machines}
}

@inproceedings{Martin86,
   author = {AJ Martin},
   title = {Self-timed {FIFO} - an exercise in compiling programs into {VLSI} circuits},
   booktitle = {IFIP International Conference: From HDL descriptions to guaranteed correct circuit designs, Grenoble},
   month = sep,
   year = {1986},
   keywords = {asynchronous state machines}
}

@article{Martin86a,
   author = {AJ Martin},
   title = {Compiling communicating processes into delay-insensitive {VLSI} circuits},
   journal = {Journal of distributed computing},
   volume = {1},
   number = {3},
   year = {1986},
   keywords = {asynchronous state machines, self-timed logic}
}

@article{arvind:dataflow-sruvey,
   author = {Arvind and DE Culler},
   title = {Dataflow architectures},
   journal = {Annual Reviews in Computer Science},
   year = {1986},
   keywords = {Good survey of dataflow}
}

@techreport{Turner86,
   author = {D A Turner},
   title = {Intuitionistic logic and functional programming},
   type = {University of Kent},
   month = feb,
   year = {1986},
   keywords = {Gentle intro to type theory}
}

@techreport{Meijer86,
   author = {E Meijer},
   title = {Petri net models for the lambda calculus},
   type = {Report 78, Sectie Informatica, University of Nijmegen},
   month = apr,
   year = {1986},
   keywords = {mainly string reduction}
}

@techreport{Meijer85,
   author = {E Meijer},
   title = {Petri net models for lambda conversion},
   type = {Scriptie 3 (PhD thesis?), Sectie Informatica, University of Nijmegen},
   month = jun,
   year = {1985}
}

@incollection{Sussman82,
   author = {GJ Sussman},
   editor = {Darlington and Henderson and Turner},
   title = {Notes on {LISP}},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982}
}

@incollection{Morris82a,
   author = {JH Morris},
   editor = {Darlington and Henderson and Turner},
   title = {Real programming in functional languages},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982}
}

@incollection{Henderson82a,
   author = {P Henderson},
   editor = {Darlington and Henderson and Turner},
   title = {Purely functional operating systems},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982},
   keywords = {non-determinism}
}

@incollection{Wise82,
   author = {DS Wise},
   editor = {Darlington and Henderson and Turner},
   title = {Interpreters for functional programming},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982},
   keywords = {meta-circular interpreters, garbage collection}
}

@incollection{Guttag82,
   author = {JV Guttag},
   editor = {Darlington and Henderson and Turner},
   title = {Using types and abstractions in functional programming},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982},
   keywords = {specifications, abstract data types}
}

@incollection{Treleaven82a,
   author = {PC Treleaven},
   editor = {Darlington and Henderson and Turner},
   title = {Computer architecture for functional programming},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982}
}

@incollection{Williams82,
   author = {J Williams},
   editor = {Darlington and Henderson and Turner},
   title = {Notes on the {FP} style of funcional programming},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982}
}

@incollection{Darlington82a,
   author = {J Darlington},
   editor = {Darlington and Henderson and Turner},
   title = {Program transformation},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982}
}

@incollection{Stoy82,
   author = {JE Stoy},
   editor = {Darlington and Henderson and Turner},
   title = {Some mathematical aspects of functional programming},
   booktitle = {Functional programming and its applications},
   publisher = {CUP},
   year = {1982},
   keywords = {domains and neighbourhoods}
}

@techreport{Burnett85,
   author = {TD Burnett},
   title = {A parallel reduction architecture},
   type = {MPhil/PhD transfer report, Dept of Elec Eng, UCL},
   month = jul,
   year = {1985},
   keywords = {FP, quite clever}
}

@techreport{Courcelle??,
   author = {B Courcelle},
   title = {Attribute grammars},
   type = {Dept of Maths, Univ of Bordeaux}
}

@techreport{Siegel86a,
   author = {HJ Siegel},
   title = {Parallel algorithms},
   type = {School of Elec Eng, Purdue University},
   year = {1986},
   keywords = {image smoothing, fft, recursive doubling, histogramming, contour extraction}
}

@techreport{Sweazey86,
   author = {Paul Sweazey},
   title = {Cache coherence on the Futurebus},
   type = {Tektronix},
   year = {1986},
   keywords = {MOESI model}
}

@article{Atello81,
   author = {L Atello and D Buggiani and G Prini},
   title = {An efficient interpreter for the lambda calculus},
   journal = {JCSS},
   volume = {23},
   number = {3},
   pages = {384-424},
   year = {1981},
   keywords = {call-by-need, sharing, template copying}
}

@inproceedings{Sweazey86a,
   author = {Paul Sweazey and Alan Jay Smith},
   title = {A class of compatible cache consistency protocols and their support by the {IEEE} Futurebus},
   booktitle = {13th International Symposium on Computer Architecture, Tokyo},
   pages = {414-423},
   month = jun,
   year = {1986},
   keywords = {P896}
}

@article{Tichy86,
   author = {WF Tichy},
   title = {Smart recompilation},
   journal = toplas,
   volume = {8},
   number = {3},
   pages = {273-291},
   month = jul,
   year = {1986},
   keywords = {smarter version of Unix "make"}
}

@article{Turchin86,
   author = {VF Turchin},
   title = {The concept of a supercompiler},
   journal = toplas,
   volume = {8},
   number = {3},
   pages = {292-326},
   month = jul,
   year = {1986},
   keywords = {partial evaluation, mix}
}

@article{Chandy86,
   author = {M Chandy and J Misra},
   title = {An example of stepwise refinement of distributed programs - quiescence detection},
   journal = toplas,
   volume = {8},
   number = {3},
   pages = {326-344},
   month = jul,
   year = {1986},
   keywords = {distributed termination}
}

@article{Myers86,
   author = {BA Myers},
   title = {A complete and efficient implementation of covered windows},
   journal = {IEEE Computer},
   volume = {19},
   number = {9},
   pages = {57-67},
   month = sep,
   year = {1986},
   keywords = {gives algorithmic details}
}

@article{Gehani86,
   author = {N Gehani},
   title = {Unix document formatting and typesetting},
   journal = {IEEE Software},
   volume = {3},
   number = {5},
   pages = {15-24},
   month = sep,
   year = {1986},
   keywords = {tutorial, nroff, troff, pic}
}

@article{Bobrow86,
   author = {DG Bobrow and S Mittal and MJ Stefik},
   title = {Expert systems - perils and promise},
   journal = {CACM},
   volume = {29},
   number = {9},
   pages = {880-894},
   month = sep,
   year = {1986},
   keywords = {good survey}
}

@article{Stout86,
   author = {QF Stout and BL Warren},
   title = {Tree rebalancing in optimal time and space},
   journal = {CACM},
   volume = {29},
   number = {9},
   pages = {902-908},
   month = sep,
   year = {1986},
   keywords = {looks like a nice algorithm, avl trees}
}

@article{Barendregt84,
   author = {HP Barendregt},
   title = {Introduction to lambda calculus},
   journal = {Nieuw archief voor wiskunde},
   volume = {2},
   pages = {337-372},
   year = {1984},
   keywords = {terse but good}
}

@incollection{Felgentreu86,
   author = {KU Felgentreu and WM Lippe},
   editor = {Robinet and Wilhelm},
   title = {A general approach to the optimisation of function calls},
   booktitle = {European Symposium on Programming},
   pages = {41-52},
   publisher = {LNCS 213, Springer Verlag},
   year = {1986}
}

@incollection{Kastens86,
   author = {U Kastens and M Schmidt},
   editor = {Robinet and Wilhelm},
   title = {Lifetime analysis for procedure parameters},
   booktitle = {European Symposium on Programming},
   pages = {53-69},
   publisher = {LNCS 213, Springer Verlag},
   year = {1986}
}

@incollection{Turner87,
   author = {D A Turner},
   editor = {SL {Peyton~Jones}},
   title = {An introduction to Miranda},
   booktitle = {The implementation of functional programming languages},
   publisher = {Prentice Hall},
   year = {1987}
}

@techreport{Chu84,
   author = {Tam-Ahn Chu},
   title = {Design of a {CMOS} self-timed two by two packet router},
   type = {Computation structures group memo 242, MIT Lab for Computer Science},
   month = dec,
   year = {1984},
   keywords = {asynchronous logic}
}

@techreport{Chu86,
   author = {Tam-Ahn Chu},
   title = {Design of a {VLSI} self-timed ring buffer using signal transition graphs},
   type = {Computation structures group memo 247, MIT Lab for Computer Science},
   month = may,
   year = {1986},
   keywords = {asynchronous logic}
}

@techreport{Nikhil86,
   author = {RS Nikhil and K Pingali and Arvind},
   title = {Id Nouveau},
   type = {Computation structures group memo},
   number = {265},
   month = jul,
   year = {1986},
   keywords = {The Id langauge, I-structures, data flow}
}

@inproceedings{Chu85,
   author = {T-A Chu and CKC Leung and TS Wanuga},
   title = {A design methodology for concurrent {VLSI} systems},
   booktitle = {Proceedings of ICCD-85},
   month = oct,
   year = {1985},
   keywords = {self-timed logic, asynchronous}
}

@inproceedings{Wendelborn86,
   author = {A Wendelborn},
   title = {A hybrid data and demand driven implementation of a functional language},
   booktitle = {Ninth Australian Computer Science Conference, Canberra},
   month = jan,
   year = {1986},
   keywords = {lucid, data flow}
}

@article{Wendelborn84,
   author = {A Wendelborn},
   title = {An operational semantics of a Lucid-like programming languages},
   journal = {Australian Computer Science Communications},
   volume = {6},
   number = {1},
   month = feb,
   year = {1984},
   keywords = {demand driven, data flow}
}

@article{Raibert86,
   author = {MH Raibert},
   title = {Legged robots},
   journal = {CACM},
   volume = {29},
   number = {6},
   pages = {499-514},
   month = jun,
   year = {1986}
}

@article{Ceri86,
   author = {S Ceri and G Gottlob},
   title = {Normalisation of relations and Prolog},
   journal = {CACM},
   volume = {29},
   number = {6},
   pages = {524-544},
   month = jun,
   year = {1986},
   keywords = {relational databases}
}

@article{IEEE86a,
   author = {{IEEE}},
   title = {Knowledge based systems for engineering (special issue)},
   institution = {IEEE},
   journal = {IEEE Software},
   volume = {3},
   number = {2},
   month = mar,
   year = {1986},
   keywords = {expert systems}
}

@article{Sarnak86,
   author = {N Sarnak and RE Tarjan},
   title = {Planar point location using persistent search trees},
   journal = {CACM},
   volume = {29},
   number = {7},
   pages = {669-679},
   month = jul,
   year = {1986},
   keywords = {data structures, algorithms}
}

@article{IEEE86b,
   author = {{IEEE}},
   title = {Expert systems in engineering (special issue)},
   institution = {IEEE},
   journal = {IEEE Computer},
   volume = {19},
   number = {7},
   month = jul,
   year = {1986},
   keywords = {knowledge based systems}
}

@techreport{Glauert86,
   author = {JRW Glauert and JR Kennaway and MR Sleep and HP Barendregt and JCJD van Eekelen and MJ Plasmeijer},
   title = {Syntax and semantics of Lean},
   type = {Univ of East Anglia/Univ of Nijmegen},
   month = jun,
   year = {1986},
   keywords = {DACTL, graph reduction, term rewrites, Clean}
}

@techreport{Schwetman85,
   author = {H Schwetman},
   title = {{CSIM} - a {C}-based process-oriented simulation language},
   type = {PP-080-85, MCC},
   year = {1985},
   keywords = {lightweight tasking package}
}

@techreport{Hudak86,
   author = {Paul Hudak},
   title = {The denotational semantics of a para-functional programming language},
   type = {YALEU/DCS/TR-484, Dept of Computer Science, Yale},
   month = jul,
   year = {1986},
   keywords = {ParAlfl, distributed execution of functional programs}
}

@article{Hudak86a,
   author = {Paul Hudak},
   title = {Para-functional programming},
   journal = {IEEE Computer},
   volume = {19},
   number = {8},
   pages = {60-71},
   month = aug,
   year = {1986},
   keywords = {ParAlfl, distributed execution of functional programs, scheduling}
}

@article{Kinniment76,
   author = {DJ Kinniment and JV Woods},
   title = {Synchronisation and arbitration circuits in digital systems},
   journal = {Proc IEE},
   volume = {123},
   number = {10},
   pages = {961-965},
   month = oct,
   year = {1976},
   keywords = {Metastability, self-timed logic}
}

@inproceedings{Hudak86b,
   author = {Paul Hudak},
   title = {A semantic model of reference counting and its abstraction},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming},
   pages = {351-363},
   month = aug,
   year = {1986},
   keywords = {abstract interpretation, graph reduction}
}

@inproceedings{Bloss86,
   author = {A Bloss},
   title = {Variations on strictness analysis},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming},
   pages = {132-142},
   month = aug,
   year = {1986},
   keywords = {abstract interpretation}
}

@inproceedings{Fairbairn86a,
   author = {Jon Fairbairn and Stuart C Wray},
   title = {Code generation techniques for functional languages},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming},
   pages = {94-104},
   month = aug,
   year = {1986},
   keywords = {G-machine, Ponder, graph reduction}
}

@inproceedings{Boehm86,
   author = {HJ Boehm and R Cartwright and M Riggle and MJ O'Donnell},
   title = {Exact real arithmetic - a case study in higher order programming},
   booktitle = {Proc ACM Conference on Lisp and Functional Programing},
   pages = {162-173},
   month = aug,
   year = {1986},
   keywords = {continued fractions, arbitrary precision arithmetic}
}

@inproceedings{scheevel+:norma,
   author = {Mark Scheevel},
   title = {{NORMA} - a graph reduction processor},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming},
   pages = {212-219},
   month = aug,
   year = {1986},
   keywords = {SK combinators, graph reduction, Burroughs}
}

@inproceedings{Rudalics86,
   author = {M Rudalics},
   title = {Distributed copying garbage collection},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming},
   pages = {364-372},
   month = aug,
   year = {1986},
   keywords = {Baker, parallel machines}
}

@techreport{Darlington86,
   author = {John Darlington},
   title = {A transformational view of data types and modules},
   type = {Dept of Computing, Imperial College},
   month = jun,
   year = {1986},
   keywords = {Abstract data types, interfaces, views, unfree algebras}
}

@techreport{Field86,
   author = {AJ Field and J Darlington},
   title = {A simplified approach to variable naming in packet-based reduction machines},
   type = {Dept of Computing, Imperial College},
   month = mar,
   year = {1986},
   keywords = {Graph reduction, lambda calculus, name clash}
}

@techreport{Darlington86a,
   author = {John Darlington and Lyndon White},
   title = {The imposition of temporal constraints on the execution of term rewriting systems},
   type = {Dept of Computing, Imperial College},
   month = aug,
   year = {1986},
   keywords = {Non-determinism, side effects, evaluation order, reactive programs, input and output in a functional langauge}
}

@article{Galil86,
   author = {Z Galil},
   title = {Efficient algorithms for finding maximum matching in graphs},
   journal = {ACM Computing Surveys},
   volume = {18},
   number = {1},
   pages = {23-38},
   month = mar,
   year = {1986}
}

@article{Wirth86,
   author = {N Wirth},
   title = {Microprocessor architectures - a comparison based on code generation by compiler},
   journal = {CACM},
   volume = {29},
   number = {10},
   pages = {978-990},
   month = oct,
   year = {1986},
   keywords = {68000, 32032, Lilith, RISC}
}

@article{Thakkar86,
   author = {SS Thakkar and AE Knowles},
   title = {A high-performance memory management scheme},
   journal = {IEEE Computer},
   volume = {19},
   number = {5},
   pages = {8-22},
   month = may,
   year = {1986},
   keywords = {virtual address translation, segmentation}
}

@article{Sanguinette86,
   author = {J Sanguinette},
   title = {performance of a message-based multiprocessor},
   journal = {IEEE Computer},
   volume = {19},
   number = {9},
   pages = {47-56},
   month = sep,
   year = {1986},
   keywords = {Elxsi 6400, Gigabus, bus design, simulation}
}

@article{Hill86a,
   author = {Mark Hill and et al},
   title = {Design decisions in {SPUR}},
   journal = {IEEE Computer},
   volume = {19},
   number = {11},
   pages = {8-24},
   month = nov,
   year = {1986},
   keywords = {Symbolic processing using RISCs, bus design, caches, virtual memory, LISP support}
}

@article{Anonymous86,
   key = {Anonymous86},
   title = {Special issue on Modula-2},
   journal = {IEEE Software},
   volume = {3},
   number = {6},
   month = nov,
   year = {1986},
   keywords = {modules, structured programming, software development}
}

@article{Rovner86,
   author = {P Rovner},
   title = {Extending Modula-2 to build large integrated systems},
   journal = {IEEE Software},
   volume = {3},
   number = {6},
   pages = {46-57},
   month = nov,
   year = {1986},
   keywords = {separate compilation, modules, exceptions, storage management, parallel programming; a well-written article}
}

@article{Mills86,
   author = {Harlan D Mills},
   title = {Structured programming - retrospect and prospect},
   journal = {IEEE Software},
   volume = {3},
   number = {6},
   pages = {58-67},
   month = nov,
   year = {1986},
   keywords = {verification, formal proof, goto, Dijkstra, axiomatic and functional verification, cleanroom software development; good article}
}

@book{Green??,
   author = {D Green},
   title = {Modern Logic Design},
   publisher = {Addison Wesley},
   keywords = {Galois field theory, recommended by Graeme Wilkinson}
}

@article{Quarterman85,
   author = {JS Quarterman and A Silberschatz and JL Peterson},
   title = {4.2BSD and 4.3BSD as examples of the Unix system},
   journal = {ACM Computing Surveys},
   volume = {17},
   number = {4},
   pages = {379-418},
   month = dec,
   year = {1985},
   keywords = {operating system}
}

@article{Tanenbaum85,
   author = {AS Tanenbaum and R van Renesse},
   title = {Distributed operating systems},
   journal = {ACM Computing Surveys},
   volume = {17},
   number = {4},
   pages = {419-470},
   month = dec,
   year = {1985},
   keywords = {network, file server, security, protection}
}

@article{Cardelli85c,
   author = {L Cardelli and P Wegner},
   title = {On understanding types, data abstraction and polymorphism},
   journal = {ACM Computing Surveys},
   volume = {17},
   number = {4},
   pages = {471-522},
   month = dec,
   year = {1985},
   keywords = {programming languages, functional programs, lambda calculus, abstract data types, inheritance, type checking}
}

@article{Wadler87a,
   author = {PL Wadler},
   title = {Fixing a space leak with a garbage collector},
   journal = {Software - Practice and Experience},
   volume = {17},
   number = {9},
   pages = {595-608},
   year = {1987},
   keywords = {lazy evaluations, resource management, eager evaluation}
}

@techreport{Oberhauser86,
   author = {HG Oberhauser},
   title = {On the correspondence of lambda style reduction and combinator style reduction},
   type = {SFB 124 - TP C1, Universitat des Saarlandes, Saarbrucken},
   year = {1986},
   keywords = {environment, closure, graph reduction; sensible, fairly formal}
}

@techreport{Oberhauser86a,
   author = {HG Oberhauser},
   title = {A fully lazy lambda style graph reducer},
   type = {Informatik, Universitat des Saarlandes, Saarbrucken},
   year = {1986},
   keywords = {modifications to get full laziness; reduction, combinators, environment}
}

@phdthesis{Reddy86,
   author = {US Reddy},
   title = {Logic languages based on functions - semantics and implementation},
   type = {Ph.{D}. Thesis},
   number = {Univ of Utah},
   year = {1986},
   keywords = {lazy narrowing, graph reduction; I have Ch 5.}
}

@article{Hollaar82,
   author = {LA Hollaar},
   title = {Direct implementation of asynchronous control units},
   journal = {IEEE Trans Computers},
   volume = {C-31},
   number = {12},
   pages = {1133-1141},
   month = dec,
   year = {1982},
   keywords = {one-hot coding, finite state machines}
}

@techreport{Raber87,
   author = {M Raber and et al},
   title = {A concept for a parallel {G}-machine},
   type = {Universitat des Saarlandes},
   month = jan,
   year = {1987},
   keywords = {stack, pointer reversal, spawn}
}

@techreport{Barendregt86a,
   author = {HP Barendregt and JR Kennaway and JW Klop and MR Sleep},
   title = {Needed reduction and spine strategies for the lambda calculus},
   type = {CS-R8621, Stichting Mathematisch Centrum, 1009 AB Amsterdam},
   month = may,
   year = {1986},
   keywords = {reduction order, redex, strictness analysis, head normal form}
}

@techreport{Field-Richards86,
   author = {HS Field-Richards},
   title = {A control acquisition interface for Futurebus},
   type = {Memo 3935, Royal Signals and Radar Establishment, Malvern},
   month = jul,
   year = {1986},
   keywords = {asynchronous, arbiter, P896, ELLA}
}

@techreport{Keiburtz87,
   author = {RB Keiburtz},
   title = {Performance measurement of a {G}-machine implementation},
   type = {Oregon Graduate Centre, Beaverton},
   month = jan,
   year = {1987},
   keywords = {G-code, VLSI, stack, microcode, instruction set, architecture}
}

@techreport{Chen86,
   author = {MC Chen},
   title = {Very-high-level parallel programming in Crystal},
   type = {YALEU/DCS/RR-506, Dept Comp Sci, Yale University},
   month = dec,
   year = {1986},
   keywords = {APL, functional arrays, data-parallelism, Connection machine}
}

@techreport{Backus86,
   author = {J Backus and JH Williams and EL Wimmers},
   title = {{FL} language manual},
   type = {RJ 5339 (Computer Science), IBM Almaden Research Centre, San Jose},
   month = nov,
   year = {1986},
   keywords = {Successor to FP, input/output, evaluation order, semantics, higher order, function-level programming}
}

@article{Pemberton87,
   author = {S Pemberton},
   title = {An alternative simple language and environment for PCs},
   journal = {IEEE Software},
   volume = {4},
   number = {1},
   pages = {56-64},
   month = jan,
   year = {1987},
   keywords = {ABC language, persistence, BASIC; intended as an alternative to BASIC - looks good.}
}

@article{Hwang87,
   author = {K Hwang and J Ghosh and R Chowkwanyun},
   title = {Computer architectures for artificial intelligence processing},
   journal = {IEEE Computer},
   volume = {20},
   number = {1},
   pages = {19-29},
   month = jan,
   year = {1987},
   keywords = {parallel architecture, ill-structured parallelism, Lisp, Prolog, functional languages, dataflow, database; good survey.}
}

@article{Moon87,
   author = {David A Moon},
   title = {Symbolics architecture},
   journal = {IEEE Computer},
   volume = {20},
   number = {1},
   pages = {43-52},
   month = jan,
   year = {1987},
   keywords = {Lisp, instruction set, tagging, generic instructions, stack frame, garbage collection}
}

@article{al87,
   author = {JM Anderson et al},
   title = {The architecture of {FAIM}-1},
   journal = {IEEE Computer},
   volume = {20},
   number = {1},
   pages = {55-65},
   month = jan,
   year = {1987},
   keywords = {parallel architecture, OIL, Post Office, extensibility, resource allocation, pattern-addressable memory (PAM), packet switching.}
}

@article{Ungar87,
   author = {D Ungar and D Patterson},
   title = {What price Smalltalk?},
   journal = {IEEE Computer},
   volume = {20},
   number = {1},
   pages = {67-74},
   month = jan,
   year = {1987},
   keywords = {RISC, SOAR, bytecodes, on-chip registers, caching call targets, "architects trap"; good paper.}
}

@article{Waltz87,
   author = {David L Waltz},
   title = {Applications of the Connection Machine},
   journal = {IEEE Computer},
   volume = {20},
   number = {1},
   pages = {85-97},
   month = jan,
   year = {1987},
   keywords = {parallel architecture, Lisp, document retrieval, reasoning, data-level parallelism; good paper.}
}

@article{FAhlman87,
   author = {SE FAhlman and GE Hinton},
   title = {Connectionist architectures for artificial intelligence},
   journal = {IEEE Computer},
   volume = {20},
   number = {1},
   pages = {100-109},
   month = jan,
   year = {1987},
   keywords = {parallel architecture, neural networks, Boltzmann machine, simulated annealing, NETL, machines which learn.}
}

@incollection{Hudak87,
   author = {Paul Hudak},
   editor = {S Abramsky and C Hankin},
   title = {A semantic model of reference counting and its abstraction},
   booktitle = {Abstract interpretation of declarative languages},
   publisher = {Ellis Horwood},
   year = {1987},
   keywords = {destructive update, unique reference, sharing}
}

@incollection{Dybjer86,
   author = {P Dybjer},
   title = {Category theory and programming language semantics - an overview},
   booktitle = {Category theory and computer programming, LNCS 240},
   pages = {165-181},
   publisher = {Springer Verlag},
   year = {1986},
   keywords = {Is category theory relevant to programing?  Type theory, domain theory.}
}

@techreport{Augustsson86,
   author = {Lennart Augustsson},
   title = {{SMALL} - a small interactive functional system},
   type = {Report 28, PMG, Dept of Computer Science, Chal---mers University, Goteborg},
   month = nov,
   year = {1986},
   keywords = {lazy language, tiny and not too slow}
}

@techreport{Hudak86c,
   author = {Paul Hudak},
   title = {Para-functional languages for parallel and distributed computing},
   type = {Dept of Computer Science, Yale University (to appear in Proc Compcon,},
   number = {1987)},
   month = oct,
   year = {1986},
   keywords = {annotations, resource allocation, operational behaviour}
}

@techreport{Hudak86d,
   author = {Paul Hudak},
   title = {Arrays, non-determinism, side-effects and parallelism},
   type = {Dept of Computer Science, Yale University (to appear in Proc LANL/MCC Graph Reduction Workshop, LNCS, Springer Verlag)},
   month = nov,
   year = {1986},
   keywords = {update in place, efficiency, monolithic arrays, incremental arrays}
}

@techreport{Goldberg86,
   author = {Ben Goldberg and Paul Hudak},
   title = {Alfalfa - distributed graph reduction on a hypercube multiprocessor},
   type = {Dept of Computer Science, Yale University},
   month = nov,
   year = {1986},
   keywords = {Intel hypercube, parallel, supercombinators, synchronisation, diffusion scheduling}
}

@techreport{Hudak86e,
   author = {Paul Hudak},
   title = {Collecting interpretations of expressions},
   type = {YALEU/DCS/RR-497, Dept of Computer Science, Yale University},
   month = aug,
   year = {1986},
   keywords = {abstract interpretation, dataflow analysis, higher order, domain theory, strictness analysis}
}

@techreport{Young86,
   author = {Jonathan Young and Paul Hudak},
   title = {Finding fixpoints in function spaces},
   type = {YALEU/DCS/RR-505, Dept of Computer Science, Yale University},
   month = dec,
   year = {1986},
   keywords = {strictness analysis, minimal function graphs}
}

@techreport{Sargeant86,
   author = {John Sargeant},
   title = {Load balancing, locality and parallelism control in fine-grain parallel machines},
   type = {Dept of Computer Science, University of Manchester},
   month = nov,
   year = {1986},
   keywords = {granularity, switching network, dataflow, resource allocation; excellent}
}

@techreport{Augustsson86a,
   author = {Lennart Augustsson},
   title = {The revised {G}-machine},
   type = {PMG memo 45, Dept of Computer Science, Chal---mers University, Goteborg},
   year = {1986},
   keywords = {G-code instruction set, case analysis, constructors}
}

@article{Anonymous86a,
   key = {Anonymous86a},
   title = {Special issue on digital signal processors},
   journal = {IEEE Micro},
   volume = {6},
   number = {6},
   month = dec,
   year = {1986},
   keywords = {All the main commercial DSPs have an article}
}

@article{Hillis86,
   author = {WD Hillis and GL Steele},
   title = {Data parallel algorithms},
   journal = {CACM},
   volume = {29},
   number = {12},
   pages = {1170-1183},
   month = dec,
   year = {1986},
   keywords = {Connection machine programming, counting, enumerating, linked lists, parsing, parallel combinator reduction, image processing}
}

@article{Rettberg86,
   author = {R Rettberg and R Thomas},
   title = {Contention is no obstacle in shared-memory multiprocessing},
   journal = {CACM},
   volume = {29},
   number = {12},
   pages = {1202-1212},
   month = dec,
   year = {1986},
   keywords = {BBN Butterfly; multi-stage switching networks}
}

@article{Stanfill86,
   author = {C Stanfill and D Waltz},
   title = {Towards memory-based reasoning},
   journal = {CACM},
   volume = {29},
   number = {12},
   pages = {1213-1228},
   month = dec,
   year = {1986},
   keywords = {Connection machine, intelligent memory, learning}
}

@article{Stanfill86a,
   author = {C Stanfill and B Kahle},
   title = {Parallel free-text search on the Connection Machine system},
   journal = {CACM},
   volume = {29},
   number = {12},
   pages = {1229-1239},
   month = dec,
   year = {1986},
   keywords = {programming}
}

@techreport{Treleaven86,
   author = {PC Treleaven and KJ Lees and SC McCabe},
   title = {Computer architectures for artificial intelligence},
   type = {TR 119, Dept Comp Sci, University College London},
   month = mar,
   year = {1986},
   keywords = {Big survey paper.  Functional, logic, reduction, knowledge-based, connectionist.}
}

@incollection{Kieburtz87,
   author = {RB Kieburtz},
   title = {A {RISC} architecture for symbolic computation},
   booktitle = {Proc ASPLOS II},
   month = oct,
   year = {1987},
   keywords = {G-machine on a chip, pipelining, storage management, garbage collection, reference count}
}

@inproceedings{Kieburtz86,
   author = {RB Kieburtz},
   editor = {JH Fasel and RM Keller},
   title = {Performance measurement of a {G}-machine implementation},
   booktitle = {Graph reduction - Proceedings of a Workshop, Santa Fe},
   pages = {275-296},
   publisher = {LNCS 279, Springer Verlag},
   month = sep,
   year = {1986}
}

@techreport{Lindstrom86,
   author = {G Lindstrom and L George and D Yeh},
   title = {Optimised compilation of functional programs through strictness analysis},
   type = {Dept Comp Sci, Univ of Utah},
   month = aug,
   year = {1986},
   keywords = {Basic blocks, constraints, dominance.  Summary only.}
}

@techreport{Glauert87,
   author = {J. R. W. Glauert and J. R. Kennaway and M. R. Sleep},
   title = {{DACTL}: {A} computational model and compiler target language based on graph reduction},
   institution = {University of East Anglia},
   type = {SYS-C87-03},
   address = {Norwich, England},
   month = jan,
   year = {1987}
}

@article{Pleszkun87,
   author = {AR Pleszkun and MJ Thazhutaveetil},
   title = {The architecture of Lisp machines},
   journal = {IEEE Computer},
   volume = {20},
   number = {3},
   pages = {35-47},
   month = mar,
   year = {1987},
   keywords = {tagging, cdr-coding, lists, deep/shallow binding; not very good}
}

@article{Furht87,
   author = {B Furht and V Milutinovic},
   title = {A survey of microprocessor architectures for memory management},
   journal = {IEEE Computer},
   volume = {20},
   number = {3},
   pages = {48-67},
   month = mar,
   year = {1987},
   keywords = {paging, segmentation, protection, 68000, 32032, 8086 family.}
}

@techreport{Robson86,
   author = {John Robson},
   title = {{FORTE} - a 16-bit {FORTH} processor},
   type = {Third-year project report, Dept Comp Sci, Univ of Manchester},
   month = apr,
   year = {1986},
   keywords = {architecture, microprogramming}
}

@article{Leveson86,
   author = {NG Leveson},
   title = {Software safety - what, why and how},
   journal = {ACM Computing Surveys},
   volume = {18},
   number = {2},
   pages = {125-164},
   month = jun,
   year = {1986},
   keywords = {ethics, nuclear plants, defence systems, social/political impact}
}

@incollection{Schonfinkel67,
   author = {M Schonfinkel},
   editor = {J van Heijenoort},
   title = {On the building blocks of mathematical logic},
   booktitle = {From Frege to Godel},
   pages = {355-365},
   publisher = {Harvard University Press},
   year = {1967},
   keywords = {SK combinators, currying}
}

@article{Brooks??,
   author = {FP Brooks},
   title = {No silver bullet - essence and accidents of software engineering},
   journal = {IEEE Computer},
   volume = {20},
   number = {4},
   pages = {10-20},
   year = {Apr 87},
   keywords = {specification, object oriented programming, AI}
}

@article{Meyer87,
   author = {B Meyer},
   title = {Reusability - the case of object-oriented design},
   journal = {IEEE Software},
   volume = {4},
   number = {2},
   pages = {50-63},
   month = mar,
   year = {1987},
   keywords = {software engineering, Eiffel; somewhat doctrinaire, but interesting}
}

@article{Gifford87,
   author = {D Gifford and A Spector},
   title = {{IBM} System/360-370 architecture},
   journal = {Comm ACM},
   volume = {30},
   number = {4},
   pages = {291-307},
   month = apr,
   year = {1987},
   keywords = {mainframe, instruction set, RISC.  Good article.}
}

@article{Horspool87,
   author = {RN Horspool},
   title = {An alternative to the Graham-Glanville code-generation method},
   journal = {IEEE Software},
   volume = {4},
   number = {3},
   pages = {33-39},
   month = may,
   year = {1987},
   keywords = {compilers}
}

@article{Knudsen87,
   author = {JL Knudsen},
   title = {Better exception-handling in block-structured systems},
   journal = {IEEE Software},
   volume = {4},
   number = {3},
   pages = {40-49},
   month = may,
   year = {1987},
   keywords = {Ada, ML}
}

@article{Diederich87,
   author = {J Diederich and J Milton},
   title = {Experimental prototyping in Smalltalk},
   journal = {IEEE Software},
   volume = {4},
   number = {3},
   pages = {50-64},
   month = may,
   year = {1987},
   keywords = {Object-oriented programming, environments}
}

@article{Anonymous87,
   key = {Anonymous87},
   title = {Special issue on interconnection networks},
   journal = {IEEE Computer},
   volume = {20},
   number = {6},
   month = jun,
   year = {1987},
   keywords = {Fault tolerance, multistage networks, multiple bus, optical}
}

@article{Ebert87,
   author = {J Ebert},
   title = {A versatile data structure for edge-oriented graph algorithms},
   journal = {CACM},
   volume = {30},
   number = {6},
   pages = {513-519},
   month = jun,
   year = {1987}
}

@article{witten:arithmetic-coding,
   author = {IH Witten and RM Neal and JG Cleary},
   title = {Arithmetic coding for data compression},
   journal = {CACM},
   volume = {30},
   number = {6},
   pages = {520-540},
   month = jun,
   year = {1987},
   keywords = {Better than Huffman. Very good article.}
}

@inproceedings{heeren:helium,
  author    = {Bastiaan Heeren and Daan Leijen and Arjan van IJzendoorn},
  title     = {Helium, for Learning {H}askell},
  booktitle = {ACM Sigplan 2003 Haskell Workshop},
  year      = {2003},
  month     = aug,
  publisher = {ACM Press},
  address   = {New York},
  pages     = {62 -- 71},
  url       = {http://www.cs.uu.nl/~daan/pubs.html},
  urlinfo   = {http://www.cs.uu.nl/~daan/pubs.html#helium},
  urlpdf    = {http://www.cs.uu.nl/~daan/download/papers/helium.pdf},
}

@article{Milutinovic87,
   author = {V Milutinovic and D Fura and W Helbig and J Linn},
   title = {Architecture/Compiler synergism in GaAs computer systems},
   journal = {IEEE Computer},
   volume = {20},
   number = {5},
   pages = {72-93},
   month = may,
   year = {1987},
   keywords = {Good article.  Lots of ways compilers can make life easier for the hardware.}
}

@article{Cohen87,
   author = {J Cohen and TJ Hickley},
   title = {Parsing and compiling using Prolog},
   journal = toplas,
   volume = {9},
   number = {2},
   pages = {125-163},
   month = apr,
   year = {1987},
   keywords = {Loads of examples.  Difference lists.  Excellent article.}
}

@article{Burke87,
   author = {MG Burke and GA Fisher},
   title = {A practical method for {LR} and {LL} syntactic error diagnosis and recovery},
   journal = toplas,
   volume = {9},
   number = {2},
   pages = {164-197},
   month = apr,
   year = {1987},
   keywords = {Yacc, syntax analysis}
}

@article{Anonymous87a,
   key = {Anonymous87a},
   title = {Special issue on systolic arrays},
   journal = {IEEE Computer},
   volume = {20},
   number = {7},
   month = jul,
   year = {1987},
   keywords = {wavefront array processors, WARP}
}

@article{Hudak88,
   author = {Paul Hudak},
   title = {Exploring para-functional programming: separating the What from the How},
   journal = {IEEE Software},
   month = jan,
   year = {1988},
   keywords = {General propaganda on func prog.  Resource allocation, data structure distribution, annotations.}
}

@book{Garey79,
   author = {MR Garey and DS Johnson},
   title = {Computers and intractability - a guide to the theory of {NP}-completeness},
   publisher = {Freeman},
   year = {1979},
   keywords = {complexity, algorithms; includes large catalogue of NP-complete problems}
}

@book{Wilf86,
   author = {HS Wilf},
   title = {Algorithms and complexity},
   publisher = {Prentice Hall},
   year = {1986},
   keywords = {complexity, algorithms; student text}
}

@techreport{Boyce87,
   author = {JF Boyce and J Feng},
   title = {Relational cycle homomorphisms and object recognition},
   type = {Wheatstone Lab, Kings College, London},
   month = oct,
   year = {1987},
   keywords = {Possible GRIP application.  Recognises objects by relationships between their features, compared with those in the database.}
}

@techreport{Aasa87,
   author = {A Aasa and S Holmstr"om and C Nilsson},
   title = {An efficiency comparison of some representations of purely functional arrays},
   type = {Report 33, Programming Methodology Group, Chal---mers University, Goteborg},
   month = may,
   year = {1987},
   keywords = {Good report; compares Hughes' array idea with binary trees, update in place and pure functions}
}

@book{Garey??,
   author = {Garey and Johnson},
   title = {Computers and intractability},
   publisher = {Freeman},
   keywords = {NP completeness, travelling salesman, half a loaf}
}

@techreport{Nicholl87,
   author = {R Nicholl and M Clint and D Gray and T Nicholl},
   title = {The use of functional annotations in verifying imperative programs},
   type = {Queens University of Belfast},
   month = oct,
   year = {1987},
   keywords = {Reasoning, abstraction, Hoare logic, specification}
}

@techreport{Dybjer87,
   author = {Peter Dybjer},
   title = {Inverse image analysis},
   type = {Report 32, Programming Methodology Group, Chal---mers University, Sweden},
   month = jul,
   year = {1987},
   keywords = {Strictness analysis, neighbourhood systems, non-flat domains; short but dense}
}

@article{Hoare87,
   author = {CAR Hoare},
   title = {An overview of some formal methods for program design},
   journal = {IEEE Computer},
   volume = {20},
   number = {9},
   pages = {85-91},
   month = sep,
   year = {1987},
   keywords = {Specification, logic, functional, imperative.  Nice paper.}
}

@article{Ferrante87,
   author = {J Ferrante and KJ Ottenstein and JD Warren},
   title = {The program dependence graph and its use in optimisation},
   journal = toplas,
   volume = {9},
   number = {3},
   pages = {319-349},
   month = jul,
   year = {1987},
   keywords = {control flow analysis, data flow, compilers}
}

@article{Ryder86,
   author = {BG Ryder and MC Paull},
   title = {Elimination algorithms for data flow analysis},
   journal = {ACM Computing Surveys},
   volume = {18},
   number = {3},
   pages = {277-316},
   month = sep,
   year = {1986},
   keywords = {Fixed points, collecting interpretation, reducible flow graphs}
}

@inproceedings{Schmidt87,
   author = {DA Schmidt},
   editor = {Bjorner and Ershov and Jones},
   title = {Static properties of partial reduction},
   booktitle = {Workshop on partial evaluation and mixed computation},
   publisher = {North Holland},
   year = {1987},
   keywords = {Two-level metalanguage; Nielson's stuff}
}

@inproceedings{Launchbury87,
   author = {J Launchbury},
   editor = {Bjorner and Ershov and Jones},
   title = {Projections for specialisation},
   booktitle = {Workshop on partial evaluation and mixed computation},
   publisher = {North Holland},
   year = {1987},
   keywords = {Contexts, finite domains, strictness analysis.  cf Wadler \& Hughes}
}

@article{Wadler90,
   author = {PL Wadler},
   title = {Deforestation: transforming programs to eliminate trees},
   journal = {Theoretical Computer Science},
   volume = {73},
   pages = {231-248},
   year = {1990},
   keywords = {Listlessness extended to trees.  Also in ESOP 1988.}
}

@techreport{Rothwell87,
   author = {NJ Rothwell},
   title = {The generation of concurrent code for decalarative languages},
   type = {CST-44-87, Dept Comp Sci, Univ of Edingburgh},
   month = jun,
   year = {1987},
   keywords = {F-hybrid, L-hybird, type-checking logic programs, functional + logic language, parallel machine}
}

@phdthesis{Augustsson87,
   author = {L Augustsson},
   title = {Compiling lazy functional languages, part {II}},
   type = {Ph.{D}. Thesis},
   number = {Dept Comp Sci, Chal---mers University, Sweden},
   year = {1987},
   keywords = {Internal description of LML compiler, denotational semantics of LML, compiling pattern-matching and list comprehensions}
}

@inproceedings{arvind:ttda,
   author = {Arvind and RS Nikhil},
   title = {Executing a program on the {MIT} tagged-token dataflow architecture},
   booktitle = {Proc PARLE (Parallel Languages and Architectures, Europe) Conference, Eindhoven},
   publisher = {Springer Verlag LNCS},
   year = {1987},
   keywords = {Id language, throttling.  Nice description.  I-structures.}
}

@techreport{Arvind87a,
   author = {Arvind and RA Iannucci},
   title = {Two fundamental issues in multiprocessing},
   type = {Proc DFVLR Conference on Parallel Processing in Science and Engineering, Bonn-Bad Godesberg},
   month = jun,
   year = {1987},
   keywords = {synchronisation, latency, dataflow, HEP, Cray, RISC, load/store architectures, caches}
}

@book{DeGroot86,
   author = {D DeGroot and G Lindstrom},
   title = {Logic programming - functions, relations and equations},
   publisher = {Prentice Hall},
   year = {1986},
   keywords = {combining functional and logic programming; logical variable; unification}
}

@article{Veen86,
   author = {AH Veen},
   title = {Dataflow machine architecture},
   journal = {ACM Computing Surveys},
   volume = {18},
   number = {4},
   pages = {365-396},
   month = dec,
   year = {1986},
   keywords = {I-structures, throttle, MIT, Manchester; reasonable survey}
}

@misc{McCluskey86,
   author = {EJ McCluskey},
   title = {Logic design principles},
   year = {1986},
   keywords = {Boolean minimisation}
}

@article{Hoare87a,
   author = {CAR Hoare and et al},
   title = {Laws of programming},
   journal = {CACM},
   volume = {30},
   number = {8},
   pages = {672-687},
   month = aug,
   year = {1987},
   keywords = {Algebra for a small imperative language}
}

@article{Griffiths87,
   author = {G Griffiths and GC Stones},
   title = {The tea-leaf reader algorithm - an efficient implementation of {CRC}-16 and {CRC}-32},
   journal = {CACM},
   volume = {30},
   number = {7},
   pages = {617-620},
   month = jul,
   year = {1987}
}

@article{Jacky87,
   author = {JP Jacky and IJ Kalet},
   title = {An object-oriented programming discipline for standard Pascal},
   journal = {CACM},
   volume = {30},
   number = {9},
   pages = {772-776},
   month = sep,
   year = {1987},
   keywords = {messages, abstract data types, no inheritance.  Interesting as a discussion of what object-oriented programming is, without inheritance.}
}

@article{Tarjan87,
   author = {RE Tarjan},
   title = {Algorithm design},
   journal = {CACM},
   volume = {30},
   number = {3},
   pages = {204-213},
   month = mar,
   year = {1987},
   keywords = {Splay trees, self-organising data structures, planar graphs, complexity.  Good paper.}
}

@article{Stasko87,
   author = {JT Stasko and JS Vitter},
   title = {Pairing heaps - experiment and analysis},
   journal = {CACM},
   volume = {30},
   number = {3},
   pages = {234-249},
   month = mar,
   year = {1987},
   keywords = {Efficient data structure for priority queues}
}

@techreport{Kelly87,
   author = {Paul Kelly},
   title = {Building better parallel programs - turning divide-and-conquer into a cycyclic pipeline},
   type = {Dept of Computing, Imperial College},
   year = {1987},
   keywords = {ray-tracing, locality, scheduling}
}

@article{Anonymous87b,
   key = {Anonymous87b},
   title = {Special issue on programming environments},
   journal = {IEEE Computer},
   volume = {20},
   number = {11},
   month = nov,
   year = {1987},
   keywords = {Cornell program synthesiser, structure editors, separate compilation, source code polemic, incremental compilation. See also IEEE Software Nov 87.}
}

@article{Anonymous87c,
   key = {Anonymous87c},
   title = {Special issue on reusability},
   journal = {IEEE Software},
   month = jul,
   year = {1987},
   keywords = {Libraries, building blocks, generic packages, frames}
}

@inproceedings{Bloss88,
   author = {Adrienne Bloss and Paul Hudak},
   title = {Path semantics},
   booktitle = {Third workshop on mathematical foundations of programming language semantics},
   publisher = {Springer Verlag LNCS},
   year = {1988},
   keywords = {Abstract interpretation, order of evaluation, scheduling}
}

@techreport{Young87,
   author = {Jonathan Young},
   title = {Parameterised collecting semantics},
   type = {Dept Comp Sci, Yale University},
   month = jun,
   year = {1987},
   keywords = {Strictness analysis, doesn't need powerdomains, abstract interpretation}
}

@techreport{Young87a,
   author = {Jonathan Young},
   title = {Composite semantics - one generic environment is enough},
   type = {Dept Comp Sci, Yale University},
   month = jul,
   year = {1987},
   keywords = {abstract interpretation, denotational semantics, strictness analysis}
}

@inproceedings{Hudak88a,
   author = {Paul Hudak and Jonathan Young},
   title = {A collecting interpretation of expressions without powerdomains},
   booktitle = {Proc ACM Conference on Principles of Programming Languages},
   publisher = {ACM},
   month = jan,
   year = {1988},
   keywords = {abstract interpretation, denotational semantics, data flow analysis}
}

@techreport{Bellia87,
   author = {M Bellia and et al},
   title = {A two-level approach to logic plus functional programming integration},
   type = {CSELT, Italy},
   year = {1987},
   keywords = {K-leaf, logical variable, unification, higher order, flattening, lambda lifting}
}

@article{Halstead86,
   author = {RH Halstead},
   title = {An assessment of Multilisp - lessons from experience},
   journal = {International Journal of Parallel Programming},
   volume = {15},
   number = {6},
   month = dec,
   year = {1986},
   keywords = {parallelism profiles, futures, lisp, performance, error handling, speculative parallelism}
}

@techreport{Kieburtz87a,
   author = {Richard B Kieburtz},
   title = {Functions + logic in theory and practice},
   type = {Oregon Graduate Centre},
   month = feb,
   year = {1987},
   keywords = {Prolog, logical variables, graph reduction}
}

@incollection{Clarke87,
   author = {TJW Clarke},
   editor = {G Kahn},
   title = {The {D}-{RISC} - an architecture for use in multiprocessors},
   booktitle = {Functional Programming Languages and Computer Architecture},
   publisher = {Springer Verlag LNCS 274},
   month = sep,
   year = {1987},
   keywords = {concurrency, asynchronous, cache}
}

@incollection{Wadler87b,
   author = {PL Wadler and John Hughes},
   editor = {G Kahn},
   title = {Projections for strictness analysis},
   booktitle = {Functional Programming Languages and Computer Architecture},
   publisher = {Springer Verlag LNCS 274},
   month = sep,
   year = {1987},
   keywords = {domain theory, contexts, non-flat domains.  Very nice.}
}

@techreport{Treleaven86a,
   author = {PC Treleaven and AN Refenes and KJ Lees and SC McCabe},
   title = {Computer architectures for artificial intelligence},
   type = {TR 119, Computer Science Dept, University College London},
   month = mar,
   year = {1986},
   keywords = {Comprehensive survey, lisp, prolog, declarative languages}
}

@inproceedings{Arvind87b,
   author = {Arvind and K Ekanadham},
   title = {Future scientific programming on parallel machines},
   booktitle = {Proc International Conference on Supercomputing, Athens},
   month = jun,
   year = {1987},
   keywords = {Fortran, Id, dataflow, SIMPLE code, transformations. Excellent.}
}

@techreport{Ekanadham87,
   author = {K Ekanadham and Arvind},
   title = {{SIMPLE}: Part {I}.  An exercise in future scientific programming},
   type = {CSG Memo},
   number = {273},
   month = jul,
   year = {1987},
   keywords = {Fortran, Id, dataflow, detailed description of SIMPLE.  Excellent.}
}

@incollection{Kranz86,
   author = {DA Kranz and R Kelsey and J Rees and P Hudak and J Philbin and N Adams},
   title = {{ORBIT} - an optimising compiler for Scheme},
   booktitle = {Proc SIGPLAN Symposium on Compiler Construction},
   publisher = {ACM},
   year = {1986},
   keywords = {Lisp, continuation-passing style CPS, lexical closures, trace scheduling for register allocation}
}

@inproceedings{Bosco88,
   author = {PG Bosco and C Cecchi and C Moiso},
   title = {Practical programming with a higher-order logic+functional language},
   booktitle = {Italian conference on Logic Programming, Rome},
   month = may,
   year = {1988},
   keywords = {K-LEAF, CSELT group, hardware simulation, logic, application}
}

@inproceedings{darlington+:alice,
   author = {John Darlington and Mike Reeve},
   title = {{ALICE} - a multiprocessor reduction machine for the parallel evaluation of applicative languages},
   booktitle = {Proc Conference on Functional Programming Languages and Computer Architecture, Portsmouth, New Hampshire},
   pages = {66-76},
   publisher = {ACM},
   month = oct,
   year = {1981},
   keywords = {packets, agents}
}

@article{Eager89,
   author = {DL Eager and J Zahorjan and ED Lazowska},
   title = {Speedup versus efficiency in parallel systems},
   journal = {IEEE Trans Computers},
   volume = {38},
   number = {3},
   month = mar,
   year = {1989},
   keywords = {scheduling policy, average parallelism, parallelism profile. Excellent paper}
}

@article{burton:speculative,
   author = {F Warren Burton},
   title = {Speculative computation, parallelism and functional programming},
   journal = {IEEE Trans Computers},
   volume = {C-34},
   number = {12},
   pages = {1190-1193},
   month = dec,
   year = {1985},
   keywords = {backtracking, priority}
}

@techreport{Cousineau87,
   author = {Guy Cousineau and et al},
   title = {Using the Categorical Abstract Machine to implement the {ML} language},
   type = {INRIA - slides from Santa Fe workshop},
   year = {1987},
   keywords = {CAM}
}

@techreport{Hudak87a,
   author = {Paul Hudak},
   title = {Programming with and implementing functional arrays},
   type = {Yale - slides from Santa Fe workshop},
   year = {1987},
   keywords = {update in place, I-structures}
}

@techreport{Jayaraman87,
   author = {Bharat Jayaraman and Gopal Gupta},
   title = {Parallel execution of an equational language},
   type = {Dept Comp Sci, Univ of North Carolina},
   year = {1987},
   keywords = {logic and func prog, narrowing. Seems quite good.}
}

@book{Steele84,
   author = {Guy L Steele},
   title = {Common Lisp - the language},
   publisher = {Digital Press},
   year = {1984}
}

@techreport{Raber87a,
   author = {M Raber and et al},
   title = {Compiled graph reduction on a processor network},
   type = {Informatik, Universitat des Saarlandes},
   month = dec,
   year = {1987},
   keywords = {Not much good}
}

@techreport{Raber87b,
   author = {M Raber and et al},
   title = {A concept for a parallel {G}-machine},
   type = {Informatik, Universitat des Saarlandes},
   month = dec,
   year = {1987},
   keywords = {Not much good}
}

@incollection{Metayer85a,
   author = {D Le Metayer},
   title = {Mechanical analysis of program complexity},
   booktitle = {ACM SIGPLAN Symposium on Programming Languages and Programming Environments"},
   month = jul,
   year = {1985},
   keywords = {Mainly FP, time complexity},
   note = {Published as SIGPLAN Notices, volume 20, number 7}
}

@techreport{Perry87,
   author = {Nigel Perry},
   title = {Hope+{C} - a continuation extension for Hope+},
   type = {Dept of Computing, Imperial College},
   month = oct,
   year = {1987},
   keywords = {Input/Output in a functional language, I/O, interrupts, process management.  Good ideas.}
}

@techreport{ODonnell87,
   author = {JT O'Donnell and CV Hall},
   title = {Debugging in applicative languages},
   type = {Computer Science Dept, Indiana University},
   month = dec,
   year = {1987},
   keywords = {programming environment, Daisy, streams, interactive programs, lazy evaluation}
}

@techreport{Wadler87c,
   author = {PL Wadler},
   title = {The concatenate vanishes},
   type = {Dept of Computer Science, Glasgow University},
   month = dec,
   year = {1987},
   keywords = {Transformation to remove calls to append.  Improves efficiency a lot in some cases.  Defines "creative" and "second-hand" functions.}
}

@article{Vries88,
   author = {FJ de Vries},
   title = {A functional program for the fast fourier transform},
   journal = {SIGPLAN Notices},
   volume = {23},
   number = {1},
   pages = {67-74},
   month = jan,
   year = {1988},
   keywords = {FFT, good description of FFT algorithm, applications, numerical programming}
}

@techreport{Reynolds88,
   author = {TJ Reynolds and SA Delgado-Rannauro and ASK Cheng and AJ Beaumont},
   title = {{BRAVE} on {GRIP}},
   type = {Department of Computer Science, University of Essex},
   year = {1988},
   keywords = {Prolog, logic programming, or-parallelism}
}

@techreport{Lafont88,
   author = {Y Lafont},
   title = {Reducibility and evaluation},
   type = {Imperial College},
   month = mar,
   year = {1988},
   keywords = {Weak normalisation theorem for simple typed lambda calculus; quite a nice simple proof}
}

@inproceedings{MacQueen86,
   author = {D MacQueen},
   title = {Using dependent types to express modular structure},
   booktitle = {ACM Conference on Principles of Programming Languages},
   pages = {277-286},
   month = jan,
   year = {1986},
   keywords = {Standard ML, functional langauges, polymorphism, generic modules}
}

@article{Ousterhout88,
   author = {JK Ousterhout and AR Cherenson and F Douglis and MN Nelson and BB Welch},
   title = {The Sprite network operating system},
   journal = {IEEE Computer},
   volume = {21},
   number = {2},
   pages = {23-36},
   month = feb,
   year = {1988},
   keywords = {Unix, Spur, Berkeley, remote procedure call, NFS, cacheing.  Nice description of a good system}
}

@book{Hankin86,
   editor = {C Hankin and S Abramsky},
   title = {Abstract Interpretation of Declarative Languages},
   pages = {246-265},
   publisher = {Ellis Horwood},
   address = {Chichester},
   year = {1986},
   keywords = {strictness analysis, book}
}

@article{Anonymous88,
   key = {Anonymous88},
   title = {Special issue on arificial neural systems},
   journal = {IEEE Computer},
   volume = {21},
   number = {3},
   month = mar,
   year = {1988},
   keywords = {Speech recognition, learning, artificial intelligence}
}

@article{Kay88,
   author = {J Kay and P Lauder},
   title = {A fair share scheduler},
   journal = {CACM},
   volume = {31},
   number = {1},
   pages = {44-55},
   month = jan,
   year = {1988},
   keywords = {Scheduler for a time-sharing system which ensures that everyone gets a fair share of resources.  Well written.}
}

@article{Ringwood88,
   author = {GA Ringwood},
   title = {Parlog86 and the dining philosophers},
   journal = {CACM},
   volume = {31},
   number = {1},
   pages = {10-25},
   month = jan,
   year = {1988},
   keywords = {Good intro to Parlog.  Guards, pattern-matching, committed-choice non-determinism, CCND, logic.}
}

@article{Anonymous88a,
   key = {Anonymous88a},
   title = {2 papers on connectionist networks},
   journal = {CACM},
   volume = {31},
   number = {2},
   month = feb,
   year = {1988},
   keywords = {neural networks, expert systems}
}

@phdthesis{traub:thesis,
   author = {Ken Traub},
   title = {Sequential implementation of lenient programming languages},
   type = {Ph.{D}. Thesis},
   school = {MIT Lab for Computer Science},
   year = {1988},
   keywords = {Non-strict but not lazy!  G-machine, Orbit.  Good thesis.}
}

@techreport{Jones87,
   author = {SB Jones and D Le Metayer},
   title = {Desired language characteristics with respect to the computation of complexity and degree of parallelism},
   type = {Esprit},
   number = {302},
   month = mar,
   year = {1987},
   keywords = {abstract data types, ACE, CAT, FP}
}

@techreport{Jones87a,
   editor = {SB Jones},
   title = {Investigation of performance achievable with highly concurrent interpreations of functional programs},
   type = {Esprit},
   number = {302},
   month = oct,
   year = {1987},
   keywords = {Parallel functional programming, complexity, FP, CAT, ACE}
}

@techreport{Uddeborg88,
   author = {GO Uddeborg},
   title = {A functional parser generator},
   type = {Report 43, Programming Methodology Group, Chal---mers University, Goteborg},
   month = feb,
   year = {1988},
   keywords = {Attribute grammars, written in LML, discussion about type problems in parser generators}
}

@techreport{Arvind88,
   author = {{Arvind}},
   title = {The paraffins problem},
   institution = {Arvind},
   type = {Lab for Computer Science, MIT},
   month = mar,
   year = {1988},
   keywords = {Array comprehensions, lazy evaluation, application of func prog}
}

@article{Chao88,
   author = {SJ Chao and BR Bryant},
   title = {Denotational semantics for program analysis},
   journal = {Sigplan Notices},
   volume = {23},
   number = {1},
   month = jan,
   year = {1988},
   keywords = {Partial evaluation, compiler generation, mix; not wildly original}
}

@techreport{Burton87,
   author = {FW Burton and JG Kollias},
   title = {Functional programming and quadtrees},
   type = {Dept of Computer Science, Univ of Utah},
   month = sep,
   year = {1987},
   keywords = {graphics, lazy evaluation}
}

@techreport{Goguen88,
   author = {JA Goguen},
   title = {What is unification - a categorical view of substitution, equation and solution},
   type = {SRI-CSL-88-2},
   month = jan,
   year = {1988},
   keywords = {A very nice introduction to category theory in the context of substitution}
}

@techreport{Hudak88b,
   author = {Paul Hudak},
   title = {Haskell solutions to the language session problems},
   type = {Dept Comp Sci, Yale},
   month = mar,
   year = {1988},
   keywords = {applications of functional programming, arrays, paraffins problem, skyline matrix solver, hamming problem; Salishan conference}
}

@techreport{Buckingham88,
   author = {J Buckingham and R Rae and P Wilk},
   title = {Parallel processing for {AI} problem solving},
   type = {AIAI-TR-34},
   month = jan,
   year = {1988},
   keywords = {artificial intelligence, CCND logic languages, applications, functional programming, non-determinism}
}

@article{Dewdney86,
   author = {AK Dewdney},
   title = {Generic reduction computers},
   journal = {Congressus Numerantium},
   volume = {54},
   pages = {21-38},
   month = dec,
   year = {1986},
   keywords = {"reduction" means polytime reduction between NP-complete problems; paper describes a general reduction to an instance of SAT, plus a parallel machine to solve SAT!}
}

@techreport{Hartel88,
   author = {Pieter H Hartel},
   title = {A comparative study of four garbage-collection algorithms},
   type = {Computing Science Dept, University of Amsterdam},
   month = feb,
   year = {1988},
   keywords = {reference counting, copying, mark-scan, influence of store size}
}

@techreport{Argo87,
   author = {G Argo and J Hughes and J Fairbairn and J Launchbury},
   title = {Implementing functional databases},
   type = {Dept Comp Sci, Univ of Glasgow},
   year = {1987},
   keywords = {transactions, concurrency}
}

@techreport{Burton86,
   author = {F Warren Burton},
   title = {Nondeterminism with referential transparency in functional programming languages},
   type = {Dept Comp Sci, Univ of Utah},
   month = jun,
   year = {1986},
   keywords = {tree of decisions, timestamps, parallelism, amb}
}

@techreport{Lindstrom83,
   author = {Gary Lindstrom},
   title = {The key node method - a highly parallel alpha-beta algorithm},
   type = {UUCS 83-101, Dept Comp Sci, Univ of Utah},
   month = mar,
   year = {1983}
}

@techreport{Gopalakrishnan87,
   author = {GC Gopalakrishnan and MK Srivas},
   title = {Implementing functional programs using mutable abstract data types},
   type = {UUCS-87-019, Dept Comp Sci, Univ of Utah},
   year = {1987},
   keywords = {Choosing evaluation order to allow update in place; arrays}
}

@techreport{Gopalakrishnan87a,
   author = {GC Gopalakrishnan},
   title = {A compositional model for synchronous {VLSI} systems},
   type = {UUCS-87-024},
   year = {1987},
   keywords = {behaviours, hardware design, CCS CSP}
}

@techreport{George87,
   author = {Lal George},
   title = {Parallel combinator reduction - a polling implementation},
   type = {Dept Comp Sci, Univ of Utah},
   month = aug,
   year = {1987},
   keywords = {Parallel G-machine, graph reduction}
}

@techreport{Lindstrom87,
   author = {Gary Lindstrom and Lal George and Dowming Yeh},
   title = {Generating efficient code from strictness annotations},
   type = {Dept Comp Sci, Univ of Utah},
   year = {1987},
   keywords = {G-machine, graph reduction}
}

@techreport{Seidl87,
   author = {H Seidl},
   title = {The construction of minimal models},
   type = {Fachbereich Informatik, JW Goethe Universitat},
   year = {1987},
   keywords = {Stictness analysis}
}

@article{Takeichi87,
   author = {M Takeichi},
   title = {Partial parameterisation eliminates multiple traversals of data structures},
   journal = {Acta Informatica},
   volume = {24},
   number = {57-77},
   year = {1987},
   keywords = {Functional programming techniques, almost-circular programs}
}

@article{Fiol84,
   author = {MA Fiol and M Valero and JLA Yebra and T Lang},
   title = {Reduced interconnection networks based in the multiple bus for multimicorprocessor systems},
   journal = {Int Journal of Mini and Microcomputers},
   volume = {6},
   number = {1},
   pages = {4-9},
   year = {1984},
   keywords = {Multiple buses don't need to be connected to all units; in fact a lot less will do!}
}

@techreport{Watson86,
   author = {Paul Watson},
   title = {Parallel reduction of lambda calculus expressions},
   type = {UMCS-87-2-1, Dept Comp Sci, Univ of Manchester},
   month = jul,
   year = {1986},
   keywords = {PhD thesis; graph reduction in parallel}
}

@techreport{Meijer88,
   author = {Erik Meijer},
   title = {Generalised expression evaluation},
   type = {Dept of Informatics, Univ of Nijmegen},
   year = {1988},
   keywords = {Systematic derivation of TIM, G-machine, SECD machine etc; nice work}
}

@techreport{Young86a,
   author = {J Young and P Hudak},
   title = {Finding fixpoints on function spaces},
   type = {YALEU/DCS/RR-505, Dept Comp Sci, Yale University},
   month = dec,
   year = {1986},
   keywords = {Pending analysis, frontiers, usual bad worst-case good average-case, strictness analysis}
}

@techreport{Henson87,
   author = {MC Henson},
   title = {Higher order transformations and relational constraints},
   type = {Dept Comp Sci, Univ of Essex},
   month = feb,
   year = {1987},
   keywords = {Lazy evaluation, functional programming, program transformation}
}

@techreport{Warren??,
   author = {D Warren},
   title = {The {SRI} model for or-parallel execution of Prolog},
   type = {Dept Comp Sci, Univ of Manchester},
   keywords = {WAM, Warren Abstract Machine}
}

@techreport{Loogen87,
   author = {Rita Loogen},
   title = {{PAM} - a parallel abstract reduction machine for the implementation of serial combinator systems},
   type = {Lehrstuhl fur Informatik II, Aachen},
   year = {1987},
   keywords = {distributed memory, serial combinators, graph reduction}
}

@article{Filman??,
   author = {RE Filman},
   title = {Reasoning with worlds and truth maintenance in a knowledge-baseed system shell},
   journal = {CACM},
   volume = {31},
   number = {4},
   pages = {382-401},
   year = {Apr 88}
}

@article{Larson88,
   author = {PA Larson},
   title = {Dynamic hash tables},
   journal = {CACM},
   volume = {31},
   number = {4},
   pages = {446-457},
   month = apr,
   year = {1988},
   keywords = {Shows how to make hash tables which can change their size}
}

@article{Anonymous88b,
   key = {Anonymous88b},
   title = {Special issue on multiple-valued logic},
   journal = {IEEE Computer},
   volume = {21},
   number = {4},
   month = apr,
   year = {1988},
   keywords = {Digital hardware design, fuzzy logic}
}

@techreport{Broek86,
   author = {PM van den Broek and GF van der Hoeven},
   title = {Combinatorgraph reduction and the Church-Rosser property},
   type = {INF-86-15, Twente University Dept of Informatics},
   month = sep,
   year = {1986},
   keywords = {Rigorous treatment based on graph rewrite systems. DACTL connections?}
}

@techreport{Callen87,
   author = {M Callen and et al},
   title = {A test-bed for experiments of hierachical data models in integrated geographic information systems},
   type = {Workshop on spatial data processing using tesseral methods},
   year = {1987?},
   keywords = {Quadtrees}
}

@techreport{Gahegan87,
   author = {M Gahegan and J Hogg},
   title = {A pilot geographical information system based on linear quadtrees and a relational database for regional analysis},
   type = {Workshop on spatial data processing using tesseral methods},
   year = {1987?}
}

@article{Cole86,
   author = {AJ Cole},
   title = {Direct transformations betweensets of integers and Hilbert polygons},
   journal = {International Journal Computer Mathematics},
   volume = {20},
   pages = {115-122},
   year = {1986},
   keywords = {Space-filling curves, quadtrees}
}

@article{Cole85,
   author = {AJ Cole},
   title = {A note on Peano polygons and Gray codes},
   journal = {International Journal Computer Mathematics},
   volume = {18},
   pages = {3-13},
   year = {1985},
   keywords = {Space-filling curves, quadtrees}
}

@article{Cole86a,
   author = {AJ Cole},
   title = {Multiple radix arithmetic and computer graphics},
   journal = {Inst of Mathematics and its Applications},
   volume = {22},
   pages = {71-75},
   month = may,
   year = {1986},
   keywords = {Space-filing curves, quadtrees}
}

@article{Cole87,
   author = {AJ Cole},
   title = {Compaction techniques for raster-scan graphics using space-filling curves},
   journal = {Computer Journal},
   volume = {30},
   number = {1},
   pages = {87-92},
   year = {1987},
   keywords = {Space-filling curves, graphics, quadtrees}
}

@incollection{Cole87a,
   author = {AJ Cole},
   title = {Data compaction using Murray polygons},
   booktitle = {Proc Computer Graphics 87},
   pages = {185-193},
   publisher = {Online Publications},
   year = {1987},
   keywords = {Space-filling curves, quadtrees}
}

@techreport{Backus86a,
   author = {John Backus and John H Williams and Edward L Wimmers},
   title = {{FL} Language manual},
   type = {RJ5339, IBM San Jose},
   year = {1986},
   keywords = {FP, input/output I/O IO in a functional language, type-checking}
}

@incollection{Caspi87,
   author = {P Caspi and D Pilaud and N Halbwachs and JA Plaice},
   title = {{LUSTRE} - a declarative language for programming synchronous systems},
   booktitle = {ACM POPL},
   pages = {178-189},
   year = {1987},
   keywords = {Real-time, IO I/O in a functional language, streams, time behaviour}
}

@incollection{Kohlbecker87,
   author = {EE Kohlbecker and M Wand},
   title = {Macro-by-example - deriving syntactic transformations from their specifications},
   booktitle = {POPL},
   pages = {77-84},
   publisher = {ACM},
   year = {1987},
   keywords = {Lisp, formal semantics}
}

@techreport{Henson87a,
   author = {MC Henson},
   title = {The alpha-beta algorithm - a derivation based on type simulation and higher order accumulation},
   type = {CSM-104, Dept Comp Sci, Univ of Essex},
   month = aug,
   year = {1987},
   keywords = {Program transformation, minimax}
}

@techreport{Wand80,
   author = {M Wand},
   title = {Deriving target code as a representation of continuation semantics},
   type = {TR 94, Dept Comp Sci, Indiana Univ},
   month = jun,
   year = {1980},
   keywords = {Compilers, code generation, abstract machine, formal semantics}
}

@techreport{Sestoft85,
   author = {P Sestoft},
   title = {The structure of a self-applicable partial evaluator},
   type = {DIKU, Univ of Copenhagen},
   month = nov,
   year = {1985},
   keywords = {MIX, partial evaluation, compilers, interpreters}
}

@inproceedings{Laville87,
   author = {A Laville},
   title = {Lazy pattern-matching in the {ML} language},
   booktitle = {7th Conference on Foundations of Software Technology and Theoretical Computer Science},
   publisher = {LNCS 287, Springer Verlag},
   month = dec,
   year = {1987}
}

@techreport{Warren83,
   author = {David HD Warren},
   title = {An abstract prolog instruction set},
   type = {Technical Note 309, SRI International},
   month = oct,
   year = {1983},
   keywords = {WAM, Warren abstract machine, unification, logic}
}

@incollection{Castan86,
   author = {M Castan and et al},
   title = {{MARS} - a multiprocessor machine for parallel graph reduction},
   booktitle = {Proc 19th Hawaii Intl Conf on System Sciences},
   year = {1986},
   keywords = {SK combinator machine, not v interesting I think}
}

@techreport{Augusteijn84a,
   author = {L Augusteijn},
   title = {A translation of combinator graphs into machine code},
   type = {Dept Comp Sci, Twente University},
   year = {1984},
   keywords = {Representing SK combinators by machine-code sequences; rather clever}
}

@article{Lins:cyclic-lazy,
   author = {RD Lins},
   title = "Cyclic reference counting with lazy mark-scan",
   journal = "Information Processing Letters",
   volume = 44,
   year = 1992,
   keywords = {garbage collection}
}

@article{Lins:cyclic-local,
   author = {RD Lins},
   title = "Cyclic reference counting with local mark-scan",
   journal = "Information Processing Letters",
   volume = 34,
   year = 1990,
   keywords = {garbage collection}
}

@article{Lins:cyclic-gen,
   author = {RD Lins},
   title = "Generational cyclic reference counting",
   journal = "Information Processing Letters",
   volume = 46,
   year = 1993,
   keywords = {garbage collection}
}

@techreport{Lins85,
   author = {RD Lins},
   title = {A new formula for the execution of categorical combinators},
   type = {Report 33, Computer Lab, Univ of Kent},
   month = nov,
   year = {1985},
   keywords = {Rewriting systems, environments, CAML stuff}
}

@techreport{Lins85a,
   author = {RD Lins},
   title = {On the efficiency of categorical combinators as a rewriting system},
   type = {Report 34, Computer Lab, Univ of Kent},
   month = nov,
   year = {1985},
   keywords = {CAML}
}

@techreport{Pepels85,
   author = {B Pepels and T Brus},
   title = {Simulating the parallel execution of Sasl programs},
   type = {Univ of Nijmegen},
   year = {1985},
   keywords = {Parallelism simulations and annotations; good work}
}

@techreport{Castan85,
   author = {M Castan and MH Durand and M Lemaitre},
   title = {A set of combinators for abstraction in linear space},
   type = {ONERA-CERT},
   month = sep,
   year = {1985},
   keywords = {SK combinators}
}

@techreport{Robinson84a,
   author = {JA Robinson},
   title = {Syracuse university parallel expression reduction ({SUPER}) - first annual progress report},
   type = {Syracuse Univ},
   month = dec,
   year = {1984},
   keywords = {Logical variables and functional programming, unification}
}

@techreport{Pingali84,
   author = {K Pingali and V Kathail},
   title = {An introduction to the lambda calculus},
   type = {MIT Lab for Computer Science},
   month = jul,
   year = {1984}
}

@techreport{Nikhil85,
   author = {RS Nikhil and Arvind},
   title = {Id/83s},
   type = {MIT Lab for Computer Science},
   month = jul,
   year = {1985},
   keywords = {Id language manual (now out of date)}
}

@incollection{Farrow83,
   author = {R Farrow},
   title = {Attribute grammars and data-flow languages},
   booktitle = {SIGPLAN Notices},
   publisher = {ACM},
   year = {1983},
   keywords = {Similarities between attrib grams and functional languages}
}

@techreport{Bethke85,
   author = {B Bethke and M Kaufmann and C Mills},
   title = {The {ARC} Eta compiler},
   type = {Austin Research Centre, Burroughs},
   month = oct,
   year = {1985},
   keywords = {Sasl-$>$SK combinators, taking lots of care over eta conversion}
}

@article{Stoll88,
   author = {C Stoll},
   title = {Stalking the wily hacker},
   journal = {CACM},
   volume = {31},
   number = {5},
   pages = {484-497},
   month = may,
   year = {1988},
   keywords = {Documents the break-in of German hacker to US networks.  Informative.}
}

@article{Appel88,
   author = {AW Appel and GJ Jacobson},
   title = {The world's fastest scrabble program},
   journal = {CACM},
   volume = {31},
   number = {5},
   pages = {572-578},
   month = may,
   year = {1988},
   keywords = {Computer games, dictionary, lexicon, directed word graphs. Nice article}
}

@article{Gustafson88,
   author = {JL Gustafson},
   title = {Reevaluating Amdahl's law},
   journal = {CACM},
   volume = {31},
   number = {5},
   pages = {532-533},
   month = may,
   year = {1988},
   keywords = {Parallelism scales with problem =$>$ programs not so dominated by serial bits as Amdahl's law says.  Concise.}
}

@techreport{Harrison86,
   author = {PG Harrison and H Khoshnevisan},
   title = {On the synthesis of function inverses},
   type = {Imperial College},
   month = apr,
   year = {1986},
   keywords = {Program transformation}
}

@techreport{Staples86,
   author = {J Staples and PJ Robinson},
   title = {Efficient unification of quantified terms},
   type = {Univ of Queensland},
   year = {1986?},
   keywords = {Logic and functional programming}
}

@techreport{Harrison86a,
   author = {PG Harrison and H Khoshnevisan},
   title = {Efficient compilation of linear recursive functions into object level loops},
   type = {Dept of Computing, Imperial College},
   year = {1986},
   keywords = {Program transformation, tail recursion}
}

@techreport{Harrison86b,
   author = {PG Harrison},
   title = {Optimisation of {FP} programs by linearisation},
   type = {Dept of Computing, Imperial College},
   year = {1986},
   keywords = {Program transformation, tail recursion}
}

@techreport{Glauert88,
   author = {JRW Glauert and K Hammond and JR Kennaway and GA Papadopoulos and MR Sleep},
   title = {{DACTL} - some introductory reports},
   type = {SYS-C88-08, School of Info Sys, Univ of East Anglia},
   year = {1988},
   keywords = {Graph rewriting, reduction}
}

@inproceedings{Wadler85c,
   author = {PL Wadler},
   title = {Listlessness is better than laziness {II}: composing listless functions},
   booktitle = {Proc Workshop on Programs as Data Objects, Copenhagen},
   publisher = {LNCS 217, Springer Verlag},
   year = {1985}
}

@inproceedings{Mycroft85,
   author = {A Mycroft and ND Jones},
   title = {A relational framework for abstract interpretation},
   booktitle = {Proc Workshop on Programs as Data Objects, Copenhagen},
   publisher = {LNCS 217, Springer Verlag},
   year = {1985},
   keywords = {Hindley/Milner polymorphic type inference as abstract interpretation, logical relations}
}

@article{Mou??,
   author = {ZG Mou and P Hudak},
   title = {An algebraic model for divide-and-conquer and its parallelism},
   journal = {Journal of Supercomputing},
   volume = {2},
   pages = {257-278},
   keywords = {homomorphism}
}

@article{Anonymous90,
   key = {Anonymous90},
   title = {Special issue on cache architectures in tightly-coupled multiprocessors},
   journal = {IEEE Computer},
   volume = {23},
   number = {6},
   month = jun,
   year = {1990},
   keywords = {snoopy cache, directory-based cache coherence}
}

@article{Anonymous90a,
   key = {Anonymous90a},
   title = {Special issue on recent developments in operating systems},
   journal = {IEEE Computer},
   volume = {23},
   number = {5},
   month = may,
   year = {1990},
   keywords = {Mach Amoeba, x-kernel, distributed shared memory, Andrew, Coda.}
}

@techreport{Andersen88,
   author = {J Andersen and C Hankin},
   title = {Strictness analysis using structural operational semantics},
   type = {Imperial College},
   month = jan,
   year = {1988}
}

@techreport{Kelly88,
   author = {Paul Kelly},
   title = {Declarative annotations for distributed functional programming},
   type = {Dept of Computing, Imperial College},
   month = jan,
   year = {1988},
   keywords = {Caliban; subject of his PhD; parallelism annotations}
}

@article{Arvind89,
   author = {Arvind and RS Nikhil and KK Pingali},
   title = {I-structures - data structures for parallel computing},
   journal = toplas,
   volume = {11},
   number = {4},
   pages = {598-632},
   month = oct,
   year = {1989},
   keywords = {Arrays, update in place, subscript analysis, semantics of Id}
}

@incollection{Laville88,
   author = {Alain Laville},
   title = {Implementation of lazy pattern matching algorithms},
   booktitle = {2nd European Symposium on Programming, Nancy},
   pages = {298-316},
   publisher = {LNCS 300, Springer Verlag},
   month = mar,
   year = {1988}
}

@article{Stroustrup88,
   author = {B Stroustrup},
   title = {What is object-oriented programming},
   journal = {IEEE Software},
   pages = {10-20},
   month = may,
   year = {1988},
   keywords = {Rather biased to C++, but a good general paper about OO prog}
}

@article{Sherman88,
   author = {M Sherman and RL Drysdale},
   title = {Teaching software engineering in a workstation environment},
   journal = {IEEE Software},
   pages = {68-77},
   month = may,
   year = {1988},
   keywords = {Windows, mouse, curriculum.  Good paper}
}

@article{Meyers88,
   author = {RJ Meyers and JW Parrish},
   title = {The Macintosh programmer's workshop},
   journal = {IEEE Software},
   pages = {59-67},
   month = may,
   year = {1988},
   keywords = {Interesting background to Mac tools}
}

@article{Thimbleby88,
   author = {H Thimbleby},
   title = {Delaying committment},
   journal = {IEEE Software},
   pages = {78-86},
   month = may,
   year = {1988},
   keywords = {Keeping designs open as long as possible.  Not much different from abstract data types}
}

@article{Anonymous88c,
   key = {Anonymous88c},
   title = {Special issue on operating systems; distributed systems; file systems; real-time systems},
   journal = {CACM},
   volume = {31},
   number = {3},
   month = mar,
   year = {1988},
   keywords = {Cedar, Argus, V}
}

@article{Huang88,
   author = {BC Huang and MA Langston},
   title = {Practical in-place merging},
   journal = {CACM},
   volume = {31},
   number = {3},
   pages = {348-352},
   month = mar,
   year = {1988},
   keywords = {Merging in constant extra space (ie overwriting the original sequences)}
}

@article{lelewer:compression-survey,
   author = {DA Lelewer and DS Hirschberg},
   title = {Data compression},
   journal = {ACM Computing Surveys},
   volume = {19},
   number = {3},
   pages = {261-296},
   month = sep,
   year = {1987},
   keywords = {Arithmetic coding, Huffman, Lempel-Ziv etc etc.  A good survey.}
}

@article{Guthery88,
   author = {SB Guthery},
   title = {Self-timing programs and the quantum scheduler},
   journal = {CACM},
   volume = {31},
   number = {6},
   pages = {696-703},
   month = jun,
   year = {1988},
   keywords = {Very nice idea; dynamically schedule basic blocks against their declared real-time deadlines; short and easy to read}
}

@article{KAppleby88,
   author = {KAppleby and M Carllson and S Haridi and D Sahlin},
   title = {Garbage collection for Prolog based on {WAM}},
   journal = {CACM},
   volume = {31},
   number = {6},
   pages = {719-741},
   month = jun,
   year = {1988},
   keywords = {Nice paper.}
}

@article{LEcuyer88,
   author = {P L'Ecuyer},
   title = {Efficient and portable combined random number generators},
   journal = {CACM},
   volume = {31},
   number = {6},
   pages = {742-749},
   month = jun,
   year = {1988},
   keywords = {Looks good, but I havn't read it.}
}

@techreport{Genner88,
   author = {RE Genner and JL Gustafson and RE Montry},
   title = {Development and analysis of scientific applications programs on a 1024-processor hypercube},
   type = {SAND 88-0317, Sandia National Laboratories, Albuquerque},
   month = feb,
   year = {1988},
   keywords = {Very large speedups 1021-1023!}
}

@techreport{McBurney87,
   author = {DL McBurney and MR Sleep},
   title = {Experiments with {ZAPP} - matrix multiply and heuristics search},
   type = {SYS-C87-10, School of Info Sys, Univ of East Anglia},
   year = {1987},
   keywords = {virtual tree, divide and conquer}
}

@inproceedings{McBurney87a,
   author = {D McBurney and MR Sleep},
   title = {Transputer-based experiments with the Zapp architecture},
   booktitle = {Proc PARLE Conference I},
   pages = {247-259},
   publisher = {LNCS 258, Springer Verlag},
   year = {1987},
   keywords = {virtual tree, matrix multiply, knapsack optimisation}
}

@inproceedings{Kaes88
  ,author={Stefan Kaes}
  ,title={Parametric Overloading in Polymorphic Programming Languages}
  ,booktitle={Proceedings of the 2nd European Symposium on Programming}
  ,publish={Springer Verlag, LNCS 300}
  ,year={1988}
  }

@techreport{Burton88,
   author = {FW Burton},
   title = {Type extension through polymorphism},
   type = {Dept Comp Sci, Univ of Utah},
   month = may,
   year = {1988},
   keywords = {object-oriented programming, inheritance}
}

@article{Takeichi88,
   author = {M Takeichi},
   title = {Lambda-hoisting - a transformation technique for fully lazy evaluation of functional programs},
   journal = {New Generation Computing},
   volume = {5},
   pages = {377-391},
   year = {1988},
   keywords = {Can't quite distinguish this from lambda-lifting!}
}

@article{Atkinson87,
   author = {MP Atkinson and OP Buneman},
   title = {Types and persistence in database programming languages},
   journal = {ACM Computing Surveys},
   volume = {19},
   number = {2},
   pages = {105-190},
   month = jun,
   year = {1987},
   keywords = {data models, object-oriented programming, inheritence; good paper; SQL, Codasyl, relational databases}
}

@article{Knapp87,
   author = {E Knapp},
   title = {Deadlock detection in distributed databases},
   journal = {ACM Computing Surveys},
   volume = {19},
   number = {4},
   pages = {303-328},
   month = dec,
   year = {1987}
}

@article{Mills87,
   author = {CB Mills and LJ Weldon},
   title = {Reading text from computer screens},
   journal = {ACM Computing Surveys},
   volume = {19},
   number = {4},
   pages = {329-359},
   month = dec,
   year = {1987},
   keywords = {human-computer interface, HCI.}
}

@article{Kelley88,
   author = {KL Kelley and M Rusinkiewicz},
   title = {Multikey extensible hashing for relational databases},
   journal = {IEEE Software},
   pages = {77-85},
   month = jul,
   year = {1988},
   keywords = {file structure}
}

@article{Anonymous88d,
   key = {Anonymous88d},
   title = {Articles about fourth-generation languages (4GLs) and application generators},
   journal = {IEEE Software},
   month = jul,
   year = {1988},
   keywords = {Stage}
}

@article{Lilja88,
   author = {DJ Lilja},
   title = {Reducing the branch penalty in pipelined processors},
   journal = {IEEE Computer},
   volume = {21},
   number = {7},
   pages = {47-58},
   month = jul,
   year = {1988},
   keywords = {architecture; a survey and tutorial}
}

@article{Steenkiste88,
   author = {P Steenkiste and J Hennessy},
   title = {Lisp on a {RISC} --- characterisation and optimisation},
   journal = {IEEE Computer},
   volume = {21},
   number = {7},
   pages = {34-46},
   month = jul,
   year = {1988},
   keywords = {architecture, tagging}
}

@article{Camurati88,
   author = {P Camurati and P Prinetto},
   title = {Formal verification of hardware correctness - introduction and survey},
   journal = {IEEE Computer},
   volume = {21},
   number = {7},
   pages = {34-46},
   month = jul,
   year = {1988},
   keywords = {formal logic, higher-order logic, temporal logic, Floyd logic}
}

@techreport{Breuer88,
   author = {PT Breuer},
   title = {The implementation of the data language {DL}},
   type = {CUED/F-INFENG/TR17},
   year = {1988},
   keywords = {database functional language, CAD}
}

@techreport{Breuer88a,
   author = {PT Breuer},
   title = {A data language - {DL}},
   type = {CUED/F-INFENG/TR16},
   year = {1988},
   keywords = {database functional language, CAD, operating system, editors, I/O in a functional language}
}

@inproceedings{Appel88a,
   author = {AW Appel and JR Ellis and Kai Li},
   title = {Real-time concurrent collection on stock multiprocessors},
   booktitle = {Proc SIGPLAN Conference on Programming Language Design and Implementation, Atlanta},
   pages = {11-20},
   publisher = {ACM},
   month = jun,
   year = {1988},
   keywords = {garbage collection, Baker, generations, incremental, uses page-fault hardware to speed gc; very nice stuff}
}

@inproceedings{Jategaonkar88,
   author = {LA Jategaonkar and JC Mitchell},
   title = {{ML} with extended pattern-matching and subtypes},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming},
   publisher = {ACM},
   month = jul,
   year = {1988},
   keywords = {record patterns with subtypes and inheritance; object-oriented programming}
}

@techreport{Loogen87a,
   author = {Rita Loogen},
   title = {Design of a parallel programmable graph reduction machine with distributed memory},
   type = {87-11, Lehrstuhl fur Informatik II, RWTH Aachen, W Germany},
   year = {1987}
}

@techreport{MacQueen88,
   author = {D MacQueen},
   title = {Theory and practice of higher-order type systems},
   type = {Slides at IFIP WG},
   number = {2.8},
   month = jul,
   year = {1988},
   keywords = {Standard ML type system; modules}
}

@techreport{Boehm88,
   author = {Corrado Boehm},
   title = {Data as high-order functions},
   type = {Slides at IFIP WG},
   number = {2.8},
   month = jul,
   year = {1988},
   keywords = {Takes the idea of encoding data as functions a bit further; quite nice}
}

@techreport{Bage87,
   author = {G Bage and G Lindstrom},
   title = {Combinator evaluation of functional programs with logical variables},
   type = {UUCS-87-027, Dept Comp Sci, Univ of Utah},
   month = oct,
   year = {1987},
   keywords = {SK combinator based, with new combinators for logical vars; language is Sasl + logical vars}
}

@techreport{turner:sasl,
  author = {D A Turner},
  title = "The {SASL} language manual",
  institution = "University of St Andrews",
  year = 1976
}

@techreport{Nikhil87,
   author = {Rishiyur Nikhil},
   title = {Id Nouveau Reference Manual},
   type = {Lab for Computer Science, MIT},
   month = apr,
   year = {1987},
   keywords = {Two parts: syntax and semantics.  I-structures}
}

@article{Joy88,
   author = {Mike Joy and Tom Axford},
   title = {A standard for a graph representation of functional programs},
   journal = {SIGPLAN Notices},
   volume = {23},
   number = {1},
   pages = {75-82},
   month = jan,
   year = {1988},
   keywords = {Based on FLIC}
}

@techreport{Dybjer88,
   author = {P Dybjer},
   title = {Inverse image analysis generalised strictness analysis},
   type = {PMG, Chal---mers University},
   month = jan,
   year = {1988}
}

@article{Abdali86,
   author = {SK Abdali and GW Cherry and N Soiffer},
   title = {A Smalltalk system for algebraic manipulation},
   journal = {SIGPLAN Notices (Proc Oopsla '86)},
   volume = {21},
   number = {11},
   month = nov,
   year = {1986},
   keywords = {Views, subclasses, computer algebra; object-oreiented programming.}
}

@techreport{Hughes88,
   author = {John Hughes},
   title = {Backwards analysis of functional programs},
   type = {Dept Comp Sci, Univ of Glasgow},
   year = {1988},
   keywords = {similar to strictness analysis}
}

@techreport{Nikhil88,
   author = {Rishiyur Nikhil},
   title = {Id Reference Manual},
   type = {Lab for Computer Science, MIT},
   month = mar,
   year = {1988},
   keywords = {Supercedes Id Nouveau Syntax manual}
}

@incollection{Burn87,
   author = {Geoffrey L Burn},
   editor = {G Kahn},
   title = {Evaluation transformers - a model for the parallel evaluation of functional languages},
   booktitle = {Functional programming languages and computer architecture, Portland},
   pages = {446-470},
   publisher = {LNCS 274, Springer Verlag},
   month = sep,
   year = {1987},
   keywords = {strictness analysis, parallel graph reduction}
}

@techreport{Burton88a,
   author = {F Warren Burton},
   title = {Nondeterministic behaviour with deterministic semantics},
   type = {Slides from IFIP WG},
   number = {2.8},
   month = jul,
   year = {1988},
   keywords = {Parallel maximum, speculative computation, fairness}
}

@techreport{Adams87,
   author = {DD Adams and J Faget},
   title = {Functional logic programming through lazy combinatory function inversion},
   type = {Laboratoires de Marcoussis, Marcoussis, France},
   year = {1987},
   keywords = {Unification, backtracking, set abstractions}
}

@techreport{Adams87a,
   author = {DD Adams and J Faget},
   title = {Logic programming viewed functionally},
   type = {Laboratoires de Marcoussis, Marcoussis, France},
   year = {1987},
   keywords = {Unification, backtracking, set abstractions}
}

@article{Biljon87,
   author = {WR van Biljon and DA Sewry and MA Mulders},
   title = {Register allocation in a pattern-matching code generator},
   journal = {Software - Practice and Experience},
   volume = {17},
   number = {8},
   pages = {521-531},
   month = aug,
   year = {1987}
}

@article{Appel87,
   author = {AW Appel},
   title = {Garbage collection can be faster than stack allocation},
   journal = {Info Proc Lett},
   volume = {25},
   pages = {275-279},
   year = {1987},
   keywords = {storage management, Baker copying GC}
}

@incollection{Thompson89,
   author = {SJ Thompson},
   editor = {D A Turner},
   title = {Interactive functional programs - a method and a formal semantics},
   booktitle = {Declarative Programming},
   publisher = {Addison Wesley},
   year = {1989},
   keywords = {order of evaluation, streams, lazy evaluation, I/O, IO, traces, dialogues}
}

@incollection{Deb86,
   author = {A Deb},
   editor = {JH Fasel and RM Keller},
   title = {Parallel garbage collection for graph machines},
   booktitle = {Graph reduction},
   pages = {252-263},
   publisher = {LNCS 279, Springer Verlag},
   month = sep,
   year = {1986},
   keywords = {reference counting, distributed, collects cyclic structures, incremental}
}

@techreport{Cardelli88a,
   author = {Luca Cardelli},
   title = {A Quest preview},
   type = {DEC SRC, Palo Alto},
   month = jun,
   year = {1988},
   keywords = {quantifiers, subtypes, inheritance}
}

@phdthesis{Strandh88,
   author = {RI Strandh},
   title = {Compiling equational programs into efficient machine code},
   type = {Ph.{D}. Thesis},
   number = {John Hopkins Univ, Baltimore},
   year = {1988},
   keywords = {More general than func prog; allows non-constructor patterns}
}

@article{Watson87a,
   author = {I Watson and J Sargeant and P Watson and V Woods},
   title = {Flagship computational models and machine architecture},
   journal = {ICL Technical Journal},
   volume = {5},
   number = {3},
   pages = {555-574},
   month = may,
   year = {1987},
   keywords = {Packets}
}

@article{Townsend87,
   author = {Paul Townsend},
   title = {Flagship hardware and implementation},
   journal = {ICL Technical Journal},
   volume = {5},
   number = {3},
   pages = {575-594},
   month = may,
   year = {1987}
}

@article{Eager86,
   author = {DL Eager and ED Lazowska and J Zahorjan},
   title = {Adaptive load sharing in homogeneous distributed systems},
   journal = {IEEE Trans Software Engineering},
   volume = {SE-12},
   number = {5},
   pages = {662-675},
   month = may,
   year = {1986},
   keywords = {scheduling, diffusion; shows that simple policies give good results}
}

@article{valiant88,
   author = {LG valiant},
   title = {Optimally universal parallel computers},
   journal = {Proc Royal Society (to appear)},
   year = {1988?},
   keywords = {Shared memory programs can be simulated on hypercube with only constant factor inefficiency, given spare parallelism}
}

@techreport{Burn88a,
   author = {Geoffrey L Burn},
   title = {Developing a distributed memory architecture for parallel graph reduction},
   type = {CONPAR},
   month = jun,
   year = {1988},
   keywords = {evaluation transformers}
}

@inproceedings{Hughes88a,
   author = {John Hughes},
   title = {Abstract interpretation of first-order polymorphic functions},
   booktitle = {Proc workshop on implementation of lazy functional languages, Aspenas},
   month = sep,
   year = {1988},
   keywords = {Category theory; semantic characterisation of polymorphism},
   note = {Programming Methodology Group, Chal---mers University, Sweden}
}

@article{Bloss88a,
   author = {A Bloss and P Hudak and J Young},
   title = {Code optimizations for lazy evaluation},
   journal = lasc,
   volume = {1},
   pages = {147-164},
   year = {1988},
   keywords = {thunks, Orbit, cell model, updates}
}

@article{danvy:printf,
   author = "Olivier Danvy",
   title = "Functional Unparsing",
   journal = jfp,
   volume = 8,
   issue = 6,
   page = "621-625",
   month = nov,
   year = 1998
}

@inproceedings{Danvy88,
   author = {O Danvy and A Filinski},
   title = {A functional abstraction of typed contexts},
   booktitle = {Proc workshop on implementation of lazy functional languages, Aspenas},
   month = sep,
   year = {1988},
   keywords = {continuations; didn't really understand it},
   note = {Programming Methodology Group, Chal---mers University, Sweden}
}

@incollection{Loogen89,
   author = {R Loogen and H Kuchen and K Indermark and W Damm},
   title = {Distributed implementation of programmed graph reduction},
   booktitle = {Parallel Architectures and Languages Europe},
   publisher = {LNCS 365, Springer Verlag},
   month = jun,
   year = {1989},
   keywords = {parallel G-machine; PAM; sensible but not amazing}
}

@techreport{Nikhil88a,
   author = {RS Nikhil and Arvind},
   title = {Spam - a sequential/parallel abstract machine},
   type = {Computing structures group, Lab for Comp Sci, MIT},
   month = jul,
   year = {1988},
   keywords = {data flow + von Neumann.  Good stuff.}
}

@inproceedings{Kieburtz88,
   author = {RB Kieburtz and B Agapiev},
   title = {Optimising the evaluation of suspensions},
   booktitle = {Proc workshop on implementation of lazy functional languages, Aspenas},
   month = sep,
   year = {1988},
   keywords = {S-TIM, eliminating interpretative overhead, RISC},
   note = {Programming Methodology Group, Chal---mers University, Sweden}
}

@inproceedings{Karlsson88,
   author = {Kent Karlsson},
   title = {Graph reduction meets dataflow - the {D}-machine},
   booktitle = {Proc workshop on implementation of lazy functional languages, Aspenas},
   month = sep,
   year = {1988},
   note = {Programming Methodology Group, Chal---mers University, Sweden}
}

@inproceedings{Meijer88a,
   author = {Erik Meijer},
   title = {Generalised expression evaluation},
   booktitle = {Proc workshop on implementation of lazy functional languages, Aspenas},
   month = sep,
   year = {1988},
   keywords = {Mapping out the abstract machine design space: G-machine, Tim, spineless etc},
   note = {Programming Methodology Group, Chal---mers University, Sweden}
}

@inproceedings{Lester88,
   author = {David Lester},
   title = {A transformational development of an optimising {G}-machine compiler},
   booktitle = {Proc workshop on implementation of lazy functional languages, Aspenas},
   month = sep,
   year = {1988},
   keywords = {Formal proof of G-machine correctness and optimisations},
   note = {Programming Methodology Group, Chal---mers University, Sweden}
}

@inproceedings{Glauert88a,
   author = {JRW Glauert and K Hammond},
   title = {Implementing pattern-matching functional languages using {DACTL}},
   booktitle = {Proc workshop on implementation of lazy functional languages, Aspenas},
   month = sep,
   year = {1988},
   note = {Programming Methodology Group, Chal---mers University, Sweden}
}

@techreport{Argo88,
   author = {Guy Argo},
   title = {The {G}-Tim - a refined three-instruction machine},
   type = {Dept of Computing, Univ of Glasgow},
   month = jan,
   year = {1988}
}

@inproceedings{Harrison86c,
   author = {PG Harrison and M Reeve},
   editor = {JH Fasel and RM Keller},
   title = {The parallel graph reduction machine {ALICE}},
   booktitle = {Graph reduction: proceedings of a workshop, Santa Fe},
   pages = {181-202},
   publisher = {LNCS 279, Springer Verlag},
   month = oct,
   year = {1986},
   keywords = {architecture and performance}
}

@techreport{Gabriel84,
   author = {J Gabriel and Tim Lindholm and EL Lusk and RA Overbeek},
   title = {The Warren Abstract Prolog Machine},
   type = {TR ANL-84-84, Argonne National Laboratory},
   month = oct,
   year = {1084},
   keywords = {Good tutorial}
}

@article{Hilfinger88,
   author = {PN Hilfinger},
   title = {An Ada package for dimensional analysis},
   journal = toplas,
   volume = {10},
   number = {2},
   pages = {189-203},
   month = apr,
   year = {1988}
}

@article{Metayer88,
   author = {Daniel Le Metayer},
   title = {{ACE} - an automatic complexity evaluator},
   journal = toplas,
   volume = {10},
   number = {2},
   pages = {248-267},
   month = apr,
   year = {1988},
   keywords = {FP, reasoning about complexity of functional programs}
}

@article{Degano88,
   author = {P Degano and S Manucci and B Mojana},
   title = {Efficient incremenental {LR} parsing for syntax-directed editors},
   journal = toplas,
   volume = {10},
   number = {3},
   pages = {345-373},
   month = jul,
   year = {1988},
   keywords = {Claims to be incremental *and* more efficient than standard table-driven parsing}
}

@article{Anonymous88e,
   key = {Anonymous88e},
   title = {Special issue on {CASE} (computer-aided software engineering)},
   journal = {IEEE Software},
   month = mar,
   year = {1988}
}

@article{Anonymous88f,
   key = {Anonymous88f},
   title = {Special issue on electronic publishing technology},
   journal = {IEEE Computer},
   volume = {21},
   number = {1},
   month = jan,
   year = {1988},
   keywords = {desktop publishing, hypertext, documents}
}

@article{Athas??,
   author = {WC Athas and CL Seitz},
   title = {Multicomputers - message-passing concurrent computers},
   journal = {IEEE Computer},
   volume = {21},
   number = {8},
   pages = {9-25},
   keywords = {Excellent article; hypercubes, Cosmic Cube, operating-system support, future directions}
}

@article{Tucker??,
   author = {LW Tucker and GG Robertson},
   title = {Architecture and applications of the Connection Machine},
   journal = {IEEE Computer},
   volume = {21},
   number = {8},
   pages = {26-39},
   keywords = {Good article; gives useful info about CM1 and CM2}
}

@article{Jones??a,
   author = {DW Jones},
   title = {Application of splay trees to data compression},
   journal = {CACM},
   volume = {31},
   number = {8},
   pages = {996-1007}
}

@article{Sarwate??,
   author = {DV Sarwate},
   title = {Computation of cyclic redundancy checks via table lookup},
   journal = {CACM},
   volume = {31},
   number = {8},
   pages = {1008-1013},
   keywords = {CRC checks in software}
}

@article{Enbody88,
   author = {RJ Enbody and HC Du},
   title = {Dynamic hashing schemes},
   journal = {Computing Surveys},
   volume = {20},
   number = {2},
   pages = {85-114},
   month = jun,
   year = {1988},
   keywords = {hash-tables which change their size dynamically}
}

@book{Fletcher80a,
   author = {WI Fletcher},
   title = {An engineering approach to digital design},
   publisher = {Prentice Hall},
   year = {1980},
   keywords = {Excellent book.  Lots on asynchronous finite state machines, and recognises metastability problems}
}

@book{Mead80,
   author = {C Mead and L Conway},
   title = {Introduction to {VLSI} systems},
   publisher = {Addison Wesley},
   year = {1980},
   keywords = {Standard text}
}

@techreport{Takeichi88a,
   author = {M Takeichi and Y Akama},
   title = {Deriving the Knuth-Morris-Pratt algorithm by transformational development},
   type = {METR 88-08, Dept of Mathematical Engineering, Tokyo Univ},
   month = jun,
   year = {1988},
   keywords = {program transformation, searching for strings, pattern-matching algorithms}
}

@techreport{Laville88a,
   author = {A Laville},
   title = {Comparison of priority rules in pattern matching and term rewriting},
   type = {INRIA},
   month = sep,
   year = {1988},
   keywords = {ambiguous patterns, overlapping rules, evaluation order}
}

@techreport{Clarke88,
   author = {Keith Clarke},
   title = {One-pass code generation using continuations},
   type = {Dept Comp Sci, Queen Mary College},
   month = sep,
   year = {1988},
   keywords = {continuations, boolean expressions, jumping code; nice paper}
}

@techreport{Fradet88,
   author = {P Fradet and D Le Metayer},
   title = {Compilation of lambda-calculus into functional machine code},
   type = {INRIA},
   month = jun,
   year = {1988},
   keywords = {machine code as composition of functions; code generation; quite nice}
}

@incollection{Ogawa88,
   author = {M Ogawa and S Ono},
   title = {Transformation of strictness-related analysis based on abstract interpretation},
   booktitle = {Intl Conf on Fifth Generation Systems},
   month = nov,
   year = {1988}
}

@incollection{Ono88,
   author = {S Ono},
   editor = {L Kott and K Fuchi},
   title = {Relationships among strictness-related analyses for applicative langauges},
   booktitle = {Programming of future generation computers II},
   publisher = {North Holland},
   year = {1988}
}

@article{Karp88,
   author = {AH Karp and RB Babb},
   title = {A comparison of 12 parallel Fortran dialects},
   journal = {IEEE Software},
   pages = {52-67},
   month = sep,
   year = {1988},
   keywords = {parallel programming, Sequent, Elxsi, Cray, Butterfly; excellent expose of nasty bits!}
}

@techreport{Goldberg88,
   author = {Benjamin F Goldberg},
   title = {Multiprocessor execution of functional programs},
   type = {YALEU/DCS/RR-618, Dept of Computer Science, Yale University},
   month = apr,
   year = {1988},
   keywords = {PhD thesis, diffusion scheduling, Alfalfa, Buckwheat}
}

@inproceedings{Hudak88c,
   author = {P Hudak and E Mohr},
   title = {Graphinators and the duality of {SIMD} and {MIMD}},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming},
   pages = {224-234},
   publisher = {ACM},
   month = aug,
   year = {1988},
   keywords = {Graph reduction on a SIMD machine}
}

@incollection{Hudak86f,
   author = {Paul Hudak and Jonathan Young},
   title = {Higher-order strictness analysis for untyped lambda calculus},
   booktitle = {Proc 12th ACM Symposium on Principles of Programming Languages},
   pages = {97-109},
   publisher = {ACM},
   month = jan,
   year = {1986}
}

@article{Grit81,
   author = {DH Grit and RL Page},
   title = {Deleting irrelevant tasks in an expression-oriented multiprocessor},
   journal = toplas,
   volume = {3},
   number = {1},
   pages = {49-59},
   month = jan,
   year = {1981},
   keywords = {garbage collection}
}

@article{Courts88,
   author = {R Courts},
   title = {Improving locality of reference in a garbage-collecting memory management system},
   journal = {CACM},
   volume = {31},
   number = {9},
   pages = {1128-1138},
   month = sep,
   year = {1988},
   keywords = {Baker gc, generational / temporal garbage collection; nice}
}

@phdthesis{Kranz88,
   author = {DA Kranz},
   title = {{ORBIT} - an optimising compiler for Scheme},
   type = {Ph.{D}. Thesis},
   number = {Department of Computer Science, Yale University},
   month = may,
   year = {1988},
   keywords = {continuation-passing style}
}

@techreport{Glauert87a,
   author = {JRW Glauert and JR Kennaway and MR Sleep},
   title = {Specification of Dactl},
   type = {Declarative Systems Project, University of East Anglia},
   month = dec,
   year = {1987},
   keywords = {The final version; graph rewriting}
}

@inproceedings{Appel87a,
   author = {A Appel and D MacQueen},
   editor = {G Kahn},
   title = {A Standard {ML} compiler},
   booktitle = {Proceedings of the Conference on Functional Programming and Computer Architecture, Portland},
   publisher = {LNCS 274, Springer Verlag},
   month = sep,
   year = {1987},
   keywords = {SML, modules}
}

@article{Jones88,
   author = {DW Jones},
   title = {The ultimate {RISC}},
   journal = {Computer Architecture News},
   volume = {16},
   number = {3},
   month = jun,
   year = {1988},
   keywords = {Nice minimal design, for teaching purposes}
}

@article{Jones88a,
   author = {DW Jones},
   title = {A minimal {CISC}},
   journal = {Computer Architecture News},
   volume = {16},
   number = {3},
   month = jun,
   year = {1988},
   keywords = {Minimal design for teaching purposes}
}

@article{Inoue88,
   author = {K Inoue and H Seki and H Yagi},
   title = {Analysis of functional programs to detect run-time garbage cells},
   journal = toplas,
   volume = {10},
   number = {4},
   pages = {555-578},
   month = oct,
   year = {1988},
   keywords = {garbage collection at compile-time}
}

@techreport{Darlington88,
   author = {J Darlington and Yi-ke Guo},
   title = {Narrowing and unification in functional programming - an evaluation mechanism for absolute set abstraction},
   type = {Dept of Computing, Imperial College},
   month = nov,
   year = {1988},
   keywords = {Logic and functional programming}
}

@techreport{Vuillemin87,
   author = {J Vuillemin},
   title = {Exact real computer arithmetic with continued fractions},
   type = {Research report 760, INRIA},
   month = nov,
   year = {1987},
   keywords = {Shows how to do transcendentals.  Good stuff.}
}

@article{Park88,
   author = {SK Park and KW Miller},
   title = {Random number generators - good ones are hard to find},
   journal = {CACM},
   volume = {31},
   number = {10},
   pages = {1192-1201},
   month = oct,
   year = {1988},
   keywords = {Excellent}
}

@article{Gordon88,
   author = {M Gordon},
   title = {Progabilistic and genetic algorithms in document retrieval},
   journal = {CACM},
   volume = {31},
   number = {10},
   pages = {1208-1219},
   month = oct,
   year = {1988}
}

@article{Brown88,
   author = {R Brown},
   title = {Calendar queues: a fast {O}(1) priority queue implementation for the simulation event set problem},
   journal = {CACM},
   volume = {31},
   number = {10},
   pages = {1220-1229},
   month = oct,
   year = {1988},
   keywords = {Data structures, algorithms.  Looks good}
}

@techreport{Treleaven88,
   author = {Philip Treleaven and Michael Recce},
   title = {Neural computing},
   type = {Dept of Computer Science, University College London},
   month = dec,
   year = {1988},
   keywords = {Brief survey}
}

@article{Lippman87,
   author = {RP Lippman},
   title = {An introduction to computing with neural nets},
   journal = {IEEE ASSP Magazine},
   pages = {4-22},
   month = apr,
   year = {1987},
   keywords = {Phil Treleaven says it is a good paper}
}

@techreport{Joosten88,
   author = {Stef Joosten},
   title = {A Hope+ Assessment},
   type = {University of Twente},
   month = jan,
   year = {1988},
   keywords = {Practical experience of writing functional programs}
}

@article{Skillicorn88,
   author = {DB Skillicorn},
   title = {A taxonomy for computer architectures},
   journal = {IEEE Computer},
   volume = {21},
   number = {11},
   pages = {46-57},
   month = nov,
   year = {1988},
   keywords = {Extends SIMD/MIMD.  Reasonable paper.}
}

@techreport{Iannucci88,
   author = {RA Iannucci},
   title = {A dataflow/von Neumann hybrid architecture},
   type = {TR 418, Lab for Computer Science, MIT},
   month = nov,
   year = {1988},
   keywords = {PhD thesis}
}

@incollection{Nikhil89,
   author = {RS Nikhil and Arvind},
   title = {Can dataflow subsume von Neumann computing?},
   booktitle = {ACM Symposium on Computer Architecture, Jerusalem},
   publisher = {ACM},
   month = may,
   year = {1989},
   note = {Good stuff, P-Risc, threads}
}

@inproceedings{Glaser88,
   author = {H Glaser and M Reeve and S Wright},
   title = {An analysis of reference-count garbage-collection schemes for declarative languages},
   booktitle = {Proc International Computer Science Conference, Hong Kong},
   year = {1988},
   keywords = {ALICE, weighted reference counts, lazy weighted}
}

@incollection{Massalin87,
   author = {H Massalin},
   title = {Superoptimiser - a look at the smallest program},
   booktitle = {Proc 2nd International Conf on Architectural Support for Programming Languages and Operating Systems (ASPLOS II), Palo Alto},
   pages = {122-127},
   publisher = {IEEE},
   month = oct,
   year = {1987},
   keywords = {Wierd assembly language programs, generated by exhaustive generation of all possible programs, supercompiler}
}

@article{Holt88,
   author = {RC Holt and JR Cordy},
   title = {The Turing programming language},
   journal = {CACM},
   volume = {31},
   number = {12},
   pages = {1410-1423},
   month = dec,
   year = {1988}
}

@techreport{Narain88,
   author = {S Narain},
   title = {Log(f) - an optimal combination of logic programming, rewriting, and lazy evaluation},
   type = {P-7437, Rand Corp},
   month = apr,
   year = {1988},
   keywords = {logic and functional programming, unification}
}

@techreport{Darlington89,
   author = {J Darlington and et al},
   title = {An introduction to the Flagship programming environment},
   type = {Dept of Computing, Imperial College},
   month = jan,
   year = {1989},
   keywords = {hope with unification}
}

@techreport{al89,
   author = {J Darlington et al},
   title = {A functional programming environment supporting execution, partial evaluation and transformation},
   type = {Dept of Computing, Imperial College},
   month = jan,
   year = {1989}
}

@article{Manber88,
   author = {Udi Manber},
   title = {Using induction to design algorithms},
   journal = {CACM},
   volume = {31},
   number = {11},
   pages = {1300-1313},
   month = nov,
   year = {1988},
   keywords = {graphs, recursion.  Some nice algorithms}
}

@article{Pickover88,
   author = {CA Pickover},
   title = {A note on chaos and Halley's method},
   journal = {CACM},
   volume = {31},
   number = {11},
   pages = {1326-1329},
   month = nov,
   year = {1988},
   keywords = {Mandlebrot set, fractals}
}

@article{Ahrens88,
   author = {J Ahrens and U Dieter},
   title = {Efficient table-free sampling methods for the exponential, Cauchy and normal distributions},
   journal = {CACM},
   volume = {31},
   number = {11},
   pages = {1330-1337},
   month = nov,
   year = {1988},
   keywords = {random numbers}
}

@techreport{Thompson88,
   author = {Simon Thompson},
   title = {Logic and functional programming - defining a logic for Miranda},
   type = {Computer Lab, Univ of Kent},
   month = oct,
   year = {1988}
}

@incollection{lbraceerbracem??,
   author = {D Rémy},
   title = {Typechecking records and variants in a natural extension of {ML}},
   booktitle = popl89,
   keywords = {inheritance, named fields in records}
}

@techreport{Cripps88,
   author = {Martin Cripps},
   title = {Functional input/output},
   type = {Dept of Computing, Imperial},
   month = nov,
   year = {1988},
   keywords = {Grant application; refers to work on serial I/O devices}
}

@techreport{Atwell88,
   author = {ES Atwell and R Boyle},
   title = {A study of parallel simulated annealing},
   type = {Dept of Computing, Univ of Leeds},
   month = nov,
   year = {1988},
   keywords = {SERC grant application}
}

@techreport{Waite91,
   author = {ME Waite and B Giddings and SH Lavington},
   title = {{PACE} - parallel associative combinator evaluation},
   type = {CSM-123, Dept of Computing, Univ of Essex},
   month = sep,
   year = {1991},
   keywords = {SK combinators}
}

@techreport{Waite88,
   author = {ME Waite and SH Lavington and J Robinson},
   title = {Reducing memory accesses during {SK} combinator evaluation},
   type = {Dept of Computing, Univ of Essex},
   month = dec,
   year = {1988},
   keywords = {See PACE.}
}

@techreport{Chu88,
   author = {DA Chu and FG McCabe},
   title = {{SWIFT} a new symbolic processor},
   type = {Dept of Computing, Imperial College},
   month = mar,
   year = {1988},
   keywords = {Forth processor, lower level than WAM, looks nice}
}

@article{Woodwark86,
   author = {J Woodwark and A Bowyer},
   title = {Better and faster pictures from solid models},
   journal = {Comuter Aided Engineering Journal},
   pages = {17-24},
   month = feb,
   year = {1986},
   keywords = {constructive solid geometry, CSG, graphics}
}

@techreport{Furst88,
   author = {M Furst},
   title = {Recent advances in the theory of feasible computation: circuit complexity},
   type = {CMU dept report},
   year = {1988},
   keywords = {NP completeness, intractability.  Nice brief survey of current situation}
}

@phdthesis{Burn86a,
   author = {Geoffrey L Burn},
   title = {Abstract interpretation and the parallel evaluation of functional langauges},
   type = {Ph.{D}. Thesis},
   number = {Dept of Computing, Imperial College, London},
   month = aug,
   year = {1986},
   keywords = {evaluation transformers}
}

@book{Aho86,
   author = {AV Aho and R Sethi and JD Ullman},
   title = {Compilers - principles, techniques and tools},
   publisher = {Addison Wesley},
   year = {1986}
}

@incollection{Cousineau85a,
   author = {G Cousineau and PL Curien and M Mauny},
   editor = {JP Jouannaud},
   title = {The Categorical Abstract Machine},
   booktitle = {Functional Programming Languages and Computer Architecture, Nancy},
   pages = {50-64},
   publisher = {LNCS 201, Springer Verlag},
   month = sep,
   year = {1985},
   keywords = {CAM}
}

@incollection{Davie89,
   author = {AJT Davie and DJ McNally},
   title = {{CASE} - a lazy version of an {SECD} machine with a flat environment},
   booktitle = {Proc IEEE TENCON, Bombay},
   year = {1989},
   keywords = {graph reduction, closures}
}

@techreport{Johnsson88a,
   author = {T Johnsson},
   title = {The $\nu$-{G}-machine},
   type = {Dept of Computer Science, Chal---mers University},
   month = nov,
   year = {1988},
   keywords = {Parallel verion of the G-machine; stack encoded in closures in heap}
}

@techreport{Hudak90,
   author = {P Hudak and PL Wadler and Arvind and B Boutel and J Fairbairn and J Fasel and K Hammond and J Hughes and T\~{}Johnsson and R Kieburtz and RS Nikhil and SL {Peyton~Jones} and M Reeve and D Wise and J Young},
   title = {Report on the functional programming language Haskell},
   type = {Department of Computing Science, Glasgow University},
   month = apr,
   year = {1990}
}

@article{Hudak92,
   author = {P Hudak and SL {Peyton~Jones} and PL Wadler and Arvind and B Boutel and J Fairbairn and J Fasel and M Guzman and K Hammond and J Hughes and T\~{}Johnsson and R Kieburtz and RS Nikhil and W Partain and J Peterson},
   title = {Report on the functional programming language Haskell, Version 1.2},
   journal = {SIGPLAN Notices},
   volume = {27},
   number = {5},
   month = may,
   year = {1992}
}

@article{Hudak92a,
   author = {P Hudak and J Fasel},
   title = {A gentle introduction to Haskell},
   journal = {SIGPLAN Notices},
   volume = {27},
   number = {5},
   month = may,
   year = {1992}
}

@inproceedings{Granlund92,
   author = {T Granlund and R Kenner},
   title = {Eliminating branches using a superoptimiser and the {GNU} {C} compiler},
   booktitle = {ACM SIGPLAN Conference on Programming Language Design and Implementation},
   pages = {341-352},
   month = jun,
   year = {1992},
   keywords = {IBM RS/6000, machine code sequences, jumps, condition codes}
}

@incollection{Goldberg90,
   author = {B Goldberg and YG Park},
   title = {Higher-order escape analysis: optimising stack allocation in higher-order functional languages},
   booktitle = {Proc European Symposium on Programming},
   pages = {152-160},
   publisher = {LNCS 432, Springer Verlag},
   year = {1990},
   keywords = {lifetime analysis}
}

@inproceedings{Park92,
   author = {YG Park and B Goldberg},
   title = {Escape analysis on lists},
   booktitle = {ACM SIGPLAN Conference on Programming Language Design and Implementation},
   pages = {116-127},
   month = jun,
   year = {1992},
   keywords = {stack allocation, lifetime analysis}
}

@techreport{Ohori89,
   author = {A Ohori and P Buneman and V Breazu-Tannen},
   title = {Database programming in Machiavelli - a polymorphic language with static type inference},
   type = {Dept of Computer Science, Univ of Pennsylvania},
   month = feb,
   year = {1989},
   keywords = {records, relational database, persistence, ML, join}
}

@incollection{Lester89,
   author = {DR Lester},
   title = {An efficient distributed garbage-collection algorithm},
   booktitle = {Proc Parallel Architectures and Languages Europe (PARLE)},
   pages = {207-223},
   publisher = {Springer Verlag LNCS 365},
   month = jun,
   year = {1989},
   keywords = {Copying GC locally; weighted ref count across memories}
}

@techreport{Hammond89,
   author = {K Hammond and JRW Glauert},
   title = {Implementing pattern-matching functional languages using Dactl},
   type = {Dept Comp Sci, Univ of Glasgow},
   month = feb,
   year = {1989},
   keywords = {Mainly describes how Dactl can express various forms of pattern-matching, rather than giving any compilation algorithms or theorems}
}

@techreport{Lester89a,
   author = {DR Lester},
   title = {Stacklessness - compiling recursion for a distributed architecture},
   type = {GEC Hirst Research Centre, March},
   number = {1989},
   month = mar,
   year = {1989},
   keywords = {Bounding the stack that can be used by function call and its consequential tail calls; nu-G-machine.}
}

@techreport{Wakeling93,
   author = {D Wakeling and A Dix},
   title = {Optimizing Partial Applications in {TIM}},
   institution = {Department of Computer Science, University of York},
   type = {YCS},
   number = {215},
   year = {1993},
   keywords = {Before tail call, check for update frame on stack: parent frame sharing, child frame sharing}
}

@incollection{brus+:clean,
   author = {TH Brus and MCJD van Eckelen and MO van Leer and MJ Plasmeijer},
   editor = {G Kahn},
   title = {Clean - a language for functional graph rewriting},
   booktitle = {Functional programming languages and computer architecture, Portland},
   pages = {364-384},
   publisher = {LNCS 274, Springer Verlag},
   month = sep,
   year = {1987},
   keywords = {Dutch parallel reduction machine project PRM, Dactl, Lean}
}

@incollection{Sweazey86b,
   author = {P Sweazey and AJ Smith},
   title = {A class of compatible cache consistency protocols and their support by the {IEEE} Futurebus},
   booktitle = {Proc 13th Annual Symp on Computer Architecture, Tokyo},
   month = jun,
   year = {1986},
   keywords = {P896, snoopy}
}

@techreport{Smith86,
   author = {AJ Smith},
   title = {Bibliography on {CPU} cache memories and related topics},
   type = {Comp Sci Div, EECS dept, Univ of California},
   year = {1986}
}

@techreport{Sweazey85,
   author = {P Sweazey},
   title = {Cachephobia - the fear of cache memories},
   type = {Tektronix, Oregon},
   month = dec,
   year = {1985},
   keywords = {P896}
}

@techreport{Seiler78,
   author = {L Seiler},
   title = {Transaction arbitration for the Trimosbus},
   type = {Dept of Comp Sci, California Inst of Technology},
   month = nov,
   year = {1978},
   keywords = {P896 futurebus, 3-wire arbitration}
}

@techreport{Sproull80,
   author = {B Sproull},
   title = {Generating parity for Trimosbus data wires},
   type = {V002, Comp Sci Dept, Carnegie Mellon Univ},
   month = feb,
   year = {1980},
   keywords = {Fast parity; P896 futurebus}
}

@techreport{Keller83,
   author = {PJ Keller},
   title = {{US} Patent: arbiter circuit},
   type = {US Patent},
   month = aug,
   year = {1983},
   keywords = {Metastability}
}

@techreport{Traub86,
   author = {DM Traub},
   title = {Improved control-acquisition scheme for the Futurebus},
   type = {IBM UK Labs},
   month = feb,
   year = {1986},
   keywords = {P896}
}

@incollection{Sutherland79,
   author = {IE Sutherland and CE Molnar and RF Sproull and JC Mudge},
   title = {The Trimosbus},
   booktitle = {Caltech conf on VLSI},
   month = jan,
   year = {1979},
   keywords = {P896 futurebus, bus standards}
}

@article{Yakovlev85,
   author = {A Yakovlev},
   title = {Designing self-timed systems},
   journal = {VLSI Systems Design},
   month = sep,
   year = {1985},
   keywords = {asynchronous design, metastability}
}

@article{Anonymous89,
   key = {Anonymous89},
   title = {Special issue: case studies of design choices in computer architecture},
   journal = {IEEE Computer},
   volume = {22},
   number = {1},
   month = jan,
   year = {1989},
   keywords = {Cydra 5, Convex C2, Cray X-MP, TI ASC, Nat Semi 32532, HP Precision}
}

@article{Linton89,
   author = {MA Linton and et al},
   title = {Composing user interfaces with InterViews},
   journal = {IEEE Computer},
   volume = {22},
   number = {2},
   month = feb,
   year = {1989},
   keywords = {windows, HCI, toolkit}
}

@article{Richardson89,
   author = {S Richardson and M Ganapathi},
   title = {Code optimisation across procedures},
   journal = {IEEE Computer},
   volume = {22},
   number = {2},
   pages = {42-51},
   month = feb,
   year = {1989},
   keywords = {flow analysis, code generation, concludes that inter-procedural analysis gives poor results!}
}

@article{Ganapathi89,
   author = {M Ganapathi and GA Mendal},
   title = {Issues in Ada compiler technology},
   journal = {IEEE Computer},
   volume = {22},
   number = {2},
   pages = {52-62},
   month = feb,
   year = {1989},
   keywords = {programming support environments}
}

@article{Anonymous89a,
   key = {Anonymous89a},
   title = {Special issue: user interfaces},
   journal = {IEEE Software},
   month = jan,
   year = {1989},
   keywords = {UIDS, UIMS, windows, toolkits, ecological gaps}
}

@techreport{Treleaven89,
   author = {Philip Treleaven},
   title = {Neurocomputers},
   type = {RN 89/8, Dept Comp Sci, University College London},
   month = jan,
   year = {1989},
   keywords = {neural networks, parallel computer architecture, optical; doesn't discuss how neural networks learn}
}

@techreport{Cripps87,
   author = {Martin Cripps},
   title = {A universal interface for data transfer},
   type = {RR 87/20, Dept Comp Sci, Imperial College},
   month = nov,
   year = {1987},
   keywords = {USI, RS232, transition signalling, asynchronous; curious paper}
}

@article{Burton91,
   author = {F Warren Burton},
   title = {Encapsulating nondeterminacy in an abstract data type with determinate semantics},
   journal = {Journal of Functional Programming},
   volume = {1},
   number = {1},
   pages = {3-20},
   month = jan,
   year = {1991},
   keywords = {improving values, bags, branch and bound, alpha beta}
}

@techreport{Uddeborg88a,
   author = {GO Uddeborg},
   title = {A functional parser generator},
   type = {Report 43, Programming Methodology Group, Chal---mers University},
   month = feb,
   year = {1988},
   keywords = {attribute grammars, yacc, LML}
}

@techreport{Holmstrbacksla88,
   author = {S Holmstr{\"o}m},
   title = {Hennessy-Milner logic with recursion as a specification language, and a refinement calculus based on it},
   type = {Report 44, Programming Methodology Group, Chal---mers University},
   month = jun,
   year = {1988}
}

@techreport{Salvesen88,
   author = {A Salvesen and JM Smith},
   title = {The strength of the subset type in Martin-Lof's type theory},
   type = {Report 45, Programming Methodology Group, Chal---mers University},
   month = mar,
   year = {1988}
}

@techreport{Padget86,
   author = {J Padget and J Fitch},
   title = {The extent of scope},
   type = {School of Maths, Univ of Bath},
   year = {1986},
   keywords = {environment representation in Lisp, deep binding, shallow binding}
}

@inproceedings{Tighe86,
   author = {S Tighe and K Zink and R Brice and W Alexander},
   editor = {JH Fasel and RM Keller},
   title = {A flexible architecture study methodology},
   booktitle = {Proc Santa Fe Workshop on Graph Reduction},
   pages = {297-311},
   month = oct,
   year = {1986},
   keywords = {performance modelling, simulation}
}

@techreport{Welty85,
   author = {LL Welty},
   title = {Routing application study},
   type = {MCC},
   month = nov,
   year = {1985},
   keywords = {Bernstein hierachical routine algorithm in CAD, in Sasl}
}

@techreport{Drabent87,
   author = {W Drabent},
   title = {Do logic programs resemble programs in conventional languages},
   type = {Dept Comp Sci, Linkoping Univ, Sweden},
   year = {1987},
   keywords = {Prolog programs don't use the power of logic variables very much}
}

@article{Ono87,
   author = {S Ono},
   title = {Comparison among strictness-related analyses for applicative languages},
   journal = {IEICE Tech Rep on Theoretical Foundations of Computing},
   volume = {87},
   number = {237},
   pages = {31-40},
   month = oct,
   year = {1987},
   keywords = {path analysis, relevance analysis, strictness analysis}
}

@incollection{Ono86,
   author = {S Ono and N Takahashi and M Amamiya},
   title = {Optimised demand-driven evaluation of functional programs on a dataflow machine},
   booktitle = {15th Intl Conf on parallel processing, St Charles},
   month = aug,
   year = {1986},
   keywords = {demand propagation}
}

@incollection{Ono87a,
   author = {S Ono},
   title = {Computation path analysis - towards an autonomous global dataflow analysis},
   booktitle = {2nd France-Japan Artificial Intelligence and Computer Science Symposium, Sohpia},
   month = nov,
   year = {1987},
   keywords = {relevance analysis, strictness analysis, retraction; CPA subsumes the others}
}

@article{Dwelly88,
   author = {A Dwelly},
   title = {Synchronising the {I}/{O} behaviour of functional programs with feedback},
   journal = {Information Processing Letters},
   volume = {28},
   pages = {45-51},
   year = {1988},
   keywords = {lazy evaluation, semantics, strictness}
}

@techreport{Lindstrom87a,
   author = {G Lindstrom and L George and D Yeh},
   title = {Compiling normal order to fair and incremental persistence},
   type = {Dept Comp Sci, Univ of Utah},
   month = jul,
   year = {1987},
   keywords = {analysis, fairness, strictness analysis}
}

@techreport{Schmidt87a,
   author = {DA Schmidt},
   title = {Static properties of partial reduction},
   type = {Dept Comp Sci, Kansas State Univ},
   year = {1987?},
   keywords = {partial evaluation}
}

@techreport{Tighe86a,
   author = {S Tighe},
   title = {Strictness analysis report},
   type = {PP-193-86, MCC},
   month = aug,
   year = {1986},
   keywords = {Experiments to see how much parallelism is gained through strictness analysis}
}

@article{Backhouse89,
   author = {R Backhouse and P Chrisholm and G Malcolm and E Saaman},
   title = {Do-it-yourself type theory},
   journal = {Formal Aspects of Computing},
   volume = {1},
   number = {1},
   pages = {19-84},
   month = jan,
   year = {1989},
   keywords = {Martin-Lof, constructive logic}
}

@article{Smith89,
   author = {AJ Smith},
   title = {The {CLIPPER} processor - instruction set architecture and implementation},
   journal = {CACM},
   volume = {32},
   number = {2},
   pages = {200-219},
   month = feb,
   year = {1989},
   keywords = {RISC, cache, virtual memory}
}

@article{Abrahamson89,
   author = {DM Abrahamson},
   title = {An adaptive dependency source model for data compression},
   journal = {CACM},
   volume = {32},
   number = {1},
   pages = {77-83},
   month = jan,
   year = {1989},
   keywords = {arithmetic coding; nicely complements an earlier CACM article}
}

@article{Jones89,
   author = {DW Jones},
   title = {Concurrent operations on priority queues},
   journal = {CACM},
   volume = {32},
   number = {1},
   pages = {132-137},
   month = jan,
   year = {1989},
   keywords = {Application to schedulers?}
}

@techreport{Aasa88,
   author = {A Aasa and K Petersson and D Synek},
   title = {Concrete syntax for data objects in functional languages},
   type = {Report 47, Programming Methodology Group, Chal---mers University, Sweden},
   month = mar,
   year = {1988},
   keywords = {distfix operators, CAML, user-defined syntax, overloading}
}

@techreport{Nordstrom88,
   author = {B Nordstrom},
   title = {Terminating general recursion},
   type = {Report 46, Programming Methodology Group, Chal---mers University, Sweden},
   month = jun,
   year = {1988},
   keywords = {Extending Martin-Lof to accomodate general recursion}
}

@techreport{Petersson87,
   author = {K Petersson and D Synek},
   title = {A set constructor for inductive sets in Martin-Lof's type theory},
   type = {Report 48, Programming Methodology Group, Chal---mers University, Sweden},
   month = nov,
   year = {1987}
}

@techreport{field+:best-fit,
   author = {AJ Field and LS Hunt and RL While},
   title = "The Semantics and Implementation of Various Best-fit Pattern Matching Schemes for Functional Languages", 
   number = "Doc 92/13",
   institution = {Dept of Computing, Imperial College},
   year = {1992},
   keywords = {Yet another pattern-matching algorithm; Hope+}
}

@techreport{Meijer89,
   author = {E Meijer},
   title = {Cleaning up the design space of function evaluating machines},
   type = {Dept of Informatics, Univ of Nijmegen},
   month = mar,
   year = {1989},
   keywords = {abstract machine designs, formal semantics, still hard to read!}
}

@techreport{Inoue85,
   author = {K Inoue and H Seki and H Yagi},
   title = {A method to detect unused list cells at compile time},
   type = {AL85-26, Osaka Univ},
   year = {1985},
   keywords = {Garbage collection at compile time}
}

@techreport{Inoue87,
   author = {K Inoue and J Kawase and K Torii},
   title = {Static detection of garbage cells and an experimental Lisp system},
   type = {Dept Comp Sci, Osaka Univ},
   month = nov,
   year = {1987}
}

@incollection{Halfant88,
   author = {M Halfant and GJ Sussman},
   title = {Abstraction in numerical methods},
   booktitle = {Proc ACM Conf on Lisp and Functional Programming, Snowbird},
   pages = {1-7},
   publisher = {ACM},
   month = jul,
   year = {1988},
   keywords = {Like John Hughes; numerical integration, differentiation, streams, lazy evaluation}
}

@article{Inoue86,
   author = {K Inoue and H Seki and K Taniguchi and T Kasami},
   title = {Compiling and optimising methods for the functional language {ASL}/{F}},
   journal = scp,
   volume = {7},
   pages = {297-312},
   year = {1986},
   keywords = {strictness analysis, needed analaysis, update in place}
}

@incollection{Sweazey89,
   author = {Paul Sweazey},
   editor = {J Di Giacomo},
   title = {Limits of performance of backplane buses},
   booktitle = {Digital bus handbook},
   publisher = {McGraw Hill},
   year = {1989},
   keywords = {transfer protocols, skew, arbitration, compelled protocol, circuit-switch vs packet-switch}
}

@techreport{Hopkins89,
   author = {T Hopkins and I Williams and M Wolczko},
   title = {Mushroom - a distributed multi-user object-oriented programming environment},
   type = {Dept Comp Sci, Univ of Manchester},
   year = {1989},
   keywords = {Smalltalk, persistence, sharing}
}

@techreport{Wolczko89,
   author = {M Wolczko},
   title = {Introducing {MUST} - the Mushroom programming language},
   type = {Dept Comp Sci, Univ of Manchester},
   year = {1989},
   keywords = {object-oriented programming, Smalltalk, multiple inheritance}
}

@techreport{Williams89,
   author = {I Williams},
   title = {The Mushroom machine - an architecture for symbolic processing},
   type = {Dept Comp Sci, Univ of Manchester},
   year = {1989},
   keywords = {Object-oriented programming, persistence, caching}
}

@techreport{Hopkins89a,
   author = {T Hopkins},
   title = {Using Smalltalk-80 to simulate an actor programming model},
   type = {Dept Comp Sci, Univ of Manchester},
   month = jan,
   year = {1989},
   keywords = {parallel programming}
}

@techreport{Hopkins89b,
   author = {T Hopkins and M Wolczko},
   title = {Writing concurrent object-oriented programs using Smalltalk-80},
   type = {Dept Comp Sci, Univ of Manchester},
   year = {1989},
   keywords = {parallel programming, actors}
}

@techreport{Williams89a,
   author = {I Williams and M Wolczko and T Hopkins},
   title = {Realisation of a dynamically grouped object-oriented virtual memory hierachy},
   type = {Dept Comp Sci, Univ of Manchester},
   year = {1989},
   keywords = {increasing spatial locality, paging, huge virtual memory}
}

@techreport{Williams89b,
   author = {I Williams and M Wolczko and T Hopkins},
   title = {Dynamic grouping in an object-oriented virtual memory},
   type = {Dept Comp Sci, Univ of Manchester},
   year = {1989},
   keywords = {increasing spatial locality, paging, huge virtual memory}
}

@incollection{wadler-blott:type-classes,
   author = {PL Wadler and S Blott},
   title = {How to make ad-hoc polymorphism less ad hoc},
   booktitle = {Proc 16th ACM Symposium on Principles of Programming Languages, Austin, Texas},
   publisher = {ACM},
   month = jan,
   year = {1989},
   keywords = {overloading, classes, inheritance, Haskell, equality, numeric types, object-oriented programming}
}

@techreport{ICL89,
   author = {{ICL}},
   title = {The Flagship Hardware Report},
   institution = {ICL},
   type = {ICL Mainframe Systems},
   month = dec,
   year = {1989},
   keywords = {Flagship hardware description and performance measurements}
}

@article{Trier89,
   author = {PE Trier},
   title = {Pi revisited},
   journal = {Inst of Mathematics and its Applications},
   volume = {25},
   pages = {74-77},
   month = mar,
   year = {1989},
   keywords = {Calculating pi to huge accuracy, Euler, Shanks, Borwein}
}

@book{Graham89,
   author = {RL Graham and DE Knuth and O Patashnik},
   title = {Concrete mathematics},
   publisher = {Addison Wesley},
   year = {1989},
   keywords = {Basic maths for computer science}
}

@inproceedings{augustsson:nu-g,
   author = {L Augustsson and T Johnsson},
   title = {Parallel graph reduction with the $\langle \nu, G \rangle$-machine},
   crossref = "fpca89",
   pages = "202-213",
   keywords = {stacks in the closures, Sequent, shared memory, FPCA, nu, nu-G machine}
}

@inproceedings{George89,
   author = {Lal George},
   title = {An abstract machine for parallel graph reduction},
   booktitle = {Proc IFIP Conference on Functional Programming Languages and Computer Architecture, London},
   publisher = {ACM},
   month = sep,
   year = {1989},
   keywords = {Parallel G-machine, Utah}
}

@techreport{Truve89,
   author = {S Truve},
   title = {The massively parallel {G}-machine},
   type = {Programming Methodology Group, Chal---mers University},
   month = mar,
   year = {1989}
}

@article{Kingdon91,
   author = {H Kingdon and D Lester and GL Burn},
   title = {The {HDG}-machine: a highly distributed graph reducer for a transputer network},
   journal = {Computer Journal},
   volume = {34},
   number = {4},
   pages = {290-302},
   year = {1991},
   keywords = {stack frames}
}

@techreport{Hall86,
   author = {CV Hall and DS Wise},
   title = {Compiling strictness into streams},
   type = {Dept Comp Sci, Indiana Univ},
   month = dec,
   year = {1986},
   keywords = {POPL?}
}

@incollection{Hoare89,
   author = {CAR Hoare},
   title = {The varieties of programming language},
   booktitle = {TAPSOFT},
   publisher = {LNCS 351/2, Springer Verlag},
   year = {1989},
   keywords = {Algebraic semantics, denotational semantics, approximation relations, nondeterminism, nontermination, bottom; nice paper}
}

@techreport{Hartel89,
   author = {PH Hartel and MHM Smid and L Torenvliet and VW Vree},
   title = {A parallel functional implementation of range queries},
   type = {Inst for language, logic and information, University of Amsterdam},
   month = apr,
   year = {1989},
   keywords = {Functional language application; range trees}
}

@techreport{Johnsson89,
   author = {T Johnsson},
   title = {A design principle for a scalable shared-memory multiprocessor},
   type = {PMG memo 68, Programming Methodology Group, Chal---mers University},
   month = apr,
   year = {1989},
   keywords = {concealing memory latency, micro task-switching}
}

@techreport{Augustsson89a,
   author = {L Augustsson},
   title = {Functional non-deterministic programming or How to make your own oracle},
   type = {Programming Methodology Group, Chal---mers University},
   month = mar,
   year = {1989},
   keywords = {I/O, systems, merge, referential transparency}
}

@techreport{Nikhil89a,
   author = {RS Nikhil},
   title = {Generalised comprehensions},
   type = {Lab for Computer Science, MIT},
   month = feb,
   year = {1989},
   keywords = {Functional loops; generalising list comprehensions, arrays}
}

@techreport{Arvind88a,
   author = {Arvind and SK Heller and RS Nikhil},
   title = {Programming generality and parallel computing},
   type = {CSG Memo 287, Lab for Computer Science, MIT},
   month = may,
   year = {1988},
   keywords = {Paraffins problem, arrays, benchmarks}
}

@techreport{Crowley78,
   author = {WP Crowley and CP Hendrickson and TE Rudy},
   title = {The {SIMPLE} code},
   type = {Lawrence Livermore Lab},
   number = {(UCID-17715)},
   month = feb,
   year = {1978},
   keywords = {Detailed description of how SIMPLE works}
}

@techreport{Anonymous85b,
   key = {Anonymous85b},
   title = {Sisal language reference manual},
   type = {Manchester?},
   month = jan,
   year = {1985},
   keywords = {Filed under Sisal}
}

@techreport{Joy89,
   author = {MS Joy},
   title = {The translation of high-level functional languages to {FLIC}},
   type = {RR142, Dept Comp Sci, Univ of Warwick},
   month = may,
   year = {1989},
   keywords = {Sasl, FP to FLIC}
}

@techreport{Eekelen89,
   author = {MCJD van Eekelen and MJ Plasmeijer and JEW Smetsers},
   title = {Communicating functional processes},
   type = {TR 89-3, Dept of Informatics, Univ of Nijmegen},
   month = mar,
   year = {1989},
   keywords = {Distributed parallel graph reduction, indirections, annotations}
}

@article{Sutherland89,
   author = {IE Sutherland},
   title = {Micropipelines},
   journal = {CACM},
   volume = {32},
   number = {6},
   pages = {720-738},
   month = jun,
   year = {1989},
   keywords = {Asynchronous hardware design; Muller C-element; Turing award lecture (very nice paper); FIFO; transition signalling}
}

@incollection{Seitz80,
   author = {CL Seitz},
   editor = {C Mead and L Conway},
   title = {System timing},
   booktitle = {Introduction to VLSI systems},
   pages = {218-262},
   publisher = {Addison Wesley},
   year = {1980},
   keywords = {Asynchronous systems}
}

@techreport{Glaser85,
   author = {H Glaser},
   title = {m'{TUKI}: a multiprocessor dataflow machine},
   type = {Dept of Computing, Kings College London},
   month = jan,
   year = {1985}
}

@techreport{Kelly85,
   author = {P Kelly and H Glaser and S Hayes and P Thompson},
   title = {m'{TUKI}: a multiprocessor computer supporting lazy, high-order functional languages},
   type = {Dept of Computing, Kings College London},
   month = dec,
   year = {1985}
}

@inproceedings{Brzozowski89,
   author = {JA Brzozowski and JC Ebergen},
   title = {Recent developments in the design of asynchronous circuits},
   booktitle = {Proc 7th Intl Conference on Fundamentals of Computation Theory, Szeged, Hungary},
   month = aug,
   year = {1989},
   keywords = {delay-insensitive, self-timed, trace structures, weave; nice survey}
}

@article{Chaney73,
   author = {TJ Chaney and CE Molnar},
   title = {Anomalous behaviour of synchroniser and arbiter circuits},
   journal = {IEEE Trans Computers},
   volume = {C-22},
   number = {4},
   pages = {421-422},
   month = apr,
   year = {1973},
   keywords = {metastability reference}
}

@techreport{Lamport86,
   author = {L Lamport},
   title = {Buridan's Principle},
   type = {DEC SRC},
   month = jan,
   year = {1986},
   keywords = {Metastability, physics, quantum mechanics!}
}

@techreport{Ebergen88,
   author = {JC Ebergen},
   title = {Decomposing arbiters - an excercise in the design of delay-insensitive circuits},
   type = {Dept Comp Sci, Univ of Waterloo},
   month = nov,
   year = {1988},
   keywords = {Asynchronous design}
}

@techreport{Ebergen88a,
   author = {JC Ebergen},
   title = {A formal approach to designing delay-insensitive circuits},
   type = {Dept Comp Sci, Univ of Eindhoven},
   month = may,
   year = {1988},
   keywords = {Asynchronous design, trace theory}
}

@incollection{Dwelly??,
   author = {A Dwelly},
   title = {Dialogue combinators and dynamic user interfaces},
   crossref = "fpca89",
   keywords = {input, output, I/O, streams}
}

@techreport{Dwelly89,
   author = {Andrew Dwelly},
   title = {Graphical user interfaces and dialogue combinators},
   type = {ECRC},
   year = {1989},
   keywords = {streams I/O in functional languages}
}

@techreport{Hartel89a,
   author = {P Hartel},
   title = {Performance of lazy combinator graph reduction},
   type = {D-27, Dept Comp Sci, Univ of Amsterdam},
   month = jul,
   year = {1989},
   keywords = {G-machine vs SK combinators peformance measurement}
}

@techreport{Chu88a,
   author = {DA Chu and FC McCabe and PYK Cheung and GF Knowles},
   title = {{SWIFT} - a new symbolic processor},
   type = {Dept Comp Sci, Imperial College},
   month = mar,
   year = {1988},
   keywords = {WAM, RISC, FORTH, tagged architecture}
}

@techreport{Darlington88a,
   author = {J Darlington and Y Guo},
   title = {Narrowing and unification in functional programming - an evaluation mechanism for absolute set abstraction},
   type = {Dept Comp Sci, Imperial College},
   month = nov,
   year = {1988},
   keywords = {Implementing absolute set abstraction}
}

@techreport{Trehan89,
   author = {R Trehan and PF Wilk},
   title = {Concurrent logic languages for the design and implementation of parallel {AI} systems},
   type = {Dept of AI, Univ of Edinburgh},
   year = {1989},
   keywords = {CCND, Concurrent Prolog, GHC, Parlog, non-determinism; survey}
}

@techreport{Nikhil88b,
   author = {RS Nikhil and Arvind},
   title = {A pattern-matching algorithm},
   type = {Lab for Comp Sci, MIT},
   month = apr,
   year = {1988},
   keywords = {Haskell proposal; nice really}
}

@incollection{Kergommeaux89,
   author = {JC de Kergommeaux and UC Baron and W Rapp and M Ratcliffe},
   editor = {E Odijk and M Rem and J-C Syre},
   title = {Performance analysis of a parallel Prolog: a correlated approach},
   booktitle = {Proc Parallel Architectures and Languages Europe (PARLE)},
   pages = {151-164},
   publisher = {LNCS 366, Springer Verlag},
   month = jun,
   year = {1989},
   keywords = {Simulation, parallelism profile, granularity}
}

@techreport{Zink89,
   author = {K Zink and S Tighe},
   title = {Engines as a method of controlling speculative evaluation},
   type = {MCC},
   month = mar,
   year = {1989}
}

@article{Brent89,
   author = {RP Brent},
   title = {Efficient implementation of the first-fit strategy for dynamic storage allocation},
   journal = toplas,
   volume = {11},
   number = {3},
   pages = {388-403},
   month = jul,
   year = {1989},
   keywords = {malloc, garbage collection}
}

@article{Debray89,
   author = {SK Debray and DS Warren},
   title = {Functional computations in logic programs},
   journal = toplas,
   volume = {11},
   number = {3},
   pages = {451-481},
   month = jul,
   year = {1989},
   keywords = {Making the functional part of PROLOG more efficient}
}

@article{Debray89a,
   author = {SK Debray},
   title = {Static inference of modes and data dependencies in logic programs},
   journal = toplas,
   volume = {11},
   number = {3},
   pages = {418-450},
   month = jul,
   year = {1989},
   keywords = {analysis}
}

@article{Abramson89,
   author = {B Abramson},
   title = {Control strategies for two-player games},
   journal = {Computing Surveys},
   volume = {21},
   number = {2},
   pages = {137-162},
   month = jun,
   year = {1989},
   keywords = {alpha-beta, chess, iterative deepening, minimax, game tree}
}

@article{Steppe89,
   author = {T Steppe},
   title = {Composing well-tempered linear scales},
   journal = {Computer Language},
   volume = {6},
   number = {9},
   pages = {49},
   month = sep,
   year = {1989},
   keywords = {Tick marks on graph axes (making them look pretty automatically), calibration, axis}
}

@article{Beacon89,
   author = {GR Beacon and JR Dodsworth and SE Howe and RG Oliver and A Saia},
   title = {Boundary evaluation using inner and outer sets: the {ISOS} method},
   journal = {IEEE Computer Graphics and applications},
   pages = {39-51},
   month = mar,
   year = {1989},
   keywords = {CSG, solid modelling, splines}
}

@techreport{Glenn86,
   author = {R Glenn and H Schwetman},
   title = {The performance of the Burstein hierachical router using {MCC}'s parallel programming language on the Sequent Balance {B}-8000},
   type = {MCC},
   month = aug,
   year = {1986},
   keywords = {Sasl, divide and conquer}
}

@techreport{Anderson89,
   author = {S Anderson and P Hudak},
   title = {Efficient compilation of Haskell array comprehensions},
   type = {Dept Comp Sci, Yale University},
   month = mar,
   year = {1989},
   keywords = {subscript analysis, loop-carried, loop-independent dependence}
}

@techreport{Frost89,
   author = {RA Frost},
   title = {The use of applicative attribute grammars in application programming},
   type = {Report 89-006, School of Comp Sci, Univ of Waterloo},
   month = jul,
   year = {1989},
   keywords = {Related to Johnsson, Wadler work in parsers; programs from proofs, higher-order functions}
}

@techreport{Connor89,
   author = {RCH Connor and A Dearle and R Morrison and AL Brown},
   title = {An object addressing mechanism for statically typed languages with multiple inheritance},
   type = {PPRR-74-89, Dept of Comp Sci, Univ of St Andrews},
   month = jun,
   year = {1989},
   keywords = {overloading, object oriented, Haskell dictionaries, partial evaluation, large address space, persistence}
}

@techreport{Quarendon88,
   author = {P Quarendon and S Todd},
   title = {Modelling using potential fields},
   type = {IBM Scientific Centre, Winchester},
   month = sep,
   year = {1988},
   keywords = {Constructive solid geometry, CSG, blends, octrees}
}

@techreport{Lester89b,
   author = {DR Lester and GL Burn},
   title = {An executable specification of the {HDG}-Machine},
   type = {GEC Hirst Research Centre},
   month = nov,
   year = {1989},
   keywords = {Miranda program to simulate parallel graph reduction}
}

@techreport{Watson89,
   author = {I Watson},
   title = {Simulation of a physical {EDS} machine architecture},
   type = {Dept of Computer Science, Univ of Manchester},
   month = sep,
   year = {1989},
   keywords = {Lager, parallel architecture, load balancing}
}

@book{Varshavsky87,
   author = {VI Varshavsky},
   title = {Hardware support of parallel asynchronous processes},
   publisher = {Helsinki University of Technology, Digital Systems Laboratory},
   month = sep,
   year = {1987},
   keywords = {Asynchronous hardware design, metastability, finite state machines.  Heavy going but looks good stuff.}
}

@techreport{Nikhil89b,
   author = {RS Nikhil},
   title = {Parallelism - compiling for high-performance machines},
   type = {Lab for Computer Science, MIT},
   month = may,
   year = {1989},
   keywords = {A useful set of lecture notes.  RISC, load-store, pipelining, vectorisation}
}

@techreport{Brunvand89,
   author = {E Brunvand and RF Sproull},
   title = {Translating concurrent communicating programs into delay-insensitive circuits},
   type = {CMU-CS-89-126, Dept Comp Sci, Carnegie Mellon University},
   month = apr,
   year = {1989},
   keywords = {Asynchronous design, translating Occam into asynch circuits.  Very nice.}
}

@techreport{Burn89,
   author = {GL Burn},
   title = {Using projection analysis in compiling lazy functional programs},
   type = {Dept of Computing, Imperial College},
   month = nov,
   year = {1989},
   keywords = {Evaluation transformers, evaluators, compilation schemes}
}

@incollection{Trinder89,
   author = {P Trinder and PL Wadler},
   title = {Improving list comprehension database queries},
   booktitle = {Proc TENCON'89, Bombay, India},
   pages = {186-192},
   month = nov,
   year = {1989},
   keywords = {persistence, join, relational database, filter promotion}
}

@techreport{Davoren89,
   author = {M Davoren},
   title = {A structural approach to the mapping problem in parallel discrete-event logic simulations},
   type = {CST-61-89, Dept of Comp Sci, Univ of Edinburgh},
   year = {1989},
   keywords = {Parallel simulation on transputers, asynchronous}
}

@article{Gu89,
   author = {J Gu and KF Smith},
   title = {A structured approach for {VLSI} circuit design},
   journal = {IEEE Computer},
   volume = {22},
   number = {11},
   pages = {9-25},
   month = nov,
   year = {1989},
   keywords = {PPL path programmable logic, PAL, CMOS}
}

@article{Singhal89,
   author = {M Singhal},
   title = {Deadlock detection in distributed systems},
   journal = {IEEE Computer},
   volume = {22},
   number = {11},
   pages = {37-48},
   month = nov,
   year = {1989}
}

@article{Ambler89,
   author = {AL Ambler and MM Burnett},
   title = {Influence of visual technology on the evolution of language environments},
   journal = {IEEE Computer},
   volume = {22},
   number = {10},
   pages = {9-24},
   month = oct,
   year = {1989},
   keywords = {visual programming, spreadsheet, structure editor}
}

@article{al89a,
   author = {T Lehr et al},
   title = {Visualising performance debugging},
   journal = {IEEE Computer},
   volume = {22},
   number = {10},
   pages = {38-52},
   month = oct,
   year = {1989},
   keywords = {PIE, instrumentation}
}

@article{Blank89,
   author = {GD Blank},
   title = {A finite and real-time processor for natural language},
   journal = {CACM},
   volume = {32},
   number = {10},
   pages = {1174-1189},
   month = oct,
   year = {1989},
   keywords = {A funny kind of parser with interesting transition rules; nice stuff.  RVG Register Vector Grammar}
}

@article{Shapiro89,
   author = {E Shapiro},
   title = {Linda = Prolog - Logic + Concurrency},
   journal = {CACM},
   volume = {32},
   number = {10},
   pages = {1244-1249},
   month = oct,
   year = {1989},
   keywords = {Good letter comparing Linda and Prolog.  Parlog, GHC, FCP.}
}

@incollection{Argo89,
   author = {G Argo},
   editor = {D MacQueen},
   title = {Improving the three instruction machine},
   booktitle = {Functional Programming Languages and Computer Architecture},
   pages = {100-115},
   publisher = {Addison Wesley},
   month = sep,
   year = {1989},
   keywords = {sharing analysis, indirections}
}

@techreport{Osborne89,
   author = {RB Osborne},
   title = {Speculative computation in Multilisp},
   type = {DEC Cambridge Research Lab},
   month = nov,
   year = {1989},
   keywords = {parallelism, scheduling, sponsor}
}

@article{Mohr91,
   author = {E Mohr and DA Kranz and RH Halstead},
   title = {Lazy task creation - a technique for increasing the granularity of parallel programs},
   journal = {IEEE Transactions on Parallel and Distributed Systems},
   volume = {2},
   number = {3},
   month = jul,
   year = {1991},
   keywords = {speculative parallelism, scheduling, load-based inlining}
}

@techreport{Giorgi89,
   author = {J-F Giorgi and D Le Metayer},
   title = {Continuation-based parallel implementation of functional programming languages},
   type = {IRISA/INRIA Campus de Beaulieu},
   month = nov,
   year = {1989},
   keywords = {Formal development of a CAM-like machine with sparking and lots of continuations! Very nice paper.  Related to work with Fradet.}
}

@techreport{Feo90,
   author = {JT Feo and DC Cann and RR Oldehoeft},
   title = {A report on the Sisal language project},
   type = {L-306, Lawrence Livermore Lab},
   month = jan,
   year = {1990},
   keywords = {Livermore loops, performance competitive with Fortran, excellent performance results!}
}

@article{Isenman90,
   author = {ME Isenman and DE Shasha},
   title = {Performance and architecture issues for string matching},
   journal = {IEEE Trans Computers},
   volume = {39},
   number = {2},
   pages = {238-250},
   month = feb,
   year = {1990},
   keywords = {Knuth-Morris-Pratt algorithm, variable length don't cares, Boyer-Moore algorithm}
}

@article{David90,
   author = {R David and A Fuentes},
   title = {Fault diagnosis of RAMs from random testing experiments},
   journal = {IEEE Trans Computers},
   volume = {39},
   number = {2},
   pages = {220-229},
   month = feb,
   year = {1990}
}

@inproceedings{Appel89,
   author = {AW Appel and T Jim},
   title = {Continuation-passing, closure-passing style},
   booktitle = {Proc ACM Conference on Principles of Programming Languages},
   pages = {293-302},
   publisher = {ACM},
   month = jan,
   year = {1989},
   keywords = {SML of NJ, stacklessness, CPS, Orbit}
}

@inproceedings{Kelsey89,
   author = {R Kelsey and P Hudak},
   title = {Realistic compilation by program transformation},
   booktitle = {Proc ACM Conference on Principles of Programming Languages},
   pages = {281-292},
   publisher = {ACM},
   month = jan,
   year = {1989},
   keywords = {register allocation, CPS, continuations}
}

@book{Mitchell90,
   author = {Mitchell and Thompson and Manson and Brooks},
   title = {Inside the transputer},
   publisher = {Blackwell Scientific},
   year = {1990}
}

@article{Padmanabhan90,
   author = {K Padmanabhan},
   title = {Cube structures for multiprocessors},
   journal = {CACM},
   volume = {33},
   number = {1},
   month = jan,
   year = {1990},
   keywords = {interconnection networks, hypercube}
}

@article{Freeman-Benson90,
   author = {BN Freeman-Benson and J Maloney and A Borning},
   title = {An incremental constraint solver},
   journal = {CACM},
   volume = {33},
   number = {1},
   month = jan,
   year = {1990},
   keywords = {DeltaBlue, ThingLab}
}

@article{Carta90,
   author = {DG Carta},
   title = {Two fast implementations of the minimal standard random number generator},
   journal = {CACM},
   volume = {33},
   number = {1},
   pages = {87-88},
   month = jan,
   year = {1990}
}

@article{Dijkstra89,
   author = {EJW Dijkstra},
   title = {A debate on teaching computing science},
   journal = {CACM},
   volume = {32},
   number = {12},
   month = dec,
   year = {1989},
   keywords = {software engineering, introductory programming, reasoning about programs, mathematics}
}

@article{Purtilo89,
   author = {JJ Purtilo and JR Callahan},
   title = {Parse tree annotations},
   journal = {CACM},
   volume = {32},
   number = {12},
   month = dec,
   year = {1989},
   keywords = {Yacc, attribute grammars, parser generators; nice.}
}

@article{Sanders89,
   author = {P Sanders},
   title = {An evaluation of functional programming for the commercial environment},
   journal = {British Telecom Technology Journal},
   volume = {7},
   number = {3},
   pages = {25-33},
   month = jul,
   year = {1989},
   keywords = {Miranda, ML, Hope, debugging, C, Ada; positive!}
}

@techreport{Beck90,
   author = {M Beck and K Pingali},
   title = {A Nicolau Static scheduling for dynamic dataflow machines},
   type = {TR 90-1076, Dept Comp Sci, Cornell},
   month = jan,
   year = {1990},
   keywords = {Loop bounding seen as harmful, alternatives developed, Monsoon}
}

@techreport{Beck89,
   author = {M Beck and K Pingali},
   title = {From control flow to data flow},
   type = {TR 89-1050, Dept Comp Sci, Cornell},
   month = oct,
   year = {1989},
   keywords = {Compiling imperative programs for dataflow machines}
}

@techreport{Arvind89a,
   author = {Arvind and RS Nikhil},
   title = {A dataflow approach to general-purpose parallel computing},
   type = {CSG Memo 302, Lab for Comp Sci, MIT},
   month = jul,
   year = {1989},
   keywords = {I-structures, explicit token store; overview paper}
}

@techreport{Young89,
   author = {JH Young},
   title = {The theory and practice of semantic program analysis for higher-order functional programming languages},
   type = {YALEU/DCS/RR-669},
   month = may,
   year = {1989},
   keywords = {His PhD thesis}
}

@techreport{Runciman89,
   author = {C Runciman and M Firth and N Jagger},
   title = {Transformation in a non-strict language: an approach to instantiation},
   type = {Glasgow FP workshop, Fraserburgh},
   month = aug,
   year = {1989},
   keywords = {Identifies problem in fold/unfold for non-strict languages; plus proposed solution. Useful paper.}
}

@techreport{Nikhil87a,
   author = {RS Nikhil},
   title = {The semantics of update in a functional database programming language},
   type = {Proc ALTAIR/CRAI Workshop on Database Programming Languages, Roscoff},
   year = {1987},
   keywords = {Parallel, determinate, like Phil Trinder's stuff.}
}

@inproceedings{Cardelli90,
   author = {L Cardelli and JC Mitchell},
   title = {Operations on records},
   booktitle = {Fifth International Conference on Mathematical Foundations of Programming Language Semantics},
   publisher = {Springer Verlag LNCS 442},
   year = {1990},
   keywords = {object-oriented languages, inheritance, bounded quantification, subtypes}
}

@inproceedings{Hughes89a,
   author = {RJM Hughes},
   title = {Projections for polymorphic strictness analysis},
   booktitle = {Proc IFIP Conference on Category Theory and Computer Science, Manchester},
   publisher = {Springer LNCS},
   year = {1989},
   keywords = {Category theory, compilers}
}

@techreport{Hughes89b,
   author = {RJM Hughes},
   title = {Understanding polymorphism},
   type = {Dept Comp Sci, Univ of Glasgow},
   year = {1989},
   keywords = {Polymorphism viewed through category theory}
}

@misc{Clinger89,
   author = {W Clinger and J Rees and et al},
   title = {Revised (3.99) report on the algorithmic language Scheme},
   month = aug,
   year = {1989},
   keywords = {Lisp, T}
}

@article{McDowell89,
   author = {CE McDowell and DP Helmbold},
   title = {Debugging concurrent programs},
   journal = {ACM Computing Surveys},
   volume = {21},
   number = {4},
   pages = {593-623},
   month = dec,
   year = {1989}
}

@article{Bell89,
   author = {T Bell and IH Witten and JG Cleary},
   title = {Modelling for text compression},
   journal = {ACM Computing Surveys},
   volume = {21},
   number = {4},
   pages = {557-592},
   month = dec,
   year = {1989},
   keywords = {adaptive encoding}
}

@article{Mudd90,
   author = {J Mudd},
   title = {Automating {C} debugging with preprocessor macros},
   journal = {Computer Language},
   volume = {7},
   number = {2},
   pages = {69-85},
   month = feb,
   year = {1990},
   keywords = {Using CPP in a totally amazing way}
}

@article{Leler90,
   author = {W Leler},
   title = {Linda meets Unix},
   journal = {IEEE Computer},
   volume = {23},
   number = {2},
   pages = {43-54},
   month = feb,
   year = {1990},
   keywords = {Qix, Pix.  Well written}
}

@incollection{Lucassen88,
   author = {JM Lucassen and DK Gifford},
   title = {Polymorphic effect systems},
   booktitle = {$|$POPL$|$},
   month = jan,
   year = {1988},
   keywords = {FX, side effects}
}

@techreport{Jouvelot89,
   author = {P Jouvelot and DK Gifford},
   title = {Communication effects for message-based concurrency},
   type = {MIT Lab for Computer Science},
   month = feb,
   year = {1989},
   keywords = {FX, side effects}
}

@techreport{Jouvelot89a,
   author = {P Jouvelot and DK Gifford},
   title = {Reasoning about continuations with control effects},
   type = {MIT Lab for Computer Science},
   month = jan,
   year = {1989},
   keywords = {FX, side effects}
}

@techreport{Hammel89,
   author = {RT Hammel and DK Gifford},
   title = {{FX}-87 in a dataflow environment},
   type = {MIT Lab for Computer Science},
   month = mar,
   year = {1989},
   keywords = {FX, side effects, parallelism}
}

@incollection{Jouvelot89b,
   author = {P Jouvelot and DK Gifford},
   editor = {M Cosnard},
   title = {Parallel functional programming - the {FX} project},
   booktitle = {Parallel and distributed algorithms},
   publisher = {Elsvier},
   year = {1989},
   keywords = {FX, side effects}
}

@phdthesis{Lucassen87,
   author = {JM Lucassen},
   title = {Types and effects: towardsd the integration of functional and imperative programming},
   type = {Ph.{D}. Thesis},
   number = {MIT Lab for Computer Science},
   month = aug,
   year = {1987},
   keywords = {FX, side effects}
}

@article{Thomas90,
   author = {EJ Thomas and PW Oman},
   title = {A bibliography of programming style},
   journal = {SIGPLAN Notices},
   volume = {25},
   number = {2},
   month = feb,
   year = {1990},
   keywords = {literate programming, pretty printing, layout, annotations, indentation; the bibliography is annotated by the authors}
}

@book{Holub89,
   author = {AI Holub},
   title = {Compiler design in {C}},
   publisher = {Prentice Hall},
   year = {1989}
}

@techreport{Jamsek89,
   author = {D Jamsek and KJ Greene and S-K Chin and PR Humenn},
   title = {{WINTER} - {WAMS} in {TIM} expression reduction},
   type = {CASE Center, Syracuse University},
   year = {1989},
   keywords = {Combining WAM and TIM in one machine}
}

@article{Fradet91,
   author = {P Fradet and D Le Metayer},
   title = {Compilation of functional languages by program transformation},
   journal = {ACM Transactions on Programming Languages and Systems},
   volume = {13},
   number = {1},
   pages = {21-51},
   month = jan,
   year = {1991},
   keywords = {continuation passing style, combinators, CAM; a nice paper}
}

@techreport{Burn90,
   author = {GL Burn},
   title = {Head-strictness, abstract interpretation and projection analysis},
   type = {Dept of Computing, Imperial College},
   month = mar,
   year = {1990},
   keywords = {parallelism}
}

@techreport{Burn90a,
   author = {GL Burn},
   title = {A new domain for head-strictness},
   type = {Dept of Computing, Imperial College},
   month = jan,
   year = {1990},
   keywords = {abstract interpretation, projection analysis}
}

@inproceedings{Burn90b,
   author = {GL Burn},
   title = {Using projection analysis in compiling lazy functional programs},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming, Nice},
   publisher = {ACM},
   month = jun,
   year = {1990},
   keywords = {abstract interpretation, strictness analysis}
}

@inproceedings{Kiczales90,
   author = {G Kiczales and L Rodriguez},
   title = {Efficient method dispatch in {PCL}},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming, Nice},
   publisher = {ACM},
   month = jun,
   year = {1990},
   keywords = {memoising dynamically-altering method tables; classes inheritance}
}

@inproceedings{Johnson90,
   author = {D Johnson},
   title = {Trap architectures for Lisp systems},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming, Nice},
   publisher = {ACM},
   month = jun,
   year = {1990},
   keywords = {arithmetic, storage management}
}

@inproceedings{wadler:comprehending-lfp,
   author = {PL Wadler},
   title = {Comprehending monads},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming, Nice},
   publisher = {ACM},
   month = jun,
   year = {1990},
   keywords = {category theory, update in place, arrays, continuations, input/output, IO, exceptions, parsers; good stuff}
}

@techreport{Bird90,
   author = {RS Bird},
   title = {The minout problem},
   type = {IFIP WG 2.8, Rome},
   month = mar,
   year = {1990},
   keywords = {A Squiggol derivation for a nice problem}
}

@techreport{Filinski89,
   author = {A Filinski},
   title = {Declarative continuations and categorical duality},
   type = {MSc thesis, DIKU Report},
   number = {89/11},
   month = jul,
   year = {1989},
   keywords = {Symmetric lambda calculus.  Recommended by Dick Kieburtz}
}

@techreport{Parberry89,
   author = {I Parberry},
   title = {A guide for new referees in theoretical computer science},
   type = {Dept Comp Sci, Penn State Univ},
   month = nov,
   year = {1989}
}

@incollection{Wadler87d,
   author = {PL Wadler},
   editor = {S Abramsky and C Hankin},
   title = {Strictness analysis on non-flat domains},
   booktitle = {Abstract interpretation of declarative languages},
   pages = {266-275},
   publisher = {Ellis Horwood},
   year = {1987},
   keywords = {fixpoints}
}

@incollection{Burn90c,
   author = {GL Burn},
   title = {A relationship between abstract interpretation and projection analysis},
   booktitle = {Proc POPL},
   publisher = {ACM},
   month = jan,
   year = {1990},
   keywords = {strictness analysis}
}

@techreport{Davis89,
   author = {K Davis and PL Wadler},
   title = {Backwards strictness analysis: proved and improved},
   type = {Dept Comp Sci, Univ of Glasgow},
   month = nov,
   year = {1989},
   keywords = {Projections}
}

@article{Kierulf90,
   author = {A Kierulf and K Chen and J Nievergelt},
   title = {Smart Game Board and Go Explorer - a study in software and knowledge engineering},
   journal = {CACM},
   volume = {33},
   number = {2},
   pages = {152-167},
   month = feb,
   year = {1990},
   keywords = {chess, alpha beta}
}

@techreport{Draper89,
   author = {J Draper and R Mueller and J Ghosh},
   title = {An efficient implementation of futures for concurrent Lisp systems},
   type = {Dept Comp Sci, Univ of Texas},
   month = dec,
   year = {1989},
   keywords = {task creation, sparking, lazy futures, parallel, granularity}
}

@techreport{Abramson89a,
   author = {D Abramson and JL Gaudiot and W Heath},
   title = {Parallel manipulation of arrays in Sisal},
   type = {Dept of Comms and Elec Ent, Royal Melbourne Inst of Tech},
   month = dec,
   year = {1989},
   keywords = {concurrent array; some interesting algorithms}
}

@article{Aho89,
   author = {AV Aho and M Ganapathi and SWK Tjiang},
   title = {Code generation using tree matching and dynamic programming},
   journal = toplas,
   volume = {11},
   number = {4},
   pages = {491-516},
   month = oct,
   year = {1989},
   keywords = {twig, register allocation}
}

@article{Sijsma89,
   author = {BA Sijsma},
   title = {On the productivity of recursive list definitions},
   journal = toplas,
   volume = {11},
   number = {4},
   pages = {633-649},
   month = oct,
   year = {1989},
   keywords = {Lazy evaluation; the paper from his thesis}
}

@article{Amamiya87,
   author = {M Amamiya and R Hasegawa and M Takesue and H Mikami},
   title = {A data flow machine architecture for highly parallel symbol manipulations},
   journal = {Journal of Information Processing},
   volume = {10},
   number = {4},
   year = {1987},
   keywords = {Something like an explicit token store}
}

@techreport{Amamiya89,
   author = {M Amamiya},
   title = {An ultra multi processing machine architecture for efficient parallel execution of functional language},
   type = {Dept of Info Sys, Kyushu Univ},
   year = {1989},
   keywords = {Some similarities with P-RISC, data flow}
}

@inproceedings{tolmach:debugger,
   author = {AP Tolmach and AW Appel},
   title = {Debugging {Standard ML} without reverse engineering},
   booktitle = {Proc ACM Conference on Lisp and Functional Programming, Nice},
   publisher = {ACM},
   month = jun,
   year = {1990},
   keywords = {time travel, SML, continuations}
}

@article{Bird87,
   author = {RS Bird},
   title = {A formal development of an efficient supercombinator compiler},
   journal = scp,
   volume = {8},
   pages = {113-137},
   year = {1987},
   keywords = {full laziness, program transformation; nice paper}
}

@article{Burton90,
   author = {FW Burton},
   title = {Type extension through polymorphism},
   journal = toplas,
   volume = {12},
   number = {1},
   pages = {135-138},
   month = jan,
   year = {1990},
   keywords = {Minor programming trick; extra void field in tuple allows extension; inheritance}
}

@article{Chandrasekaran90,
   author = {S Chandrasekaran and S Venkatesan},
   title = {A message-optimal algorithm for distributed termination detection},
   journal = {Journal of parallel and distributed computing},
   volume = {8},
   pages = {245-252},
   year = {1990}
}

@inproceedings{berry:sequential,
  author = "Gerard Berry",
  title = "Sequentialit\'{e} de l'evaluation formelle des lambdas-expressions",
  booktitle = "Proc. 3rd International Colloquium on Programming",
  address = "Paris, France",
  year = 1978
}

@phdthesis{hughes-thesis,
   author = {RJM Hughes},
   title = {The design and implementation of programming languages},
   type = {Ph.{D}. Thesis},
   school = "Programming Research Group, Oxford University",
   month = jul,
   year = {1983},
   keywords = {supercombinators, lambda lifting, full laziness}
}

@phdthesis{Osbourne89,
   author = {RB Osbourne},
   title = {Speculative computation in Multilisp},
   number = {TR-464},
   school = {MIT Lab for Computer Science},
   month = dec,
   year = {1989},
   keywords = {parallelism, scheduling, garbage collection, tasks}
}

@book{Hennessy90,
   author = {JL Hennessy and DA Patterson},
   title = {Computer Architecture: {A} Quantitative Approach},
   publisher = {Morgan Kaufman},
   month = feb,
   year = {1990},
   keywords = {good stuff},
   ISBN = {1-55860-069-8}
}

@book{Tufte83,
   author = {E Tufte},
   title = {The Visual Display of Quantitative Information},
   publisher = {Graphics Press},
   year = {1983},
   keywords = {supposed to be great}
}

@book{Tufte90,
   author = {E Tufte},
   title = {Envisioning information},
   publisher = {Graphics Press},
   year = {1990},
   keywords = {supposed to be great; grpahs, colour}
}

@article{Rettberg90,
   author = {RD Rettberg and et al},
   title = {The Monarch parallel processor hardware design},
   journal = {IEEE Computer},
   volume = {23},
   number = {4},
   pages = {18-31},
   month = apr,
   year = {1990},
   keywords = {shared memory, synchronous network, interconnectoin network}
}

@article{Sha90,
   author = {L Sha and B Goodenough},
   title = {Real-time scheduling theory and Ada},
   journal = {IEEE Computer},
   volume = {23},
   number = {4},
   pages = {32-64},
   month = apr,
   year = {1990},
   keywords = {interesting theory}
}

@article{Smith90,
   author = {AJ Smith},
   title = {The task of the referee},
   journal = {IEEE Computer},
   volume = {23},
   number = {4},
   pages = {65-73},
   month = apr,
   year = {1990},
   keywords = {Good stuff. Reviewing}
}

@article{Pavlidis90,
   author = {T Pavlidis and et al},
   title = {Fundamentals of bar code information theory},
   journal = {IEEE Computer},
   volume = {23},
   number = {4},
   pages = {74},
   month = apr,
   year = {1990}
}

@techreport{Perry90,
   author = {Nigel Perry},
   title = {I/{O} and inter-language calling for functional languages},
   type = {Dept Comp Sci, Imperial College},
   year = {1990},
   keywords = {continuations, streams, input/output, strictness bugs, dialogues; opinionated but good survey}
}

@techreport{Baugh90,
   author = {JW Baugh and DR Rehak},
   title = {Using large-grain dataflow in engineering analysis programs},
   type = {Dept of Civil Eng, North Carolina State Univ},
   year = {1990},
   keywords = {scientific programming, higher order functions}
}

@article{Fox89,
   author = {GC Fox},
   title = {Parallel computing comes of age: supercomputer level parallel computations at Caltech},
   journal = {Concurrency: practice and experience},
   volume = {1},
   number = {1},
   pages = {63-104},
   month = sep,
   year = {1989},
   keywords = {Useful survey, experience of parallel programming}
}

@inproceedings{wadler:theorems-for-free,
   author = {PL Wadler},
   editor = {MacQueen},
   title = {Theorems for free!},
   booktitle = {Fourth International Conference on Functional Programming and Computer Architecture, London},
   publisher = {Addison Wesley},
   year = {1989}
}

@article{ODonnell88,
   author = {JT O'Donnell and T Bridges and SW Kitchel},
   title = {A {VLSI} implementation of an architecture for applicative programming},
   journal = {Future Generation Computer Systems},
   volume = {4},
   number = {3},
   pages = {245-254},
   month = oct,
   year = {1988},
   keywords = {massive parallelism, SIMD architecture, functional programming}
}

@techreport{Trinder89a,
   author = {PW Trinder},
   title = {A functional database},
   type = {DPhil Thesis, Oxford University},
   month = dec,
   year = {1989},
   keywords = {Parallel database operations, optimising database queries}
}

@book{Cole89,
   author = {M Cole},
   title = {Algorithmic skeletons: structured management of parallel computation},
   publisher = {Pitman/MIT Press},
   year = {1989}
}

@techreport{Bradley90,
   author = {E Bradley},
   title = {Functional programming languages for {AI} problem solving},
   type = {AIAI, Edinburgh},
   month = mar,
   year = {1990},
   keywords = {using functional languages, applications, FLARE}
}

@techreport{Baudinet90,
   author = {M Baudinet and D MacQueen},
   title = {Tree pattern matching for {ML}},
   type = {Bell Labs, Murray Hill},
   year = {1990},
   keywords = {compilation of pattern matching, decision trees}
}

@phdthesis{Argo90,
   author = {G Argo},
   title = {Efficient laziness},
   type = {Ph.{D}. Thesis},
   number = {University of Glasgow},
   year = {1990},
   keywords = {TIM and its refinements}
}

@inproceedings{Hammond89a,
   author = {K Hammond},
   editor = {K Davis and RJM Hughes},
   title = {Demystifying type classes},
   booktitle = {Proc Glasgow Workshop on Functional Programming},
   publisher = {Springer Workshops in Computing},
   month = aug,
   year = {1989},
   keywords = {Haskell dictionaries overloading}
}

@article{Li89,
   author = {K Li and P Hudak},
   title = {Memory coherence in shared virtual memory systems},
   journal = {ACT Transactions on Computer Systems},
   volume = {7},
   number = {4},
   pages = {321-359},
   month = nov,
   year = {1989},
   keywords = {cache segmentation multicomputer}
}

@book{Przybylski90,
   author = {SA Przybylski},
   title = {Cache and memory hierachy design: a performance-directed approach},
   publisher = {Morgan Kaufman},
   year = {1990}
}

@book{MacLane71,
   author = {Saunders MacLane},
   title = {Categories for the Working Mathematician},
   publisher = {Graduate Texts in Mathematics 5, Springer Verlag},
   year = {1971},
   keywords = {category theory}
}

@book{Lambek86,
   author = {J Lambek and PJ Scott},
   title = {Introduction to higher order categorical logic},
   publisher = {Cambridge University Press},
   year = {1986},
   keywords = {category theory}
}

@book{Barr90,
   author = {M Barr and C Wells},
   title = {Category Theory for Computing Science},
   publisher = {Prentice Hall},
   year = {1990}
}

@book{Girard89,
   author = {J-Y Girard and Y Lafont and P Taylor},
   title = {Proofs and Types},
   publisher = {Cambridge University Press},
   year = {1989},
   keywords = {type theory}
}

@incollection{Howard80,
   author = {WA Howard},
   editor = {JP Seldin and JR Hindley},
   title = {The formulae-as-types notion of construction},
   booktitle = {To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism},
   publisher = {Academic Press},
   year = {1980}
}

@incollection{Kennaway90,
   author = {R Kennaway},
   title = {Paper on pattern matching},
   booktitle = {ESOP},
   publisher = {Springer LNCS 432},
   year = {1990}
}

@techreport{huet-levy:sequential,
   author = {G Huet and JJ Levy},
   title = {Call by need computations in non-ambiguous linear term-rewriting systems},
   type = {Report 359},
   institution = {INRIA},
   year = {1979},
   keywords = {pattern matching}
}

@article{Bal89,
   author = {HE Bal and JG Steiner and AS Tanenbaum},
   title = {Programming languages for distributed computing systems},
   journal = {ACM Computing Surveys},
   volume = {21},
   number = {3},
   month = sep,
   year = {1989}
}

@article{Hudak89,
   author = {P Hudak},
   title = {Conception, evolution and application of functional programming languages},
   journal = {ACM Computing Surveys},
   volume = {21},
   number = {3},
   pages = {359-411},
   month = sep,
   year = {1989},
   keywords = {Haskell, survey}
}

@article{Shapiro89a,
   author = {E Shapiro},
   title = {The family of concurrent logic programming languages},
   journal = {ACM Computing Surveys},
   volume = {21},
   number = {3},
   pages = {412-510},
   month = sep,
   year = {1989},
   keywords = {Prolog, Parlog, FCP, GHC, FGHC etc}
}

@article{Carriero89,
   author = {N Carriero and D Gelernter},
   title = {How to write parallel programs: a guide to the perplexed},
   journal = {ACM Computing Surveys},
   volume = {21},
   number = {3},
   pages = {323-358},
   month = sep,
   year = {1989},
   keywords = {programming techniques, Linda, sieve of Eratosthenes;  good.}
}

@article{Goor90,
   author = {AJ van de Goor and CA Verruijt},
   title = {An overview of deterministic functional {RAM} chip testing},
   journal = {ACM Computing Surveys},
   volume = {22},
   number = {1},
   month = mar,
   year = {1990}
}

@article{Hirschberg90,
   author = {DS Hirschberg and DA Lelewer},
   title = {Efficient decoding of prefix codes},
   journal = {CACM},
   volume = {33},
   number = {4},
   month = apr,
   year = {1990}
}

@article{Hunt90,
   author = {S Hunt and C Hankin},
   title = {Fixed points and frontiers: a new perspective},
   journal = {Journal of Functional Programming},
   volume = {1},
   number = {1},
   year = {1990},
   keywords = {abstract interpretation}
}

@article{Karp90,
   author = {AH Karp and HP Flatt},
   title = {Measuring parallel processor performance},
   journal = {CACM},
   volume = {33},
   number = {5},
   pages = {539-543},
   month = may,
   year = {1990},
   keywords = {measured serial fraction, Amdahl's law, performance}
}

@techreport{IEEE90,
   author = {{IEEE}},
   title = {Futurebus+ P896.1: Logical layer specifications (Draft 8.2)},
   institution = {IEEE},
   type = {IEEE, 345 East 47th St, NY},
   number = {10017},
   month = jan,
   year = {1990}
}

@techreport{IEEE87,
   author = {{IEEE}},
   title = {Futurebus P896.1: a backplane bus specification for multiprocessor architectures (Draft 7.5a)},
   institution = {IEEE},
   type = {IEEE, 345, East 47th St, NY},
   number = {10017},
   month = jun,
   year = {1987}
}

@techreport{Chin89,
   author = {WN Chin},
   title = {Mechanising the tupling tactic},
   type = {Dept Comp Sci, Imperial College},
   month = nov,
   year = {1989},
   keywords = {Converting recursion to iteration; nice paper; eureka step}
}

@article{Keller90,
   author = {D Keller},
   title = {A guide to natural naming},
   journal = {SIGPLAN Notices},
   volume = {25},
   number = {5},
   month = may,
   year = {1990},
   keywords = {programming style, identifiers}
}

@techreport{Jones90,
   author = {MP Jones},
   title = {Computing with lattices - an application of type classes},
   type = {PRG, Oxford},
   month = jun,
   year = {1990},
   keywords = {Haskell overloading, domains, fixpoints, frontiers}
}

@article{Scheifler86,
   author = {RW Scheifler and Jim Gettys},
   title = {The {X} Window System},
   journal = {ACM Transactions on Graphics},
   volume = {5},
   number = {2},
   pages = {79-109},
   month = apr,
   year = {1986},
   keywords = {Good overview of X}
}

@article{Pearson90,
   author = {PK Pearson},
   title = {Fast hashing of variable-length text strings},
   journal = {CACM},
   volume = {33},
   number = {6},
   pages = {677-680},
   month = jun,
   year = {1990},
   keywords = {Simple, effective algorithm}
}

@article{Pugh90,
   author = {W Pugh},
   title = {Skip lists: a probabilistic alternative to balanced trees},
   journal = {CACM},
   volume = {33},
   number = {6},
   pages = {668-676},
   month = jun,
   year = {1990},
   keywords = {AVL trees, lookup tables.  Simple, effective data structure.}
}

@techreport{Cole90,
   author = {M Cole},
   title = {Towards fully local multicomputer implementations of functioanl languages},
   type = {CSC 90/R7, Dept Comp Sci, Univ of Glasgow},
   month = jan,
   year = {1990},
   keywords = {caliban, process network, skeletons, murray, distributed memory}
}

@techreport{Hey90,
   author = {AJG Hey},
   title = {Supercomputing with transputers: past, present and future},
   type = {RC 15760, IBM TJ Watson Research Centre},
   month = may,
   year = {1990},
   keywords = {Supernode, IBM Victor, Edinburgh Meiko}
}

@inproceedings{Hey90a,
   author = {AJG Hey},
   title = {Concurrent Supercomputing in Europe},
   booktitle = {5th Distributed Memory Computing Conference, Charleston},
   month = apr,
   year = {1990},
   keywords = {Supernode, Edinburgh concurrent supercomputer, Supremum}
}

@article{Weber90,
   author = {K Weber},
   title = {An experiment in high-precision arithmetic on shared-memory multiprocessors},
   journal = {SIGSAM Bulletin},
   volume = {24},
   number = {2},
   month = apr,
   year = {1990},
   keywords = {Parallel arithmetic package. Maybe a parallel functional benchmark?}
}

@article{Onvural90,
   author = {RO Onvural},
   title = {Survey of closed queueing networks with blocking},
   journal = {ACM Computing Surveys},
   volume = {22},
   number = {2},
   month = jun,
   year = {1990},
   keywords = {queueing theory, stochastic, markov model}
}

@article{Pawlikowski90,
   author = {K Pawlikowski},
   title = {Steady-state simulation of queueing processes: a survey of problems and solutions},
   journal = {ACM Computing Surveys},
   volume = {22},
   number = {2},
   month = jun,
   year = {1990},
   keywords = {What you need to do to make your queueing simulation statistically significant}
}

@techreport{Agnew89,
   author = {M Agnew and R Ward},
   title = {db++: the Raccess and Simple {C}-programming interface},
   type = {Concept ASA, Frankfurt},
   month = feb,
   year = {1989},
   keywords = {database, small fast}
}

@article{Dasgupta90,
   author = {S Dasgupta},
   title = {A hierachical taxonomic system for computer architectures},
   journal = {IEEE Computer},
   volume = {23},
   number = {3},
   month = mar,
   year = {1990},
   keywords = {SIMD MIMD}
}

@book{Date90,
   author = {CJ Date},
   title = {A guide to the {SQL} standard},
   publisher = {Addison Wesley},
   year = {1990 Second edition},
   keywords = {database relational}
}

@incollection{Guzman90,
   author = {JC Guzman and P Hudak},
   title = {Single-threaded polymorphic lambda calculus},
   booktitle = {Proc 5th Annual IEEE Symposium on Logic in Computer Science},
   year = {1990},
   keywords = {linear type systems}
}

@inproceedings{Nikhil89c,
   author = {R Nikhil},
   title = {The parallel programming language Id and its compilation for parallel machines},
   booktitle = {Proc Workshop on massive parallelism: hardware, programming and applications, Amalfi},
   publisher = {Academic Press},
   month = oct,
   year = {1989},
   keywords = {P-RISC targetted for conventional processors and others; C as a target language; threads; dataflow graphs; I-structures}
}

@techreport{Glaser90,
   author = {H Glaser and P Hartel and J Wild},
   title = {A pragmatic approach to the analysis and compilation of lazy functional languages},
   type = {CSTR 90-10, Dept Comp Sci, Univ of Southampton},
   year = {1990},
   keywords = {not very good}
}

@techreport{Lester90,
   author = {DR Lester},
   title = {Some computable numbers for engineers: an Orwell implementation},
   type = {Dept Comp Sci, Univ of Manchester},
   year = {1990},
   keywords = {continued fractions, rational numbers, arithmetic, transcendentals, Gosper, Vullemin; excellent.}
}

@incollection{alrbrace88,
   author = {M Raber {\em et al}},
   title = {Compiled graph reduction on a processor network},
   booktitle = {IFB 168},
   publisher = {Springer Verlag},
   year = {1988},
   keywords = {A bit dated somehow.  Parallel G-machine stuff.}
}

@techreport{ODonnell90,
   author = {JT O'Donnell},
   title = {Derivation of fine-grain algorithms},
   type = {Slides, Dept Comp Sci, Univ of Glasgow},
   year = {1990},
   keywords = {parallel prefix on a tree machine.  Good stuff}
}

@incollection{alrbrace??,
   author = {BK Holmer {\em et al}},
   title = {Fast Prolog with an extended general-purpose architecture},
   booktitle = {Proc 17th Intl Symposium on Computer Architecture},
   publisher = {ACM},
   keywords = {minimal extensions to conventional arch to support Prolog.}
}

@techreport{Nocker??,
   author = {E Nocker},
   title = {Strictness analysis using abstract reduction},
   type = {TR 90-14, Dept of Informatics, Univ of Nijmegen},
   keywords = {pending analysis, non-flat domains; a bit of a hack but works very well}
}

@article{Li89a,
   author = {K Li and P Hudak},
   title = {Memory Coherence in shared virtual memory systems},
   journal = {ACM Trans Computer Systems},
   volume = {7},
   number = {4},
   pages = {321-359},
   month = nov,
   year = {1989},
   keywords = {loosely coupled multiprocessors with shared memory}
}

@article{ODonnell88a,
   author = {JT O'Donnell and CV Hall},
   title = {Debugging in applicative languages},
   journal = lasc,
   volume = {1},
   pages = {113-145},
   year = {1988},
   keywords = {debugging functional programs, tracing}
}

@phdthesis{Launchbury90,
   author = {J Launchbury},
   title = {Projection factorisations in partial evaluation},
   type = {Ph.{D}. Thesis},
   number = {CSC 90/R2, Dept Comp Sci, Univ of Glasgow},
   month = jan,
   year = {1990},
   keywords = {binding time analysis, polymorphism}
}

@article{Dybjer89,
   author = {P Dybjer and HP Sander},
   title = {A functional programming approach to the specification and verification of concurrent systems},
   journal = {Formal Aspects of Computing},
   volume = {1},
   pages = {303-319},
   year = {1989},
   keywords = {non-determinism, CCS, alternating bit protocol}
}

@techreport{Bondorf90,
   author = {A Bondorf and O Danvy},
   title = {Automatic autoprojection of recursive equations with global variables and abstract data types},
   type = {Rapport 90/4, Inst of Datology Univ of Copenhagen},
   month = feb,
   year = {1990},
   keywords = {partial evaluation, Similix.  Well written}
}

@incollection{Bondorf90a,
   author = {A Bondorf},
   title = {Automatic autoprojection of higher-order recursive equations},
   booktitle = {European Symposium on Programming},
   publisher = {LNCS Springer Verlag},
   year = {1990},
   keywords = {Higher order Similix, partial evaluation.}
}

@article{Moen90,
   author = {S Moen},
   title = {Drawing dynamic trees},
   journal = {IEEE Software},
   month = jul,
   year = {1990},
   keywords = {Simple algorithms to draw good trees.}
}

@article{Vuillemin90,
   author = {JE Vuillemin},
   title = {Exact real computer arithmetic with continued fractions},
   journal = {IEEE Trans Computers},
   volume = {39},
   number = {8},
   month = aug,
   year = {1990}
}

@article{Cohen90,
   author = {J Cohen},
   title = {Constraint logic programming languages},
   journal = {CACM},
   volume = {33},
   number = {7},
   month = jul,
   year = {1990},
   keywords = {Prolog III.  Looks readable.}
}

@techreport{Winterbottom??,
   author = {P Winterbottom and P Osmon},
   title = {Topsy: an extensible Unix multicomputer},
   type = {Dept Comp Sci, City Univ},
   keywords = {parallel Unix, custom torus network. Good stuff. see Meshix}
}

@techreport{Winterbottom??a,
   author = {P Winterbottom},
   title = {Meshix: a Unix-like operating system for distributed machines},
   type = {Dept Comp Sci, City Univ, London},
   keywords = {see Topsy, message passing, distributed file server.  Nice.}
}

@techreport{Serpette89,
   author = {B Serpette and J Vuillemin and JC Herve},
   title = {BigNum: a portable and efficient package for arbitrary precision arithmetic},
   type = {Digital Paris Research Lab Report},
   number = {2},
   month = may,
   year = {1989}
}

@article{Baker92,
   author = {HG Baker},
   title = {Cons should not cons its arguments, or, a lazy alloc is a smart alloc},
   journal = {SIGPLAN Notices},
   volume = {27},
   number = {3},
   month = mar,
   year = {1992},
   keywords = {Allocation on stack, flush to heap only when required.  Neat.}
}

@techreport{Thatte90,
   author = {SR Thatte},
   title = {Coercive type equivalence},
   type = {Department of Maths and Computer Science, Clarkson University NY},
   year = {1990},
   keywords = {coercion of one value into another}
}

@techreport{Cardelli89,
   author = {L Cardelli},
   title = {Typeful programming},
   type = {DEC SRC},
   month = may,
   year = {1989},
   keywords = {programming in the large, Quest}
}

@techreport{Rudalics90,
   author = {M Rudalics},
   title = {Implementation of distributed reference counts},
   type = {Research Inst for Symbolic Computation, Johnnes Kepler University},
   month = jul,
   year = {1990},
   keywords = {garbage collection}
}

@techreport{Rudalics90a,
   author = {M Rudalics},
   title = {Correctness of distributed garbage collection algorithms},
   type = {Research Inst for Symbolic Computation, Johnnes Kepler University},
   month = jul,
   year = {1990},
   keywords = {garbage collection; Brownbridge, Goldberg, Bevan}
}

@techreport{Trinder90,
   author = {P Trinder},
   title = {A functional database},
   type = {CSC 90/R10, Department of Computing Science, University of Glasgow},
   month = apr,
   year = {1990},
   keywords = {query optimisation, list comprehensions, concurrency}
}

@techreport{Clarke89,
   author = {TJW Clarke},
   title = {General theory relating to the implementation of concurrent symbolic computation},
   type = {TR 174, Computer Lab, Cambridge},
   month = aug,
   year = {1989},
   keywords = {D-RISC, architecture, dataflow, caches}
}

@techreport{Clarke90,
   author = {TJW Clarke},
   title = {How to express concurrency without destroying determinism},
   type = {TR 197, Computer Lab, Cambridge},
   month = jul,
   year = {1990},
   keywords = {non-determinism, branch and bound, burton improving values, write once}
}

@inproceedings{Karp88a,
   author = {RM Karp and Y Zhang},
   title = {A Randomized Parallel Branch-and-Bound Procedure},
   booktitle = {Proc. 20th ACM Symp. on Theory of Computing},
   year = {1988},
   keywords = {probablistic analysis useful result distributed implementation}
}

@article{Koopman92,
   author = {PJ Koopman and P Lee and DP Siewiorek},
   title = {Cache behaviour of combinator graph reduction},
   journal = toplas,
   volume = {14},
   number = {2},
   pages = {265-297},
   month = apr,
   year = {1992},
   keywords = {SK combinators, write-allocate policy, locality, RISC}
}

@incollection{Mycroft85a,
   author = {A Mycroft and ND Jones},
   editor = {ND Jones},
   title = {A relational framework for abstract interpretation},
   booktitle = {Programs as Data Objects},
   publisher = {LNCS 217, Springer Verlag},
   year = {1985},
   keywords = {Hindley-Milner polymorphic typing as AbI. Logical relations.}
}

@techreport{Vrancken90,
   author = {JLM Vrancken},
   title = {Reflections on parallel functional languages},
   type = {Dept of Phil, Univ of Utrecht},
   year = {1990},
   keywords = {Says parallel functional programming is a non-starter.  Pessimistic.}
}

@techreport{Sanders90,
   author = {P Sanders and A Johnson and F Riddoch},
   title = {Environments for functional languages},
   type = {Martlesham Labs, British Telecom},
   month = aug,
   year = {1990},
   keywords = {Haskell, interactive system, debugging, Miranda, profiling; wish-list}
}

@techreport{Harrison90,
   author = {R Harrison and H Glaser},
   title = {The Gamma model as a functional programming tool},
   type = {Dept of Elec \& Comp Sci, Univ of Southampton},
   year = {1990},
   keywords = {Implementation of Gamma in Miranda, shortest path algorithm}
}

@techreport{Agapiev89,
   author = {B Agapiev},
   title = {Categories for abstract machines},
   type = {Oregon Graduate Centre},
   month = dec,
   year = {1989},
   keywords = {RB Kieburtz Hard going}
}

@incollection{Hayes89,
   author = {S Hayes and L McLoughlin},
   editor = {Davis and Hughes},
   title = {Imperative effects from a pure functional language},
   booktitle = {Functional programming, Glasgow 1989},
   publisher = {Springer Verlag Workshops in Computing},
   year = {1989},
   keywords = {Input output, IO, continutations, streams}
}

@techreport{Lins89,
   author = {RD Lins and SJ Thompson},
   title = {On the equivalence between {CM}-{C} and {TIM}},
   type = {Computing Lab, Univ of Kent},
   year = {1989},
   keywords = {Transforming TIM into CAM and vice versa. I wrote a detailed review.}
}

@techreport{Rosendahl89,
   author = {M Rosendahl},
   title = {Lazy fixpoint iteration},
   type = {Compter Lab, Univ of Cambridge},
   year = {1989},
   keywords = {First order, minimal function graphs, pending analysis, abstract interpretation.  I wrote a review.}
}

@misc{Ramsdell89,
   author = {JD Ramsdell},
   title = {The Curry Chip},
   month = oct,
   year = {1989},
   keywords = {I reviewed this.  SK Combinators.}
}

@techreport{Sansom89,
   author = {P Sansom},
   title = {Implementation issues of Haskell},
   type = {Dept Comp Sci, Univ of Wellington, New Zealand},
   year = {1989},
   keywords = {type checking, overloading}
}

@article{Anonymous90b,
   key = {Anonymous90b},
   title = {Special issue on formal methods},
   journal = {IEEE Software},
   month = sep,
   year = {1990},
   keywords = {Software engineering, pipelined microprocessor, oscilloscope, Z}
}

@techreport{Eekelen90,
   author = {MCJD van Eekelen and MJ Plasmeijer and JEW Smesters},
   title = {Parallel graph rewriting on loosely-coupled machine architectures},
   type = {Faculty of Maths and Comp Sci, Univ of Nijmegen},
   month = feb,
   year = {1990},
   keywords = {Distributed memory, annotations, local and non-local spawn, locality}
}

@article{Wand87,
   author = {M Wand},
   title = {A simple algorithm and proof for type inference},
   journal = {Fundamenta Informaticae},
   volume = {X},
   pages = {115-122},
   year = {1987},
   keywords = {Hindley-Milner type checking and proof.  Polymorphism}
}

@article{Anonymous90c,
   key = {Anonymous90c},
   title = {Special issue of {CACM} on Object-oriented design},
   journal = {CACM},
   volume = {33},
   number = {9},
   month = sep,
   year = {1990},
   keywords = {inheriatnce, libraries (good paper by Meyer), Eiffel, C++, Smalltalk}
}

@techreport{Bartlett89,
   author = {JF Bartlett},
   title = {Mostly-copying garbage collection picks up generations and {C}++},
   type = {DEC WRL},
   number = {TN-12},
   month = oct,
   year = {1989},
   keywords = {Generational GC, ambiguous roots, mostly-copying}
}

@techreport{Bartlett89a,
   author = {JF Bartlett},
   title = {{SCHEME} to {C}: a portable Scheme-to-{C} compiler},
   type = {DEC WRL RR},
   number = {89/1},
   month = jan,
   year = {1989},
   keywords = {C as a target code, tail recursion}
}

@techreport{Buneman90,
   author = {P Buneman and A Ohori},
   title = {Polymorphism and type inference in database programming},
   type = {Dept Comp Sci, Univ of Pennsylvania},
   year = {1990},
   keywords = {Machiavelli, join, records, subtypes, kinded types, reference objects, object-oriented database, conditional typing}
}

@techreport{Ait-Kaci90,
   author = {H Ait-Kaci},
   title = {The {WAM}: a real tutorial},
   type = {Tech Rep 5, Dec Paris Research Lab},
   month = jan,
   year = {1990},
   keywords = {Warren Abstract Machine, Prolog, logic languages, unification}
}

@article{Champine90,
   author = {GA Champine and et al},
   title = {Project Athena as a distributed computer system},
   journal = {IEEE Computer},
   volume = {23},
   number = {9},
   month = sep,
   year = {1990},
   keywords = {workstations, teaching}
}

@article{Wing90,
   author = {JW Wing},
   title = {A specifiers introduction to formal methods},
   journal = {IEEE Computer},
   volume = {23},
   number = {9},
   month = sep,
   year = {1990},
   keywords = {Z VDM software engineering}
}

@techreport{Watson90,
   author = {PL Watson},
   title = {Everything you always wanted to know about term rewriting but were afraiid to ask},
   type = {Dept Comp Sci, Univ of Glasgow},
   month = oct,
   year = {1990},
   keywords = {tutorial}
}

@article{Jones89a,
   author = {ND Jones and P Sestoft and H Søndergaard},
   title = {Mix: a self-applicable partial evaluator for experiments in compiler generation},
   journal = lasc,
   volume = {2},
   number = {1},
   pages = {9-50},
   year = {1989},
   keywords = {partial evaluation}
}

@inproceedings{Anderson88,
   author = {P Anderson and P Osmon},
   title = {A fault-tolerant communications architecture for wafer-scale integration},
   booktitle = {Alvey Technical Conference, Swansea},
   month = jul,
   year = {1988},
   keywords = {WSI, packet routing, (not the) Catt spiral}
}

@techreport{Anderson89a,
   author = {P Anderson and C Hankin and P Kelly},
   title = {Parallel combinator reduction on a wafer},
   type = {Dept Comp Sci, City Univ},
   year = {1989},
   keywords = {WSI}
}

@techreport{Anderson88a,
   author = {P Anderson and P Kelly and P Winterbottom},
   title = {The feasibility of a general-purpose parallel computer using {WSI}},
   type = {Dept Comp Sci, City Univ},
   month = oct,
   year = {1988},
   keywords = {wafer scale integration}
}

@article{Bolton90,
   author = {D Bolton and C Hankin and P Kelly},
   title = {Parallel object-oriented descriptions of graph-reduction machines},
   journal = {Future Generation Computer Systems},
   volume = {6},
   pages = {225-239},
   year = {1990},
   keywords = {Paragon, DACTL, parallel graph reduction, agents}
}

@article{Harrison89,
   author = {WL Harrison},
   title = {The interprocedural analysis and automatic parallelization of scheme programs},
   journal = lasc,
   volume = {2},
   number = {3},
   year = {1989}
}

@book{Abelson80,
   author = {H Abelson and AA diSessa},
   title = {Turtle geometry:: the computer as a medium for exploring mathematics},
   publisher = {MIT Press},
   year = {1980},
   keywords = {lots of good stuff, incl special and general relativity!}
}

@article{Rettig90,
   author = {M Rettig},
   title = {Practical programmer: software teams},
   journal = {CACM},
   volume = {33},
   number = {10},
   pages = {23-27},
   month = oct,
   year = {1990},
   keywords = {software engineering, process issues, project management}
}

@article{Anonymous90d,
   key = {Anonymous90d},
   title = {Special issue on simulation},
   journal = {CACM},
   volume = {33},
   number = {10},
   month = oct,
   year = {1990},
   keywords = {Discrete event simulation, parallel versions, time warp, random number generation}
}

@article{Nielsen90,
   author = {J Nielsen},
   title = {Traditional dialogue design applied to modern user interfaces},
   journal = {CACM},
   volume = {33},
   number = {10},
   pages = {109-118},
   month = oct,
   year = {1990},
   keywords = {WIMP, windows, mouse, HCI, human computer interface}
}

@phdthesis{Koopman90,
   author = {PWM Koopman},
   title = {Functional programs as executable specifications},
   type = {Ph.{D}. Thesis},
   number = {University of Nijmegen},
   year = {1990},
   keywords = {Nijmegen CLEAN work. ABC machine and code generation.  Neural networks modelled in Miranda.}
}

@inproceedings{abadi:dynamic,
   author = {M Abadi and L Cardelli and B Pierce and G Plotkin},
   title = {Dynamic typing in a statically-typed language},
   booktitle = {16th ACM Conference on Principles of Programming Languages},
   pages = {213-227},
   month = jan,
   year = {1989},
   keywords = {persistence, databases, type inference, typecase, subtypes}
}

@article{Anonymous90e,
   key = {Anonymous90e},
   title = {Special section on natural language processing},
   journal = {CACM},
   volume = {33},
   number = {8},
   month = aug,
   year = {1990},
   keywords = {CYC, artificial intelligence}
}

@article{Sunday90,
   author = {DM Sunday},
   title = {A very fast substring search algorithm},
   journal = {CACM},
   volume = {33},
   number = {8},
   pages = {132-142},
   month = aug,
   year = {1990},
   keywords = {Faster than Boyer-Moore. Very nice paper.  Grep.}
}

@article{Valiant90,
   author = {LG Valiant},
   title = {A bridging model for paarallel computation},
   journal = {CACM},
   volume = {33},
   number = {8},
   pages = {103-111},
   month = aug,
   year = {1990},
   keywords = {Bulk synchronous parallel model (BSP).  Good stuff.  Communications vs computation.  PRAM models etc.}
}

@article{Anonymous90f,
   key = {Anonymous90f},
   title = {Two articles about being a woman computer scientist},
   journal = {CACM},
   volume = {33},
   number = {11},
   month = nov,
   year = {1990},
   keywords = {sexism}
}

@article{Knight90,
   author = {K Knight},
   title = {Connectinist ideas and algorithms},
   journal = {CACM},
   volume = {33},
   number = {11},
   pages = {58-73},
   month = nov,
   year = {1990},
   keywords = {Useful survey. Neural networks}
}

@article{Weiss90,
   author = {EA Weiss},
   title = {Self-assessment exercise on ethical behaviour},
   journal = {CACM},
   volume = {33},
   number = {11},
   month = nov,
   year = {1990},
   keywords = {Lots of short examples of ethical dilemmas.}
}

@article{Cobb90,
   author = {RH Cobb and HD Mills},
   title = {Enginneering software under statistical quality control},
   journal = {IEEE Software},
   pages = {44-54},
   year = {1990},
   keywords = {lots of myths/facts.  Down with coverage testing! Provocative}
}

@article{DeMarco90,
   author = {Tom DeMarco},
   title = {Making a difference in schools},
   journal = {IEEE Software},
   year = {1990}
}

@article{Zelkowitz90,
   author = {MV Zelkowitz},
   title = {A functional correctness model of program verification},
   journal = {IEEE Computer},
   volume = {23},
   number = {11},
   month = nov,
   year = {1990},
   keywords = {software engineering. claims to be undergraduate level.  Looks hard to me}
}

@techreport{George90,
   author = {L George and G Lindstrom},
   title = {Using a functional language and graph reduction to program multiprocessor machines},
   type = {Dept Comp Sci, Princeton Univ},
   month = dec,
   year = {1990},
   keywords = {BBN Butterfly, functional language as glue to connect imperative processes, effectively large primitives of the language.  Good work.}
}

@techreport{Cooper90,
   author = {EC Cooper and JG Morrisett},
   title = {Adding threads to Standard {ML}},
   type = {CMU-CS-90-186, Dept Comp Sci, Carnegie Mellon Univ},
   month = dec,
   year = {1990},
   keywords = {parallelism, SML}
}

@techreport{McKeown90,
   author = {GP McKeown and VJ Rayward-Smith and HP Turpin},
   title = {Using a transputer network to solve branch-and-bound problems},
   type = {School of Info Sys, UEA},
   year = {1990},
   keywords = {parallel algorithms, search, speculation}
}

@techreport{McKeown90a,
   author = {GP McKeown and VJ Rayward-Smith and HP Turpin},
   title = {Branch-and-bound as a higher-order function},
   type = {School of Info Sys, UEA},
   year = {1990},
   keywords = {parallel algorithms, search, speculation}
}

@article{Tanenbaum90,
   author = {AS Tanenbaum and et al},
   title = {Experiences with the Amoeba distributed operating system},
   journal = {CACM},
   volume = {33},
   number = {12},
   month = dec,
   year = {1990}
}

@article{Wilkes90,
   author = {MV Wilkes},
   title = {The rise of the {VLSI} processor},
   journal = {CACM},
   volume = {33},
   number = {12},
   pages = {16-18},
   month = dec,
   year = {1990},
   keywords = {RISC, silicon chips, cache, real estate, architecture; useful update}
}

@article{Sorber91,
   author = {G Sorber},
   title = {Optimal list sorting},
   journal = {Software development international},
   pages = {43},
   month = {Winter},
   year = {1991},
   keywords = {Quicksort, stable sort, data structures; looks good.}
}

@article{Thielen91,
   author = {Dave Thielen},
   title = {Writing exceptional software},
   journal = {Software development international},
   pages = {57},
   month = {Winter},
   year = {1991},
   keywords = {software engineering, project management, programming}
}

@book{Gabriel85,
   author = {RP Gabriel},
   title = {Performance and evaluation of Lisp systems},
   publisher = {MIT Press},
   year = {1985},
   keywords = {Benchmarking, garbage collection, tak, book}
}

@article{Chow90,
   author = {FC Chow and JL Hennessy},
   title = {The priority-based coloring approach to register allocation},
   journal = toplas,
   volume = {12},
   number = {4},
   pages = {501-536},
   month = oct,
   year = {1990},
   keywords = {code generation, spilling; looks definitive}
}

@techreport{Sinvhal-Sharma90,
   author = {P Sinvhal-Sharma and S Sharma},
   title = {{CPROF}: a trace-based profiler for shared-memory multiprocessor systems},
   type = {CSRD, Univ of Illinois},
   month = jun,
   year = {1990},
   keywords = {Cedar, profiling, gprof, mprof; sketchy}
}

@techreport{Sharma90,
   author = {S Sharma},
   title = {Real-time visualisation of concurrent processors},
   type = {CSRD, Univ of Illinois},
   month = sep,
   year = {1990},
   keywords = {Cedar, profiling, gprof, mprof}
}

@techreport{Ariola90,
   author = {Z Ariola and Arvind},
   title = {Compilation of Id-: a subset of Id},
   type = {CSG Memo 315, Lab for Computer Science, MIT},
   month = jul,
   year = {1990},
   keywords = {Pattern-matching compilation, and more.}
}

@article{mcbride:viewfromleft,
    journal = {Journal of Functional Programming},
    number = {1},
    volume = {14},
    pages = {69--111},
    title = {The View From The Left},
    year = {2004},
    author = {Conor McBride and James McKinna}
}

@techreport{Conor90,
   author = {RCH Conor and et al},
   title = {Type equivalence checking in persistent object systems},
   type = {Univ of St Andrews},
   year = {1990},
   keywords = {name equivalence vs structural equivalence; efficiency tradeoffs}
}

@techreport{Anderson89b,
   author = {P Anderson and P Osmon},
   title = {A fault-toleratnt communications architecture for wafer scale integration},
   type = {City Univ},
   year = {1989},
   keywords = {WSI, packets, deadlock}
}

@techreport{Lock90,
   author = {HCR Lock and S Jahnichen},
   title = {Linda meets functional programming},
   type = {GMD Research Inst, Univ of Karlsruhe},
   year = {1990},
   keywords = {parallel, logic, synchronisation}
}

@techreport{Brown90,
   author = {AL Brown and J Rosenberg},
   title = {Persistent object stores: an implemenatation technique},
   type = {Dept Comp Sci, Univ of St Andrews},
   year = {1990},
   keywords = {Layered interface to persistent store, garbage collection}
}

@phdthesis{Brown89,
   author = {AL Brown},
   title = {Persistent object stores},
   type = {Ph.{D}. Thesis},
   number = {Dept Comp Sci, Univ of St Andrews},
   month = mar,
   year = {1989},
   keywords = {Napier, POMS, PS-Algol}
}

@article{Fagin90,
   author = {BS Fagin and AM Despain},
   title = {The performance of parallel Prolog programs},
   journal = {IEEE Trans Computers},
   volume = {39},
   number = {12},
   pages = {1434-1445},
   month = dec,
   year = {1990},
   keywords = {and-parallelism, or-parallelism, poor speedups, benchmarks}
}

@incollection{Thatte90a,
   author = {SR Thatte},
   title = {Quasi-static typing},
   booktitle = {17th POPL, San Francisco},
   publisher = {ACM},
   month = jan,
   year = {1990},
   keywords = {Dynamic types, persistence, subtypes, static typing}
}

@article{Tilove80,
   author = {{Tilove}},
   title = {{CSG}: set membership classification},
   institution = {Tilove},
   journal = {IEEE Trans Computers},
   volume = {20},
   number = {1},
   month = oct,
   year = {1980},
   keywords = {Constructive solid geometry}
}

@article{Lee82,
   author = {Lee and Requicha},
   title = {{CSG}: mass properties},
   journal = {CACM},
   volume = {25},
   number = {9},
   pages = {635-641 and 642-650},
   month = sep,
   year = {1982},
   keywords = {Constructive solid geometry}
}

@article{al84d,
   author = {Tilove et al},
   title = {{CSG}: editing},
   journal = {CAGD},
   volume = {1},
   year = {1984},
   keywords = {Constructive solid geometry}
}

@article{Woodwark86a,
   author = {{Woodwark}},
   title = {{CSG}: wireframes},
   institution = {Woodwark},
   journal = {CAD},
   volume = {18},
   number = {6},
   year = {1986},
   keywords = {Constructive solid geometry}
}

@article{Requicha85,
   author = {Requicha and Voelcker},
   title = {{CSG}: boundary evaluation and merging},
   journal = {Proc IEEE},
   volume = {73},
   number = {1},
   year = {1985},
   keywords = {Constructive solid geometry}
}

@incollection{Culler88,
   author = {D Culler and Arvind},
   title = {Resource requirements of dataflow programs},
   booktitle = {Proc 15th Annual Symposium on Computer Architecture},
   publisher = {ACM},
   year = {1988},
   keywords = {k-bounded loops, resource scheduling}
}

@techreport{Abramsky90,
   author = {S Abramsky},
   title = {Computational interpretations of linear logic},
   type = {DOC 90/20, Dept of Computing, Imperial College},
   year = {1990},
   keywords = {relevant to storage management, garbage collection, type systems.}
}

@inproceedings{Reynolds90,
   author = {TJ Reynolds and P Kefalas},
   title = {{OR}-parallel Prolog and search problems in artificial intelligence applications},
   booktitle = {7th International Conference on Logic Programming, Jerusalem},
   pages = {340-354},
   month = jun,
   year = {1990},
   keywords = {BRAVE project, GRIP}
}

@incollection{Wadler87e,
   author = {PL Wadler},
   editor = {SL {Peyton~Jones}},
   title = {Efficient compilation of pattern matching},
   booktitle = {The implementation of functional programming languages},
   pages = {78-103},
   publisher = {Prentice Hall},
   year = {1987}
}

@techreport{PeytonJones91b,
   author = {SL {Peyton~Jones}},
   title = {The Spineless Tagless {G}-machine: a second attempt},
   type = {Department of Computing Science, University of Glasgow},
   month = feb,
   year = {1991}
}

@techreport{Bancilhon88,
   author = {F Bancilhon and R Ramakrishnan},
   title = {An amateur's introduction to recursive query processing strategies},
   type = {Altair, BP 105, 78153 Le Chesnay, France},
   year = {1988?},
   keywords = {Prolog, databases, relational, query optimisation, integrating database with languages, persistence.  Good survey.}
}

@techreport{Hilken91,
   author = {B Hilken and DE Rydeheard},
   title = {Comprehension and type classes},
   type = {Dept of Computer Science, Univ of Manchester},
   month = jan,
   year = {1991},
   keywords = {Haskell, category theory, overloading; heavy stuff}
}

@article{Pancake90,
   author = {CM Pancake and D Bergmark},
   title = {Do parallel languages respond to the needs of scientific programmers?},
   journal = {IEEE Computer},
   volume = {23},
   number = {12},
   pages = {13-24},
   month = dec,
   year = {1990},
   keywords = {parallel FORTRAN, software engineering, debugging,}
}

@article{Berlin90,
   author = {A Berlin and D Weise},
   title = {Compiling scientific code using partial evaluation},
   journal = {IEEE Computer},
   volume = {23},
   number = {12},
   pages = {25-37},
   month = dec,
   year = {1990},
   keywords = {n-body problem, Scheme, FORTAN.  Nice.}
}

@article{Weicker90,
   author = {RP Weicker},
   title = {An overview of common benchmarks},
   journal = {IEEE Computer},
   volume = {23},
   number = {12},
   pages = {65},
   month = dec,
   year = {1990},
   keywords = {Whetstone, Dhrystone, Linpack, BLAS, MIPS, performance.  Good.}
}

@phdthesis{Eekelen88,
   author = {M van Eekelen},
   title = {Parallel graph rewriting},
   type = {Ph.{D}. Thesis},
   number = {University of Nijmegen},
   year = {1988},
   keywords = {Lean, Clean, distributed memory, parallel functional programming}
}

@article{Gustafson91,
   author = {J Gustafson},
   title = {Slalom: Scalable, language-independent, Ames laboratory one-minute measurement},
   journal = {Parallelogram},
   pages = {10-14},
   month = feb,
   year = {1991},
   keywords = {benchmark, supercomputer, radiosity, mips, performance, linpack, whetstone, mflops}
}

@book{Asperti91,
   author = {A Asperti and G Longo},
   title = {Applied category theory: an introduction to categories, types and structures for the working computer scientist},
   publisher = {MIT Press},
   year = {1991},
   keywords = {David Murphy recommends}
}

@inproceedings{clement:mini-ml,
   author = {D Clement and J Despeyroux and T Despeyroux and G Kahn},
   title = {A simple applicative language: Mini-{ML}},
   crossref = "lfp86",
   pages = "13-27",
   keywords = {Type inference, Typol, ML, Natural semantics, both static and dynamic semantics}
}

@incollection{Reynolds85,
   author = {JC Reynolds},
   title = {Three approaches to type structure},
   booktitle = {TAPSOFT},
   publisher = {LNCS 186, Springer Verlag},
   month = mar,
   year = {1985},
   keywords = {polymorphism, second-order lambda caclulus, subtypes, inference}
}

@book{Roscoe91,
   author = {GW Roscoe and GM Reed},
   title = {Domains for denotational semantics},
   publisher = {Prentice Hall},
   year = {1991},
   keywords = {information systems, fixpoints, partial orders, power domains}
}

@misc{Smith??,
   author = {John Maynard Smith},
   title = {Evolutionary Genetics},
   keywords = {Fun stuff about population models.  Dawkins, genes, spreadsheet.}
}

@misc{Ashby??,
   author = {{Ashby}},
   title = {Introduction to cybernetics},
   institution = {Ashby},
   keywords = {Ronan thinks there might be an example of population models; evolution, genetics, Dawkins.}
}

@incollection{Peterson89,
   author = {J Peterson},
   title = {Untagged data in tagged environments: choosing optimal representations at compile time},
   booktitle = {Functional Programming Languages and Computer Architecture, London},
   pages = {89-99},
   publisher = {Addison Wesley},
   month = sep,
   year = {1989},
   keywords = {box, unbox}
}

@techreport{Kolodner90,
   author = {EK Kolodner},
   title = {Atomic incremental garbage collection and recovery for a large stable heap},
   type = {Lab for Comp Sci, MIT},
   year = {1990},
   keywords = {persistence, baker, generational collection, transactions, stock hardware, volatile}
}

@techreport{McNally91,
   author = {DJ McNally and AJT Davie},
   title = {Two models for integrating persistence and lazy functional languages},
   type = {CS/91/1, Dept of Computer Science, Univ of St Andrews},
   month = jan,
   year = {1991},
   keywords = {dynamic types, Staple, database, type equivalence}
}

@article{Ginosar90,
   author = {R Ginosar and N Michell},
   title = {On the potential of asynchronous pipelined processors},
   journal = {Computer Architecture News},
   volume = {18},
   number = {4},
   month = dec,
   year = {1990},
   keywords = {micropipelines, self-timed, fifos}
}

@article{David89,
   author = {I David and R Ginosar and M Yoeli},
   title = {An efficient implementation of boolean functions and finite state machines as self-timed circuits},
   journal = {Computer Architecture News},
   volume = {17},
   number = {6},
   month = dec,
   year = {1989},
   keywords = {asynchronous finite-state machines, FSM}
}

@article{Cordy90,
   author = {JR Cordy and RC Holt},
   title = {Code Generation Using an Orthogonal Model},
   journal = {Software Practice and Experience},
   volume = {20},
   number = {3},
   pages = {301-320.},
   month = mar,
   year = {1990},
   keywords = {compilers, data descriptors, simple but nice.}
}

@article{Leveson91,
   author = {Nancy Leveson},
   title = {Software safety in embedded computer systems},
   journal = {CACM},
   volume = {34},
   number = {2},
   month = feb,
   year = {1991},
   keywords = {Rather waffly.  risks, reliability, failure}
}

@techreport{Jones90a,
   author = {MP Jones},
   title = {Towards a theory of qualified types},
   type = {PRG, Oxford},
   year = {1990},
   keywords = {Haskell overloading, type classes, subtypes, record types}
}

@techreport{Argo91,
   author = {G Argo},
   title = {A new sharing mechanism for the {TIM}},
   type = {Dept Comp Sci, Univ of Glasgow},
   month = mar,
   year = {1991},
   keywords = {updates, similar to my book, indirections}
}

@techreport{Wadler90b,
   author = {PL Wadler},
   title = {A simple type inference algorithm},
   type = {Dept Comp Sci, Univ of Glasgow},
   month = aug,
   year = {1990},
   keywords = {Literate Haskell. Polymorphism, substitutions}
}

@techreport{Atkinson91,
   author = {MP Atkinson and C Lecluse and P Richard},
   title = {Bulk types for database programming languages: a proposal},
   type = {Dept Comp Sci, Univ of Glasgow},
   month = feb,
   year = {1991},
   keywords = {Generic idea called maps. Persistence.}
}

@inproceedings{Smith89a,
   author = {MD Smith and M Johnson and MA Horowitz},
   title = {Limits on multiple instruction issue},
   booktitle = {Some ACM conference (Computer Architecture?)},
   year = {1989},
   keywords = {superscalar architecture, RISC, pipeline}
}

@inproceedings{Jouppi89,
   author = {NP Jouppi and DW Wall},
   title = {Available instruction-level parallelism for superscalar and superpipelined machines},
   booktitle = {Some ACM conference (Computer Architecture?)},
   publisher = {ACM},
   year = {1989},
   keywords = {architecture, RISC, pipeline}
}

@techreport{Appel90,
   author = {AW Appel},
   title = {Continuation-based code optimisation},
   type = {Princeton Univ},
   month = dec,
   year = {1990},
   keywords = {Very preliminary draft, details of SMLNJ compiler innards}
}

@article{Russell91,
   author = {G Russell},
   title = {Inspection in ultra-large-scale development},
   journal = {IEEE Software},
   pages = {25-31},
   month = jan,
   year = {1991},
   keywords = {software engineering, code walkthroughs, formal review.  Good paper, surprisingly good results.}
}

@article{Vranesic91,
   author = {ZG Vranesic and et al},
   title = {Hector: a hierachically structured shared-memory multiprocessor},
   journal = {IEEE Computer},
   volume = {24},
   number = {1},
   pages = {72-80},
   month = jan,
   year = {1991},
   keywords = {cache, bus}
}

@misc{Computer91,
   author = {IEEE Computer},
   title = {Special issue on experimental research in computer architecture},
   volume = {24},
   number = {1},
   pages = {PIPE processor, IBM RS/6000},
   month = jan,
   year = {1991}
}

@article{Levy90,
   author = {E Levy and A Silberschatz},
   title = {Distributed file systems: concepts and examples},
   journal = {ACM Computing Surveys},
   volume = {22},
   number = {4},
   pages = {321-374},
   month = dec,
   year = {1990},
   keywords = {NFS, Andrew, Unix}
}

@article{Cheriton91,
   author = {DR Cheriton and HA Goosen and PD Boyle},
   title = {Paradigm: a highly-scalable shared-memory multicomputer},
   journal = {IEEE Computer},
   volume = {24},
   number = {2},
   pages = {33-48},
   month = feb,
   year = {1991},
   keywords = {cache, hierachy, semi-intelligent memory}
}

@inproceedings{leroy:dynamics-in-ml,
   author = {X Leroy and M Mauny},
   title = {Dynamics in {ML}},
   crossref = "fpca91",
   keywords = {persistence, polymorphism, existential types, type inference, type case}
}

@phdthesis{Lester89c,
   author = {D Lester},
   title = {Combinator graph reduction: a congruence and its applications},
   type = {Ph.{D}. Thesis},
   number = {Programming Research Group, Oxford},
   month = apr,
   year = {1989},
   keywords = {G-machine, semantics}
}

@techreport{Miranda91,
   author = {E Miranda},
   title = {How to do machine-independent fast threaded code},
   type = {Dept of Computer Science, Queen Mary and Westfield College, London},
   month = apr,
   year = {1991},
   keywords = {C as an assembler, code generation, Gnu C, gcc, registers}
}

@techreport{Maranget91,
   author = {L Maranget},
   title = {{GAML}: a parallel implementation of Lazy {ML}},
   type = {INRIA},
   year = {1991},
   keywords = {G-machine, graph reduction, shared memory; some good points}
}

@techreport{Park91,
   author = {YG Park and B Goldberg},
   title = {Order-of-demand analysis for optimising lazy evaluation},
   type = {Dept Comp Sci, New York University},
   month = mar,
   year = {1991},
   keywords = {Generalises strictness analysis, but not too expensive}
}

@incollection{Papadopoulous91,
   author = {GM Papadopoulous and KR Traub},
   title = {Multithreading: a revisionist view of dataflow architectures},
   booktitle = {18th Annual International Symposium on Computer Architecture, Toronto},
   publisher = {ACM},
   month = may,
   year = {1991},
   keywords = {P-RISC, fork and join, synchronsiation and latency, registers and state}
}

@inproceedings{Zorn90,
   author = {B Zorn},
   title = {Comparing mark-and-sweep and stop-and-copy garbage collection},
   booktitle = {ACM Conference on Lisp and Functional Programming},
   publisher = {ACM},
   year = {1990},
   keywords = {storage management}
}

@techreport{Consel91,
   author = {C Consel and J Peterson and A Kishon},
   title = {On compiling Haskell},
   type = {Dept Comp Sci, Yale Univ},
   month = mar,
   year = {1991},
   keywords = {strictness analysis, overloading}
}

@incollection{Smetsers??,
   author = {S Smetsers and E Nocker and J van Groningen and R Plasmeijer},
   title = {Generating efficient code for lazy functional languages},
   crossref = "fpca91",
   keywords = {Clean, register allocation, calling convention}
}

@incollection{Aditya??,
   author = {S Aditya and RS Nikhil},
   title = {Incremental polymorphism},
   crossref = "fpca91",
   keywords = {Incremental type inference, interactive environment}
}

@incollection{abadi90,
   author = {M abadi and L Cardelli and P-L Curien and J-J Levy},
   title = {Explicit substitutions},
   booktitle = {$|$POPL$|$},
   pages = {31-46},
   publisher = {ACM},
   month = jan,
   year = {1990},
   keywords = {Lambda calculus, beta reduction}
}

@article{Hartel91,
   author = {PH Hartel},
   title = {Performance of lazy combinator graph reduction},
   journal = spe,
   volume = {21},
   number = {3},
   pages = {299-329},
   month = mar,
   year = {1991},
   keywords = {SK combinators, G-machine}
}

@incollection{Jouret91,
   author = {GK Jouret},
   title = {Compiling functional languages for {SIMD} architectures},
   booktitle = {3rd IEEE Symposium on Parallel and Distributed Languages},
   month = dec,
   year = {1991},
   keywords = {G-machine, higher order functions.  nice paper.}
}

@techreport{Gloger91,
   author = {M Gloger},
   title = {Generational garbage collection for lazy functional languages on a distributed memory system},
   type = {Technische Hochschule Darmstadt},
   month = feb,
   year = {1991},
   keywords = {Very complex, but several nice ideas}
}

@article{Cordy90a,
   author = {JR Cordy and RC Holt},
   title = {Code generation using an orthogonal model},
   journal = spe,
   volume = {20},
   number = {3},
   pages = {301-320},
   month = mar,
   year = {1990},
   keywords = {separates operators from operands.  nice stuff.  addressing operators, compilation}
}

@article{Appel89a,
   author = {AW Appel},
   title = {Simple generational garbage collection and fast allocation},
   journal = spe,
   volume = {19},
   number = {2},
   pages = {171-183},
   month = feb,
   year = {1989},
   keywords = {just two generations, nice and easy.  Good stuff.}
}

@article{Bartlett88,
   author = {KA Bartlett and RK Brayton and GD Hachtel and RM Jacoby and CR Morrison and RL Rudell and A Sangiovanni-Vincentelli and AR Wang},
   title = {Multilevel logic minimization using implicit don't cares},
   journal = {IEEE Trans Computer-Aided Design},
   volume = {7},
   number = {6},
   pages = {723-740},
   month = jun,
   year = {1988},
   keywords = {Expresso, boolean logic, combinatorial}
}

@article{Meng89,
   author = {TH-Y Meng and RW Brodersen and DG Messerschmitt},
   title = {Automatic synthesis of asynchronous circuits from high-level specifications},
   journal = {IEEE Trans Computer-Aided Design},
   volume = {8},
   number = {11},
   pages = {1185-1205},
   month = nov,
   year = {1989},
   keywords = {self-timed, finite-state machine}
}

@article{Rosenberger88,
   author = {FU Rosenberger and CE Molnar and TJ Chaney and T-P Fang},
   title = {Q-modules: internally clocked delay-insensitive modules},
   journal = {IEEE Trans Computers},
   volume = {37},
   number = {9},
   pages = {1005-1018},
   month = sep,
   year = {1988},
   keywords = {asynchronous, finite-state machine, metastability}
}

@article{Chuang69,
   author = {YH Chuang},
   title = {Transition logic circuits and a synthesis method},
   journal = {IEEE Trans Computers},
   volume = {18},
   number = {2},
   pages = {154-168},
   month = feb,
   year = {1969},
   keywords = {asynchronous finite-state machine, self-timed}
}

@inproceedings{Brayton84,
   author = {RK Brayton and GD Hachtel and C McMullen and A Sangiovanni-Vincentelli},
   title = {{EXPRESSO}-{II}: a new logic minimizer for programmable logic arrays},
   booktitle = {IEEE Conference on Custom Integrated Circuits},
   month = may,
   year = {1984},
   keywords = {minimisation, boolean}
}

@article{Pagan88,
   author = {FG Pagan},
   title = {Converting interpreters into compilers},
   journal = spe,
   volume = {18},
   number = {6},
   pages = {509-527},
   year = {1988},
   keywords = {partial evaluation, compiler generation}
}

@article{Gries91,
   author = {D Gries},
   title = {Teaching calculation and discrimination: a more effective curriculum},
   journal = {CACM},
   volume = {334},
   number = {3},
   pages = {45-55},
   month = mar,
   year = {1991},
   keywords = {teaching computer science, syllabus}
}

@incollection{Appel91,
   author = {AW Appel and K Li},
   title = {Virtual memory primitives for user programs},
   booktitle = {$|$ASPLOS$|$},
   publisher = {ACM},
   month = apr,
   year = {1991},
   keywords = {heap, storage management, garbage collection, persistence, MMU, paging}
}

@techreport{Appel91a,
   author = {AW Appel},
   title = {Space complexity of functional programs},
   type = {$|$DCS$|$, Princeton University},
   year = {1991},
   keywords = {strict language, SML, CPS}
}

@incollection{Heytens??,
   author = {ML Heytens and RS Nikhil},
   title = {List comprehensions in {AGNA}, a parallel persistent object system},
   crossref = "fpca91",
   keywords = {database, dataflow}
}

@techreport{Hartel91a,
   author = {P Hartel and H Glaser and J Wild},
   title = {Compilation of functional languages using flow graph analysis},
   type = {CSTR 91-03, $|$DCS$|$, Southampton University},
   year = {1991},
   keywords = {compilers, strictness, neededness.}
}

@book{schmidt:denotational-semantics,
   author = {DA Schmidt},
   title = {Denotational Semantics: A Methodology for Language Development},
   publisher = {Allyn and Bacon},
   year = {1986},
   keywords = {unpointed domains, book}
}

@article{Smyth82,
   author = {MB Smyth and GD Plotkin},
   title = {The category-theoretic solution of recursive domain equations},
   journal = {SIAM Journal of Computing},
   volume = {11},
   number = {4},
   pages = {761-783},
   month = nov,
   year = {1982},
   keywords = {denotational semantics}
}

@techreport{Kelsey89a,
   author = {R Kelsey},
   title = {Compilation by program transformation},
   type = {YALEU/---DCS/---RR-702, PhD thesis, Department of Computer Science, Yale University},
   month = may,
   year = {1989},
   keywords = {CPS, handles imperative languages, ORBIT}
}

@incollection{Moggi89,
   author = {E Moggi},
   title = {Computational lambda calculus and monads},
   booktitle = {Logic in Computer Science, California},
   publisher = {IEEE},
   month = jun,
   year = {1989},
   keywords = {kleisli category, lics}
}

@article{Goldberg91,
   author = {D Goldberg},
   title = {What every computer scientist should know about floating point},
   journal = {ACM Computing Surveys},
   volume = {23},
   number = {1},
   pages = {5-48},
   month = mar,
   year = {1991},
   keywords = {real numbers}
}

@article{Andrews91,
   author = {GR Andrews},
   title = {Paradigms for process interaction in distributed programs},
   journal = {ACM Computing Surveys},
   volume = {23},
   number = {1},
   pages = {49-90},
   month = mar,
   year = {1991},
   keywords = {token passing algorithms, termination detection, parallel sorting}
}

@article{Denning91,
   author = {DE Denning},
   title = {The United States vs Craid Neidorf},
   journal = cacm,
   volume = {34},
   number = {3},
   pages = {22-43},
   month = mar,
   year = {1991},
   keywords = {Contains responses from others.  Hacking, freedom of information, legal aspects, Bell, electronic publication}
}

@article{Gries91a,
   author = {D Gries},
   title = {Teaching calculation and discrimination: a more effective curriculum},
   journal = cacm,
   volume = {34},
   number = {3},
   pages = {44-55},
   month = mar,
   year = {1991},
   keywords = {Teaching computer science, proof, induction, syllabus, mathematics, design}
}

@article{Nussbaum91,
   author = {D Nussbaum and A Agarwal},
   title = {Scalability of parallel machines},
   journal = cacm,
   volume = {34},
   number = {3},
   pages = {55-61},
   month = mar,
   year = {1991},
   keywords = {speedup, parallelism, asymptotic speedup, PRAM,}
}

@article{Teuhola91,
   author = {J Teuhola and L Wegner},
   title = {Minimal space, average linear time duplicate deletion},
   journal = cacm,
   volume = {34},
   number = {3},
   pages = {62-73},
   month = mar,
   year = {1991},
   keywords = {sorting, algorithms, hashing; see letter in CACM 35(7) p99}
}

@article{Samuelson91,
   author = {P Samuelson},
   title = {Legally speaking: is information property?},
   journal = cacm,
   volume = {34},
   number = {3},
   pages = {15-18},
   month = mar,
   year = {1991},
   keywords = {Hacking, freedom of information, legal aspects, electronic publication}
}

@techreport{Hughes90,
   author = {J Hughes and J Launchbury},
   title = {Projections for polymorphic strictness analysis},
   type = {CSC 90/R33, $|$DCS$|$, University of Glasgow},
   month = nov,
   year = {1990},
   keywords = {forwards, backwards, category theory}
}

@techreport{Chin91,
   author = {W-N Chin and J Darlington},
   title = {Removing higher-order expressions by program transformation},
   type = {$|$DCS$|$, Imperial College},
   month = feb,
   year = {1991},
   keywords = {fold, unfold.  not well written, but interesting.}
}

@techreport{Oostrom90,
   author = {V van Oostrom},
   title = {Lambda calculus with patterns},
   type = {IR-228, $|$DCS$|$, Vrije University, Amsterdam},
   month = nov,
   year = {1990}
}

@techreport{Axford91,
   author = {T Axford},
   title = {An abstract model for parallel programming},
   type = {CSR-91-5, School of Computer Science, Univ of Birmingham},
   month = may,
   year = {1991},
   keywords = {Mappings as the key bulk data type.  Arrays, sets , relations.  Similar to Malcolm's ideas about mappings.}
}

@article{Jones92,
   author = {R Jones},
   title = {Tail recursion without space leaks},
   journal = jfp,
   volume = {2},
   number = {1},
   pages = {73-80},
   month = jan,
   year = {1992},
   keywords = {leak, G-machine; modest paper but useful}
}

@article{Brooks91,
   author = {KP Brooks},
   title = {Lilac: a two-view document editor},
   journal = {IEEE Computer},
   volume = {24},
   number = {6},
   pages = {7-20},
   month = jun,
   year = {1991},
   keywords = {Functional tex, wysiwyg editing, typesetting}
}

@article{Cordes91,
   author = {D Cordes and M Brown},
   title = {The literate-programming paradigm},
   journal = {IEEE Computer},
   volume = {24},
   number = {6},
   pages = {52-62},
   month = jun,
   year = {1991},
   keywords = {tangle, weave, web, documentation}
}

@article{DeBenedictis91,
   author = {E DeBenedictis and S Ghosh and M-L Yu},
   title = {A novel algorithm for discrete-event simulation: asynchronous distributed discrete-event simulation algorithm for cyclic circuits using a dataflow network},
   journal = {IEEE Computer},
   volume = {24},
   number = {6},
   month = jun,
   year = {1991},
   keywords = {parallel, PDES, time warp, deadlock}
}

@article{Appel90a,
   author = {AW Appel},
   title = {A runtime system},
   journal = lasc,
   volume = {3},
   pages = {343-380},
   year = {1990},
   keywords = {garbage collection, SML}
}

@article{Popescu91,
   author = {V Popescu and {\em et al}},
   title = {The Metaflow architecture},
   journal = {IEEE Micro},
   pages = {10ff},
   month = jun,
   year = {1991},
   keywords = {superscalar, register renaming, out-of-order execution, dataflow}
}

@article{Oehler91,
   author = {RR Oehler and MW Blasgen},
   title = {{IBM} {RISC} System/6000: architecture and performance},
   journal = {IEEE Micro},
   pages = {14ff},
   month = jun,
   year = {1991},
   keywords = {superscalar, floating point, RISC}
}

@article{Sachs91,
   author = {HG Sachs and {\em et al}},
   title = {Design and implementation tradeoffs in the Clipper C400 architecture},
   journal = {IEEE Micro},
   pages = {18ff},
   month = jun,
   year = {1991},
   keywords = {superscalar, useful box about SPEC benchmarks, pipeline}
}

@article{Sha91,
   author = {L Sha and {\em et al}},
   title = {Real-time computing with {IEEE} Futurebus+},
   journal = {IEEE Micro},
   pages = {30ff},
   month = jun,
   year = {1991}
}

@article{Tucker91,
   author = {AB Tucker},
   title = {Computing curricula 1991},
   journal = cacm,
   volume = {34},
   number = {6},
   pages = {68-84},
   month = jun,
   year = {1991},
   keywords = {syllabus, teaching computer science}
}

@article{Samuelson91a,
   author = {P Samuelson},
   title = {First ammendment rights for information providers},
   journal = cacm,
   volume = {34},
   number = {6},
   pages = {19-24},
   month = jun,
   year = {1991},
   keywords = {freedom of speech on networks, bulletin boards, white coats}
}

@article{Krick91,
   author = {RF Krick and A Dollas},
   title = {The evolution of instruction sequencing},
   journal = {IEEE Computer},
   volume = {24},
   number = {4},
   pages = {5-16},
   month = apr,
   year = {1991},
   keywords = {pipelining, branch prediction, RISC, cache, architecture}
}

@article{Bertino91,
   author = {E Bertino and L martino},
   title = {Object-oriented database management systems: concepts and issues},
   journal = {IEEE Computer},
   volume = {24},
   number = {4},
   pages = {33-48},
   month = apr,
   year = {1991},
   keywords = {Useful survey?}
}

@techreport{Prasad91,
   author = {KVS Prasad},
   title = {A calculus of broadcasting systems},
   type = {Report 59, PMG, Chal---mers University},
   month = feb,
   year = {1991},
   keywords = {CCS, process algebra}
}

@techreport{Dybjer91,
   author = {P Dybjer},
   title = {Inverse image analysis generalises strictness analysis},
   type = {Report 60, PMG, Chal---mers University},
   month = feb,
   year = {1991}
}

@article{Shahookar91,
   author = {K Shahookar and P Mazumder},
   title = {{VLSI} cell placement techniques},
   journal = {ACM Computing Surveys},
   volume = {23},
   number = {2},
   pages = {143-220},
   month = jun,
   year = {1991},
   keywords = {simulated annealing, genetic algorithms}
}

@article{abadi:dynamic-in-statically-typed,
   author = {M Abadi and L Cardelli and B Pierce and G Plotkin},
   title = {Dynamic typing in a statically-typed language},
   journal = toplas,
   volume = {13},
   number = {2},
   pages = {237-268},
   month = apr,
   year = {1991},
   keywords = {persistence, type inference}
}

@article{Hudak91,
   author = {P Hudak and J Young},
   title = {Collecting interpretations of expressions},
   journal = toplas,
   volume = {13},
   number = {2},
   pages = {269-290},
   month = apr,
   year = {1991},
   keywords = {strictness analysis}
}

@article{Culler90,
   author = {DE Culler and GM Papadopoulos},
   title = {The explicit token store},
   journal = {Journal of Parallel and Distributed Computing},
   volume = {10},
   number = {4},
   pages = {289-308},
   month = dec,
   year = {1990},
   keywords = {Monsoon, data flow}
}

@article{Anonymous90g,
   key = {Anonymous90g},
   title = {Special issue on data flow},
   journal = {Journal of Parallel and Distributed Computing},
   volume = {10},
   number = {4},
   month = dec,
   year = {1990},
   keywords = {Epsilon-2, Sisal, RC compiler, static, dynamic dataflow}
}

@article{Rettig91,
   author = {M Rettig},
   title = {Nobody reads documentation},
   journal = cacm,
   volume = {34},
   number = {7},
   pages = {19},
   month = jul,
   year = {1991},
   keywords = {project management, software engineering}
}

@article{Anonymous91,
   key = {Anonymous91},
   title = {Special issue on real-time systems},
   journal = {IEEE Computer},
   volume = {24},
   number = {5},
   month = may,
   year = {1991},
   keywords = {Flex, deadlines, parallelism}
}

@article{Louri91,
   author = {A Louri},
   title = {Three-dimensional optical architecture and data-parallel algorithms for massively-parallel computing},
   journal = {IEEE Micro},
   pages = {24},
   month = apr,
   year = {1991}
}

@incollection{tam,
   author = {DE Culler {\em et al}},
   title = {Fine-grain parallelism with minimal hardware support: a compiler-controlled threaded abstract machine},
   booktitle = {Architectural support for Programming Languages and Operating Systems, Santa Clara},
   pages = {164-175},
   publisher = {ACM},
   month = apr,
   year = {1991},
   keywords = {TAM, P-Risc, data flow, thread, I-structure}
}

@incollection{Schauser??,
   author = {KE Schauser and DE Culler and T von Eicken},
   title = {Compiler-controlled multithreading for lenient parallel languages},
   crossref = "fpca91",
   keywords = {TAM, P-Risc, data flow, I-structures}
}

@article{Appel92,
   author = {AW Appel and Z Shao},
   title = {Callee-save registers in continuation-passing style},
   journal = lasc,
   volume = {5},
   pages = {189-219},
   year = {1992},
   keywords = {CPS, SML of New Jersey}
}

@incollection{hughes-odonnell:non-det,
   author = {RJM Hughes and JT O'Donnell},
   editor = {K Davis and RJM Hughes},
   title = {Expressing and reasoning about non-deterministic functional programs},
   booktitle = {Functional Programming, Glasgow 1989},
   pages = {308-328},
   publisher = {Workshops in Computing, Springer Verlag},
   year = {1989},
   keywords = {branch and bound, search algorithms}
}

@techreport{Nikhil89d,
   author = {RS Nikhil},
   title = {Structure and interpretation of parallel computer programs},
   type = {Lecture notes, MIT Lab for Computer Science},
   month = jan,
   year = {1989},
   keywords = {Scheme interpreter (based on Abelson \& Sussman) for parallel language, future, I-structure}
}

@incollection{Nocker??a,
   author = {E Nocker and JEW Smetsers and M Eekelen and MJ Plasmeijer},
   title = {Concurrent Clean},
   booktitle = {$|$Parle91$|$},
   keywords = {annotations, ABC machine}
}

@techreport{ODonnell91,
   author = {JT O'Donnell},
   title = {A formal derivation of parallel scan},
   type = {Department of Computing Science, University of Glasgow},
   month = aug,
   year = {1991},
   keywords = {parallel prefix, tree machine, transformation}
}

@incollection{leroy:unboxed,
   author = {X Leroy},
   title = {Unboxed objects and polymorphic typing},
   crossref = "popl92",
   pages = "177-188",
   keywords = {coercion, type systems, wrapping. Nice paper}
}

@techreport{Hudak91a,
   author = {P Hudak},
   title = {Manipulating state in functional languages},
   type = {OHP slides, $|$DCS$|$, Yale University},
   month = aug,
   year = {1991},
   keywords = {monads, arrays, single-threading}
}

@techreport{Nikhil91,
   author = {RS Nikhil and GM Papadopoulos and Arvind},
   title = {*{T}: a killer micro for a brave new world},
   type = {CSG Memo 325, Lab for Computer Science, MIT},
   month = jan,
   year = {1991},
   keywords = {TAM, P-RISC, threads, fork, synchronisation, I-structures, frames}
}

@techreport{Arvind88b,
   author = {Arvind and DE Culler and K Ekanadham},
   title = {The price of asynchronous parallelism},
   type = {CSG Memo 278, Lab for Computer Science, MIT},
   month = jun,
   year = {1988},
   keywords = {dataflow instructions; comparison with IBM 370, synchronisation}
}

@techreport{Launchbury91,
   author = {J Launchbury},
   title = {Slides and papers on partial evaluation},
   type = {Banff Summer School on Functional Programming},
   month = sep,
   year = {1991}
}

@techreport{Hughes91,
   author = {RJM Hughes},
   title = {Slides on functional programming},
   type = {Banff Summer School on Functional Programming},
   month = sep,
   year = {1991},
   keywords = {monads, algebra, text formatting, pretty printingk, parsing}
}

@techreport{Turner91,
   author = {D A Turner},
   title = {Slides on Constructive type theory},
   type = {Banff Summer School on Functional Programming},
   month = sep,
   year = {1991},
   keywords = {duality, Martin Lof}
}

@techreport{Burn91,
   author = {G Burn},
   title = {Slides on abstract interpretation},
   type = {Banff Summer School on Functional Programming},
   month = sep,
   year = {1991},
   keywords = {PERs}
}

@misc{Girard??,
   author = {JY Girard},
   title = {Typed lambda calculus},
   keywords = {Chapters 1-7 of book}
}

@article{Fortune83,
   author = {S Fortune and D Leivant and M O'Donnell},
   title = {The expressiveness of simple and second-order type structures},
   journal = {JACM},
   volume = {30},
   number = {1},
   pages = {151-185},
   month = jan,
   year = {1983},
   keywords = {second-order lambda calculus, strong termination}
}

@techreport{Wadler90c,
   author = {PL Wadler},
   title = {Slides on type theory},
   type = {Dept of Computing, Univ of Glasgow},
   year = {1990},
   keywords = {second-order lambda calculus, curry-howard}
}

@techreport{Bennett91,
   author = {JK Bennett and JB Carter and W Zwaenepoel},
   title = {Munin: distributed shared memory based on type-specific memory coherence},
   type = {$|$DCS$|$, Rice University},
   year = {1991},
   keywords = {cache, parallel}
}

@incollection{Goldberg??,
   author = {B Goldberg},
   title = {Tag-free garbage collection for strongly-typed programming langauges},
   booktitle = {$|$PLDI91$|$},
   pages = {165-176},
   keywords = {Similar to the STG machine}
}

@article{Brzozowski90,
   author = {JA Brzozowski and CJH Seger},
   title = {Advances in asynchronous circuit theory: Part {I}},
   journal = {EATCS Bulletin},
   month = oct,
   year = {1990},
   keywords = {self-timed, delay-insensitive circuits}
}

@article{Brzozowski91,
   author = {JA Brzozowski and CJH Seger},
   title = {Advances in asynchronous circuit theory: Part {II}},
   journal = {EATCS Bulletin},
   year = {1991},
   keywords = {self-timed, delay-insensitive circuits}
}

@techreport{Gopalakrishnan90,
   author = {G Gopalakrishnan and P Jain},
   title = {Some recent asynchronous system design methodologies},
   type = {UU-CS-TR-90-016, $|$DCS$|$, University of Utah},
   month = oct,
   year = {1990},
   keywords = {self-timed, delay-insensitive circuits}
}

@book{Kuchen90,
   author = {H Kuchen and A Wagener},
   title = {Comparison of dynamic load-balancing strategies Proc Workshop on Distributed and Parallel Processing, Sofia},
   publisher = {Elsevier},
   year = {1990},
   keywords = {scheduling, resource management}
}

@phdthesis{Roe91,
   author = {P Roe},
   title = {Parallel programming with functional languages},
   type = {Ph.{D}. Thesis},
   number = {CSC 91/R3, Department of Computing Science, University of Glasgow},
   month = apr,
   year = {1991}
}

@incollection{Cardelli86,
   author = {L Cardelli},
   editor = {G Cousineau and PL Curien and B Robinet},
   title = {Amber},
   booktitle = {Combinators and functional programming languages},
   publisher = {LNCS 242, Springer Verlag},
   year = {1986},
   keywords = {multiple inheritance, persistence}
}

@inproceedings{Hartel91b,
   author = {P Hartel and H Glaser and J Wild},
   editor = {H Glaser and P Hartel},
   title = {On the benefits of different analyses in the compilation of a lazy functional language},
   booktitle = {Proc Workshop on the Parallel Implementation of Functional Languages, Southampton},
   pages = {123-146},
   month = jun,
   year = {1991},
   keywords = {scheduling},
   note = {CSTR 91-07, $|$DCS$|$, University of Southampton}
}

@incollection{Leung??,
   author = {A Leung and P Mishra},
   title = {Reasoning about simple and exhaustive demand in higher-order lazy languages},
   crossref = "fpca91",
   pages = {328-351},
   keywords = {type inference, strictness analysis}
}

@incollection{Jones??b,
   author = {SB Jones and M White},
   title = {Is compile-time garbaage collection worth the effort?},
   booktitle = {$|$Glasgow90$|$},
   pages = {172-176},
   keywords = {abstract interpretation, analysis}
}

@phdthesis{Bloss89,
   author = {A Bloss},
   title = {Path analysis: using order-of-evaluation information to optimise lazy functional programs},
   type = {Ph.{D}. Thesis},
   number = {Department of Computer Science, Yale University},
   year = {1989},
   keywords = {abstract interpretation, strictness}
}

@incollection{Bird87a,
   author = {RS Bird},
   editor = {M Broy},
   title = {An introduction to the theory of lists},
   booktitle = {Logic of programming and calculi of discrete design},
   pages = {5-42},
   publisher = {NATO ASI Series F: Computer and System Sciences Vol 36, Springer Verlag},
   year = {1987},
   keywords = {filter promotion}
}

@incollection{Wadler90d,
   author = {PL Wadler},
   editor = {M Broy and C Jones},
   title = {Linear types can change the world!},
   booktitle = {Programming concepts and methods},
   publisher = {North Holland},
   year = {1990},
   keywords = {linear logic}
}

@inproceedings{Wadler91,
   author = {PL Wadler},
   title = {Is there a use for linear logic?},
   booktitle = {ACM Conference on Partial Evaluation and Semantic-Based Program Manipulation (PEPM), New Haven},
   publisher = {ACM},
   month = jun,
   year = {1991}
}

@incollection{barth:m-structures,
   author = {PS Barth and RS Nikhil and Arvind},
   title = {M-structures: extending a parallel, non-strict functional language with state},
   crossref = "fpca91",
   pages = {538-568},
   keywords = {I-structures, side effects, semantics}
}

@techreport{Sestoft89,
   author = {P Sestoft and G Argo},
   title = {Detecting unshared expressions in the improved {TIM} machine},
   type = {Department of Computing Science, University of Glasgow},
   month = nov,
   year = {1989},
   keywords = {partial applications, sharing}
}

@article{Heymann91,
   author = {J Heymann},
   title = {A comprehensive analytical model for garbage collection algorithms},
   journal = {SIGPLAN Notices},
   volume = {26},
   number = {8},
   pages = {50-59},
   month = aug,
   year = {1991}
}

@article{Buneman82,
   author = {P Buneman and RE Frankel and R Nikhil},
   title = {An implementation technique for database query languages},
   journal = {ACM Transactions on Database Systems},
   volume = {7},
   number = {2},
   pages = {164-186},
   month = jun,
   year = {1982},
   keywords = {FQL, lazy evaluation, FP.  Ahead of its time}
}

@techreport{hudak:io,
   author = {P Hudak and RS Sundaresh},
   title = {On the expressiveness of purely-functional {I}/{O} systems},
   number = {YALEU/DCS/RR-665},
   type = {Research Report},
   institution = "Department of Computer Science, Yale University",
   month = mar,
   year = {1989},
   keywords = {continuations, streams, non-determinism, actors}
}

@techreport{Kuchen91,
   author = {H Kuchen and G Geiler},
   title = {Distributed Applicative Arrays},
   type = {91-5, $|$DCS$|$, University of Aachen},
   year = {1991},
   keywords = {parallel transputers}
}

@techreport{Matthes91,
   author = {F Matthes and A Ohori and JW Schmidt},
   title = {Typing schemes for objects with locality},
   type = {Kansai Lab, OKI Osaka, Japan},
   year = {1991},
   keywords = {polymorphism, persistence, references, types}
}

@techreport{Consel91a,
   author = {C Consel},
   title = {Fast strictness analysis via symbolic fixpoint iteration},
   type = {$|$DCS$|$, Yale University},
   month = sep,
   year = {1991},
   keywords = {flat domains}
}

@inproceedings{Groningen91,
   author = {J van Groningen and E Nocker and S Smetsers},
   title = {Efficient heap management in the concrete {ABC} machine},
   booktitle = {Workshop on parallel implementations of functional languages},
   month = jun,
   year = {1991},
   keywords = {dual mode garbage collection},
   note = {CSTR 91-07, University of Southampton}
}

@incollection{Burn90d,
   author = {GL Burn},
   title = {The evaluation transformer model of reduction and its correctness},
   booktitle = {TAPSOFT 91, Brighton},
   month = apr,
   year = {1990},
   keywords = {graph reduction; a formal paper}
}

@techreport{Rojemo91,
   author = {N Rojemo},
   title = {A concurrent garbage collector for the $\langle \nu, G \rangle$ machine},
   type = {DCS, Chalmers University},
   year = {1991},
   keywords = {Sequent multiprocessor, garbage collection of tasks}
}

@article{Anonymous91a,
   key = {Anonymous91a},
   title = {Special issue on distributed systems},
   journal = {IEEE Computer},
   volume = {24},
   number = {8},
   month = aug,
   year = {1991},
   keywords = {distributed shared memory, logical time, distributed database}
}

@article{Hennessy91,
   author = {JL Hennessy and NP Jouppi},
   title = {Computer technology and architecture: an evolving interaction},
   journal = {IEEE Computer},
   volume = {24},
   number = {9},
   pages = {30-38},
   month = sep,
   year = {1991},
   keywords = {VLSI, cacheing, pipelining, parallelism; good summray paper}
}

@incollection{Hughes90a,
   author = {RJM Hughes},
   editor = {D A Turner},
   title = {Compile-time analysis of functional programs},
   booktitle = {Research topics in functional programming},
   pages = {117-151},
   publisher = {Addison Wesley},
   year = {1990},
   keywords = {forwards and backwards analysis, strictness, absence}
}

@phdthesis{perry:thesis,
   author = {N Perry},
   title = {The implementation of practical functional programming languages},
   type = {Ph.{D}. Thesis},
   school = {Imperial College, London},
   year = {1991},
   keywords = {existential types, overloading, input/output, Hope+C, mixed-language working}
}

@article{McCrosky91,
   author = {C McCrosky},
   title = {Intermediate container removal},
   journal = {Computer Languages},
   volume = {16},
   number = {2},
   pages = {179-195},
   year = {1991},
   keywords = {unboxing, arrays, APL, Q-NIAL}
}

@techreport{Yang91,
   author = {JA Yang and Y Choo},
   title = {Metalinguistic features for formal parallel-program transformation},
   type = {$|$DCS$|$, Yale University},
   month = sep,
   year = {1991},
   keywords = {Crystal, arrays, fold/unfold, semantics of quote and unquote, mapping arrays}
}

@techreport{Purushothaman91,
   author = {S Purushothaman and J Seaman},
   title = {An adequate operational semantics of sharing in lazy evaluation},
   type = {$|$DCS$|$, Penn State University},
   month = aug,
   year = {1991},
   keywords = {PCF, explicit closures and substitutions, shows equivalence of denotational and operational semantics}
}

@incollection{wadler:essence,
   author = {PL Wadler},
   title = {The essence of functional programming},
   crossref = "popl92",
   pages = {1-14},
   keywords = {monads, CPS, lots of examples}
}

@inproceedings{Diwan92,
   author = {A Diwan and E Moss and R Hudson},
   title = {Compiler support for garbage collection in a statically typed language},
   booktitle = {ACM SIGPLAN Conference on Programming Language Design and Implementation},
   pages = {273-282},
   month = jun,
   year = {1992},
   keywords = {storage management, bitmasks to indicate live pointers}
}

@techreport{Herlihy90,
   author = {M Herlihy and JEB Moss},
   title = {Non-blocking garbage collection for multiprocessors},
   type = {CRL 90/9, DEC Research Lab, Cambridge Mass},
   month = nov,
   year = {1990},
   keywords = {shared memory, synchronisation, parallel copying collectors}
}

@techreport{Jones91,
   author = {MP Jones},
   title = {Type inference for qualified types},
   type = {PRG-TR-10-91, Programming Research Group, Oxford},
   institution = "Oxford University",
   year = {1991},
   keywords = {polymorphism, overloading, classes, substitutions}
}

@inproceedings{qualtypes,
   author = {MP Jones},
   title = {A theory of qualified types},
   crossref = "esop92",
   keywords = {polymorphism, overloading, classes, lambda calculus}
}

@article{Anonymous91b,
   key = {Anonymous91b},
   title = {Special issue on {LISP}},
   journal = {CACM},
   volume = {34},
   number = {9},
   month = sep,
   year = {1991},
   keywords = {storage management, CLOS}
}

@article{Morrison91,
   author = {R Morrison and A Dearle and RCH Connor and AL Brown},
   title = {An ad hoc approach to the implementation of polymorphism},
   journal = toplas,
   volume = {13},
   number = {3},
   pages = {342-371},
   month = jul,
   year = {1991},
   keywords = {overloading, boxing and unboxing, coercion, tags, Napier}
}

@techreport{Poet91,
   author = {R Poet},
   title = {The Mandelbrot set and its related Julia sets},
   type = {$|$DCS$|$, Univ of Glasgow},
   year = {1991},
   keywords = {chaos, chaotic, fractals; notes.}
}

@techreport{Hammond91,
   author = {K Hammond and PL Wadler and D Brady},
   title = {Imperate: be imperative},
   type = {$|$DCS$|$, Univ of Glasgow},
   year = {1991},
   keywords = {monads, I/O, coercion, overloading}
}

@techreport{Giegerich91,
   editor = {R Giegerich and S Graham},
   title = {Code generation: concepts, tools, techniques},
   type = {Dagstuhl Seminar Report 13, May},
   number = {1991.},
   month = may,
   year = {1991},
   keywords = {BURS, register colouring, tree matching, instruction scheduling}
}

@incollection{Sharp91,
   author = {D Sharp and M Cripps},
   title = {Parallel algorithms that solve problems by communication},
   booktitle = {Proc 3rd IEEE Symposium on Parallel and Distributed Processing, Dallas},
   month = dec,
   year = {1991},
   keywords = {fractals, tesselation of plane, quicksort, massively-parallel machines}
}

@techreport{Jouret91a,
   author = {GK Jouret and D Sharp},
   title = {A skeletons primer},
   type = {$|$DCS$|$, Imperial College},
   month = may,
   year = {1991},
   keywords = {algorithmic skeletons, divide and conquer, pipelines, farm, message passing}
}

@article{Atkins91,
   author = {M Atkins},
   title = {Performance and the i860 microprocessor},
   journal = {IEEE Micro},
   pages = {24ff},
   month = oct,
   year = {1991},
   keywords = {pipelining, parallelism, superscalar, vector processing}
}

@article{Quisquater91,
   author = {JJ Quisquater and YG Desmedt},
   title = {Chinese Lotto as an exhaustive code-breaking machine},
   journal = {IEEE Computer},
   volume = {24},
   number = {11},
   pages = {14-22},
   month = nov,
   year = {1991},
   keywords = {encryption, public key}
}

@article{alrbrace91a,
   author = {P Dasgupta {\em et al}},
   title = {The Clouds distributed operating system},
   journal = {IEEE Computer},
   volume = {24},
   number = {11},
   pages = {34-44},
   month = nov,
   year = {1991},
   keywords = {objects,virtual memory, shared memory, messages}
}

@article{Tucker91a,
   author = {AB Tucker and BH Barnes},
   title = {Flexible design: a summary of Computing Curricula 1991},
   journal = {IEEE Computer},
   volume = {24},
   number = {11},
   pages = {56},
   month = nov,
   year = {1991},
   keywords = {curriculum, syllabus}
}

@article{alrbrace91b,
   author = {EE Witte {\em et al}},
   title = {Parallel simulated annealing using speculative computation},
   journal = {IEEE Trans Parallel and Distributed Systems},
   volume = {2},
   number = {4},
   pages = {483},
   month = oct,
   year = {1991},
   keywords = {algorithms}
}

@inproceedings{Berkel88,
   author = {CH van Berkel and C Niessen and M Rem and R Saeijs},
   title = {{VLSI} programming and silicon compilation: a novel approach},
   booktitle = {Proc IEEE International Conference on Computer Design},
   pages = {150-166},
   publisher = {IEEE Computer Society Press, Washington DC},
   year = {1988},
   keywords = {asynchronous, delay-insensitive, self-timed}
}

@incollection{Ebergen91,
   author = {J Ebergen and ER Brocklehurst},
   title = {A formal approach to designing delay-insensitive circuits Survey of benchmarks},
   booktitle = {Distributed Computing},
   month = nov,
   year = {1991},
   keywords = {asynchronous, self-timed dhrystone, whetstone, slalom, spec, performance},
   note = {DITC 192/91, National Physical Lab}
}

@techreport{Thompson91,
   author = {SJ Thompson and RD Lins},
   title = {The categorical multi-combinator machine: {CMCM}},
   type = {Computing Lab, Univ of Kent},
   month = may,
   year = {1991},
   keywords = {graph reduction, TIM}
}

@inproceedings{Lee90,
   author = {VA Lee and H-J Boehm},
   title = {Optimising programs over the constructive reals},
   booktitle = {Proc Conference on Programming Language Design and Implementation (PLDI 90)},
   pages = {102-126},
   month = jun,
   year = {1990},
   keywords = {not continued fractions, lazy evaluation}
}

@inproceedings{Debray90,
   author = {SK Debray and N-W Lin},
   title = {Task granularity analysis in logic programs},
   booktitle = {Proc Conference on Programming Language Design and Implementation (PLDI 90)},
   month = jun,
   year = {1990},
   keywords = {List data structures only, I think}
}

@book{appel-book,
   author = {AW Appel},
   title = {Compiling with continuations},
   publisher = {Cambridge University Press},
   year = {1992},
   keywords = {CPS, SML, transformation, unfolding, book}
}

@inproceedings{Sansom91,
   author = {P Sansom},
   title = {Combining copying and compacting garbage collection},
   booktitle = {Proc Fourth Annual Glasgow Workshop on Functional Programming},
   publisher = {Springer Verlag Workshops in Computer Science},
   month = aug,
   year = {1991},
   keywords = {dual mode, STG machine, storage management, virtual memory, skye}
}

@article{Wainwright87,
   author = {RL Wainwright},
   title = {Deriving parallel computations from functional specifications: a seismic example on a hypercube},
   journal = {International Journal of Parallel Programming},
   volume = {16},
   number = {3},
   pages = {243-260},
   year = {1987},
   keywords = {Amoco, functional-language applications}
}

@article{Ebergen92,
   author = {JC Ebergen},
   title = {A formal approach to designing delay-insensitive circuits},
   journal = {Distributed Computing},
   volume = {5},
   number = {3},
   year = {1992},
   keywords = {Asynchronous, self-timed, traces}
}

@inproceedings{Ebergen92a,
   author = {JC Ebergen and AMG Peeters},
   editor = {J Staunstrop and R Sharp},
   title = {Modulo-{N} counters: design and analysis of delay-insensitive circuits},
   booktitle = {Workshop on Designing Correct Circuits},
   year = {1992},
   keywords = {asynchronous, self-timed, traces}
}

@techreport{lanuchbury:zip-fusion,
  author = "J Launchbury and S Krstic and TE Sauerwein",
  title = "Zip fusion with hyperfunctions",
  year = 2000,
  keywords = {foldr, build}
}

@incollection{RLPage86,
   author = {RLPage and LS Barasch},
   editor = {MT Heath},
   title = {Parallel computation, functional programming, and Fortran 8X},
   booktitle = {Hypercube multiprocessors},
   pages = {57-69},
   publisher = {SIAM},
   year = {1986},
   keywords = {Amoco, applications, divide and conquer}
}

@techreport{Diaz91,
   author = {J-C Diaz and K Shenoi},
   title = {Domain decomposition and Schur complement approaches to cooupling the well equations in reservoir simulation},
   type = {Amoco, Tulsa},
   year = {1991},
   keywords = {application of Miranda}
}

@techreport{Ebergen91a,
   author = {JC Ebergen},
   title = {Parallel computations and delay-insensitive circuits},
   type = {CS-91-05, $|$DCS$|$, University of Waterloo},
   month = jan,
   year = {1991},
   keywords = {asynchronous, self-timed, traces}
}

@techreport{Ebergen91b,
   author = {JC Ebergen and S Gingras},
   title = {An asynchronous stack with constant response time},
   type = {$|$DCS$|$, University of Waterloo},
   month = oct,
   year = {1991},
   keywords = {asynchronous, self-timed, traces}
}

@techreport{Stucki79a,
   author = {MJ Stucki and JR Cox},
   title = {Synchronisation strategies},
   type = {Caltech Conference on VLSI},
   month = jan,
   year = {1979},
   keywords = {Basic stuff on metastability}
}

@techreport{Chapiro84,
   author = {DM Chapiro},
   title = {Globally-asynchronous, locally-synchronous systems},
   type = {$|$DCS$|$, Stanford University},
   month = oct,
   year = {1984},
   keywords = {asynchronous, delay-insensitive, metastability, synchronisation, self-timed}
}

@incollection{Harrison91,
   author = {PG Harrison},
   title = {Towards the synthesis of static parallel algorithms: a categorical approach},
   booktitle = {Proc IFIP WG2.1 Conf on Constructing Programs from Specifications, Pacific Grove},
   month = may,
   year = {1991},
   keywords = {Transformation, functional programming}
}

@techreport{Ferdinand91,
   author = {C Ferdinand and H Seidl and R Wilhelm},
   title = {Tree automata for code selection},
   type = {University of Saarlandes, Saarbrucken},
   year = {1991},
   keywords = {code generation, tree parsing, twic, CISC, tree grammar.  Good survey paper.}
}

@inproceedings{Nowick91,
   author = {SM Nowick and DL Dill},
   title = {Automatic synthesis of locally-clocked asynchronous state machines},
   booktitle = {Proc International Conference on Computer Aided Design (ICCAD 91)},
   year = {1991},
   keywords = {self-timed, delay insensitive, hazards}
}

@inproceedings{Nowick91a,
   author = {SM Nowick and DL Dill},
   title = {Asynchronous state machine synthesis using a local clock},
   booktitle = {International Workshop on Logic Synthesis (MCNC)},
   year = {1991},
   keywords = {self-timed, delay insensitive, hazards}
}

@incollection{Nowick91b,
   author = {SM Nowick and DL Dill},
   title = {Synthesis of asynchronous state machines using a local clock},
   booktitle = {ICCD},
   year = {1991},
   keywords = {self-timed, delay insensitive, hazards}
}

@incollection{Chin91a,
   author = {WN Chin},
   title = {Generalising deforestation for all first-order functional programs},
   booktitle = {Actes JTASPEFL '91, Bordeaux},
   pages = {173-181},
   month = oct,
   year = {1991}
}

@article{burstall:induction,
  author = "Rod Burstall",
  title = "Proving Properties of Programs by Structural Induction",
  journal = "The Computer Journal", 
  volue = 12, issue = 1, pages = "41-48", year = 1969
}

@techreport{Chirimar91,
   author = {J Chirimar and CA Gunter and JG Riecke},
   title = {Proving memory management invariants for a language based on linear logic},
   type = {MS-CIS-98-98, $|$DCS$|$, University of Pennsylvania},
   month = dec,
   year = {1991},
   keywords = {linearity, storage management, types}
}

@techreport{Jones90b,
   author = {ND Jones and F Nielson},
   title = {Abstract interpretation: a semantics-basedtool for program analysis},
   type = {DIKU, University of Copenhagen},
   month = dec,
   year = {1990},
   keywords = {strictness analysis, safety, domains}
}

@techreport{Wadler91a,
   author = {PL Wadler},
   title = {There's no substitute for linear logic},
   type = {Dept of Computing, University of Glagow},
   month = dec,
   year = {1991},
   keywords = {Rather technical. Subsitution lemma.  Monads}
}

@techreport{Schreur89,
   author = {RJM Wichers Schreur},
   title = {The Concurrent Clean System: Users Manual (V0.5)},
   type = {TR 89-21, Dept of Informatics, University of Nijmegen},
   month = nov,
   year = {1989},
   keywords = {graph rewriting}
}

@inproceedings{Ireland92,
   author = {E Ireland},
   title = {The Lazy Functional Abstract Machine},
   booktitle = {Proc 15th Australian Computer Science Conference, Hobart},
   publisher = {World Scientific Publishing},
   month = jan,
   year = {1992},
   keywords = {FAM, closures}
}

@techreport{Odersky91,
   author = {M Odersky and K Läufer},
   title = {Type classes are signatures of abstract types},
   type = {IBM TJ Watson Research Centre},
   month = may,
   year = {1991},
   keywords = {Haskell, polymorphism}
}

@article{Landin65,
   author = {PJ Landin},
   title = {A correspondence between Algol 60 and Church's lambda calculus},
   journal = cacm,
   volume = {8},
   number = {3},
   pages = {158-165},
   month = mar,
   year = {1965},
   keywords = {Original SECD machine paper (I think)}
}

@book{burge:book,
   author = {WH Burge},
   title = {Recursive programming techniques},
   publisher = {Addison Wesley},
   year = {1975},
   keywords = {SECD machine, functional programming}
}

@book{Koopman89,
   author = {PJ Koopman},
   title = {Stack machines: the new wave},
   publisher = {Ellis Horwood},
   year = {1989},
   keywords = {Forth, threaded code}
}

@incollection{Iannucci88a,
   author = {RA Iannucci},
   title = {Towards a dataflow/von Neumann hybrid architecture},
   booktitle = {15th Annual Symposium on Computer Architecture, Hawaii},
   publisher = {ACM},
   month = jun,
   year = {1988},
   keywords = {latency, scheduling quanta, context switching, synchronisation}
}

@techreport{Koopman90a,
   author = {PWM Koopman and LMWJ Rutten and MCJD van Eekelen and MJ Plasmeijer},
   title = {Functional descriptions of neural networks},
   type = {TR 90-10, Dept of Informatics, Univ of Nijmegen},
   month = may,
   year = {1990},
   keywords = {clean}
}

@techreport{Rutten90,
   author = {LMWJ Rutten and PWM Koopman and MCJD van Eekelen and MJ Plasmeijer},
   title = {Inventory and functional prototypes of neural networks},
   type = {TR 90-15, Dept of Informatics, Univ of Nijmegen},
   month = oct,
   year = {1990},
   keywords = {clean}
}

@techreport{Wadler91b,
   author = {PL Wadler},
   title = {Interpreting monads},
   type = {OHP slides, $|$DCS$|$, Univ of Glasgow},
   year = {1991}
}

@techreport{Jones91b,
   author = {ND Jones},
   title = {Tutorial on partial evaluation},
   type = {OHP Slides, DIKU, Univ of Copenhagen},
   year = {1991}
}

@techreport{Wadler91c,
   author = {PL Wadler},
   title = {A taste of linear logic},
   type = {OHP slides, Dept of Computing, Univ of Glasgow},
   year = {1991}
}

@article{Burn91a,
   author = {GL Burn},
   title = {Implementing the evaluation transformer model of reduction on parallel machines},
   journal = jfp,
   volume = {1},
   number = {3},
   pages = {329-366},
   month = jul,
   year = {1991},
   keywords = {graph reduction}
}

@phdthesis{Nazief91,
   author = {RAA Nazief},
   title = {Empirical study of load distribution strategies on multicomputers},
   type = {Ph.{D}. Thesis},
   number = {UIUCDCS-R-91-1710, $|$DCS$|$, Univ of Illinois},
   month = oct,
   year = {1991},
   keywords = {task placement, migration, parallelism, scheduling}
}

@phdthesis{Firth91,
   author = {M Firth},
   title = {A fold/unfold transformation system for a non-strict language},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, University of York},
   year = {1991},
   keywords = {GLIDE, Starship, pattern-matching}
}

@techreport{Morgan92,
   author = {RG Morgan and R Garigliano},
   title = {Interactive programming using pure functions},
   type = {School of Engineering and Computer Science},
   year = {1992},
   keywords = {I/O, continuations, streams}
}

@techreport{Wilson92,
   author = {PR Wilson and MS Lam and TG Moher},
   title = {Caching considerations for generational garbage collection},
   crossref = lfp92,
   keywords = {storage management, cache, stacks, allocation area, stripes}
}

@techreport{Hammond92,
   author = {K Hammond and SL {Peyton~Jones} and PL Wadler},
   title = {A new input/output model for purely-functional languages},
   type = {Dept of Computing Science, University of Glasgow},
   month = feb,
   year = {1992},
   keywords = {input, output, monads, Haskell, ccall}
}

@article{pj:stg-machine,
   author = {SL {Peyton~Jones}},
   title = {Implementing Lazy Functional Languages on Stock Hardware: The Spineless Tagless {G}-machine},
   journal = {Journal of Functional Programming},
   volume = {2},
   number = {2},
   pages = {127-202},
   month = apr,
   year = {1992},
   keywords = {STG machine, thunks, closures, updates, jfp}
}

@article{Ryan92,
   author = {B Ryan},
   title = {Built for speed},
   journal = {Byte},
   pages = {123-135},
   month = feb,
   year = {1992},
   keywords = {RISC, computer architecture, Moore's law, MIPS, cache.  Popular survey}
}

@article{Dern92,
   author = {DP Dern},
   title = {Applying the Internet},
   journal = {Byte},
   month = feb,
   year = {1992},
   keywords = {network, FTP, finger, archie}
}

@techreport{Seward92,
   author = {JR Seward},
   title = {Towards a strictness analyser for Haskell: putting theory into practice},
   type = {MSc Thesis, $|$DCS$|$, Univ of Manchester},
   month = aug,
   year = {1992},
   keywords = {Core language, forwards, backwards}
}

@techreport{Cattrall92,
   author = {DM Cattrall and C Runciman},
   title = {A relational programming language with logical and functional aspects},
   type = {$|$DCS$|$, Univ of York},
   month = feb,
   year = {1992},
   keywords = {Drusilla, non-determinism, logic programming, FP, Ruby}
}

@inproceedings{chen-hudak-odersky92,
	author = {Chen, K. and Hudak, P. and Odersky, M.},
	title = {Parametric Type Classes},
	month = {June},
	year = {1992},
        pages ={170--181},
        publisher =   "ACM",
	booktitle = {Proceedings of ACM Conference on Lisp and 
                     Functional Programming},
        keywords = {type classes generalised, sequences, overloading}
}

@techreport{Okasaki92,
   author = {C Okasaki and P Lee and D Tarditi},
   title = {Graph reduction and lazy continuation-passing style},
   type = {$|$DCS$|$, Carnegie Mellon University},
   month = feb,
   year = {1992},
   keywords = {CPS in a lazy setting}
}

@article{Carriero92,
   author = {N Carriero and D Gelernter},
   title = {Coordination languages and their significance},
   journal = cacm,
   volume = {35},
   number = {2},
   pages = {96-107},
   month = feb,
   year = {1992},
   keywords = {Linda, distributed systems, parallelism, contrast with computation languages}
}

@article{alrbrace92,
   author = {RW Gray {\em et al}},
   title = {Eli: a complete, flexible compiler construction system},
   journal = cacm,
   volume = {35},
   number = {2},
   pages = {121-131},
   month = feb,
   year = {1992},
   keywords = {yacc, lex, parsers, code generation, make, composition of tools}
}

@article{Samuelson92,
   author = {P Samuelson},
   title = {Legally speaking: copyright law and electronic compilations of data},
   journal = cacm,
   volume = {35},
   number = {2},
   pages = {27-32},
   month = feb,
   year = {1992},
   keywords = {copyright of a phone directory!}
}

@article{Knuth71,
   author = {D Knuth},
   title = {An empirical study of Fortran programs},
   journal = spe,
   volume = {1},
   pages = {105-133},
   year = {1971},
   keywords = {programmers guesses are often wrong}
}

@book{Brewer91,
   author = {SG Brewer},
   title = {Programs in BBC Basic for young mathematicians},
   publisher = {Edinburgh University Press},
   year = {1991},
   keywords = {chaos, Mandelbrot}
}

@phdthesis{Brunvand91,
   author = {E Brunvand},
   title = {Translating concurrent communicating programs into asynchronous circuits},
   type = {Ph.{D}. Thesis},
   number = {CMU-CS-91-198, $|$DCS$|$, Carnegie Mellon University},
   month = sep,
   year = {1991},
   keywords = {Occam to self-timed circuits, silicon compiler, transformation}
}

@techreport{Stallman92,
   author = {RM Stallman},
   title = {Using and porting Gnu {CC}, Version 2.0},
   type = {Free Software Foundation Inc},
   month = feb,
   year = {1992},
   keywords = {gnu, FSF}
}

@article{Gustavson92,
   author = {DB Gustavson},
   title = {The Scalable Coherent Interface},
   journal = {IEEE Micro},
   pages = {10-22},
   month = feb,
   year = {1992},
   keywords = {SCI, Futurebus, multiprocessors, parallel, cache coherence, directory}
}

@article{alrbrace92a,
   author = {BE Boser {\em et al}},
   title = {Hardware requirements for neural network pattern classifiers},
   journal = {IEEE Micro},
   month = feb,
   year = {1992},
   keywords = {handwriting OCR}
}

@article{alrbrace92b,
   author = {D Lenoski {\em et al}},
   title = {The Stanford Dash multiprocessor},
   journal = {IEEE Computer},
   volume = {25},
   number = {3},
   pages = {63-79},
   month = mar,
   year = {1992},
   keywords = {caches, shared memory, directory-based, snoopy}
}

@techreport{Papadopoulos89,
   author = {GM Papadopoulos},
   title = {Program development and performance monitoring on the Monsoon dataflow multiprocessor},
   type = {CSG Memo 303, Lab for Computer Science, MIT},
   month = {Oce},
   year = {1989},
   keywords = {latency, token store}
}

@techreport{Arvind88c,
   author = {Arvind and DE Culler and GK Maa},
   title = {Assessing the benefits of fine-grained parallelism in dataflow programs},
   type = {CSG Memo 279, MIT Lab for Computer Science},
   month = jun,
   year = {1988},
   keywords = {parallelism profiles, speedup cruves, simulation}
}

@techreport{Seward92a,
   author = {J Seward},
   title = {Generational garbage collection for lazy graph reduction},
   type = {$|$DCS$|$, University of Manchester},
   month = mar,
   year = {1992},
   keywords = {storage management, Appel}
}

@article{comp.compilers92,
   author = {{comp.compilers}},
   title = {The evil effects of inlining},
   institution = {comp.compilers},
   journal = {SIGPLAN Notices},
   volume = {27},
   number = {2},
   pages = {17-25},
   month = feb,
   year = {1992},
   keywords = {unfolding, transformation}
}

@article{Baker92a,
   author = {HG Baker},
   title = {The treadmill: real-time garbage collection without motion sickness},
   journal = {SIGPLAN Notices},
   volume = {27},
   number = {3},
   pages = {66-70},
   month = mar,
   year = {1992},
   keywords = {non-compacting, but various other advantages, storage management}
}

@inproceedings{Alverson90,
   author = {R Alverson and D Callahan and D Cummings and B Koblenz and A porterfield and B Smith},
   title = {The Tera computer system},
   booktitle = {Proc International Conference on Supercomputing, Amsterdam},
   month = jun,
   year = {1990},
   keywords = {multi-threaded architecture, HEP, Horizon, MIMD, zero-delay indirect jumps}
}

@techreport{Berger92,
   author = {E Berger},
   title = {{FP} + {OOP} = Haskell},
   type = {$|$DCS$|$, University of Texas},
   month = mar,
   year = {1992},
   keywords = {Lightweight, but with some comments about relnship with object-oriented programming, inheritance}
}

@techreport{Wentworth92,
   author = {EP Wentworth},
   title = {Code generation for a lazy functional language},
   type = {$|$DCS$|$, Rhodes University, South Africa},
   year = {1992},
   keywords = {SECD, Haskell}
}

@book{Field88a,
   author = {AJ Field and PG Harrison},
   title = {Functional programming},
   publisher = {Addison Wesley},
   year = {1988},
   keywords = {FC, FPM, Hope}
}

@incollection{Ariola91,
   author = {ZM Ariola and Arvind},
   title = {A syntactic approach to program transformations},
   booktitle = {Symposium on Partial Evaluation and Semantics-Based Program Manipulation, Yale},
   month = jun,
   year = {1991},
   keywords = {Kid, Id, data flow, rewrite rules}
}

@incollection{Wilson89,
   author = {PR Wilson and TG Moher},
   title = {Design of an opportunistic garbage collector},
   booktitle = {Proc OOPSLA},
   pages = {23-35},
   month = oct,
   year = {1989},
   keywords = {tenuring, generational}
}

@article{Ingerman61,
   author = {PZ Ingerman},
   title = {Thunks},
   journal = cacm,
   volume = {4},
   number = {1},
   pages = {55-58},
   year = {1961},
   keywords = {Algol 60 implementation}
}

@incollection{runciman:heap-profiling,
   author = {C Runciman and D Wakeling},
   title = {Heap profiling a lazy functional compiler},
   crossref = "Glasgow92",
   pages = {203-214},
   keywords = {LML, space, leak, cost centre}
}

@techreport{Gordon89,
   author = {A Gordon},
   title = {{PFL}+: a kernel scheme for functional {I}/{O}},
   type = {TR 160, Computer Lab, University of Cambridge},
   month = feb,
   year = {1989},
   keywords = {continuations, streams, suspensions, input, output}
}

@incollection{Consel??,
   author = {C Consel and O Danvy},
   title = {For a better support of static data flow},
   crossref = "fpca91",
   pages = {496-519},
   keywords = {CPS, continuation passing style, shows how CPS may increase the accuracy of some analyses}
}

@article{Anonymous92,
   key = {Anonymous92},
   title = {Special issue on logic programming},
   journal = cacm,
   volume = {35},
   number = {3},
   month = mar,
   year = {1992},
   keywords = {Robinson, Warren, Fifth Generation, unification, memoing, implementing sets, databases in Prolog}
}

@article{Linn92,
   author = {MC Linn and MJ Clancy},
   title = {The case for case studies of programming problems},
   journal = cacm,
   volume = {35},
   number = {3},
   pages = {121-132},
   month = mar,
   year = {1992},
   keywords = {teaching programming skills}
}

@techreport{Cockshott92,
   author = {P Cockshott and P Shaw and P Barrie and GJ Milne},
   title = {A scalable cellular array architecture},
   type = {$|$DCS$|$, University of Strathclyde},
   month = jan,
   year = {1992},
   keywords = {CAL chips, occam, asynchronous design, CIRCAL}
}

@article{Spresser92,
   author = {DM Spresser and T LePera},
   title = {Discrete mathematics: a comparative review of textbooks},
   journal = {Computing Reviews},
   month = feb,
   year = {1992},
   keywords = {computer science books}
}

@article{Schmittgen92,
   author = {C Schmittgen and H Blodorn and W Kluge},
   title = {Pi-red: a graph reducer for a full-fledged lambda calculus},
   journal = {New Generation Computing},
   volume = {10},
   pages = {173-195},
   year = {1992},
   keywords = {name capture, reduction, lambda lifting; does non-top-level reduction}
}

@inproceedings{Kozato92,
   author = {Y Kozato and GP Otto},
   title = {Geometric transformations in a lazy functional language},
   booktitle = {Proc International Conference on Pattern Recognition},
   month = aug,
   year = {1992},
   keywords = {Miranda, rotation, translation, pixels, images}
}

@inproceedings{Wild91,
   author = {J Wild and H Glaser and P Hartel},
   editor = {Sendov},
   title = {Statistics on storage management in a lazy functional language implementation},
   booktitle = {Proc Third Workshop on Parallel and Distributed Processing, Sofia},
   publisher = {Elsevier},
   month = apr,
   year = {1991},
   keywords = {profiling, garbage collection, cell lifetime}
}

@techreport{Park92a,
   author = {{Park}},
   title = {Design and analysis of competitive on-line algorithms},
   institution = {Park},
   type = {SERC case for support},
   year = {1992},
   keywords = {competitive algorithms, cf paging, task granularity.  Kept only for its reference list!}
}

@phdthesis{Chin90,
   author = {WN Chin},
   title = {Automatic methods for program transformation},
   type = {Ph.{D}. Thesis},
   number = {Imperial College, London},
   month = mar,
   year = {1990},
   keywords = {higher-order removal, deforestation, tuples}
}

@article{Anonymous92a,
   key = {Anonymous92a},
   title = {Computers and people with disabilities},
   journal = {$|$CACM$|$, special issue},
   volume = {35},
   number = {5},
   month = may,
   year = {1992},
   keywords = {handicapped, blind, deaf}
}

@article{Anonymous92b,
   key = {Anonymous92b},
   title = {Wafer scale integration},
   journal = {IEEE Computer},
   volume = {25},
   number = {4},
   month = apr,
   year = {1992},
   keywords = {WSI, special issue}
}

@article{Woo92,
   author = {TYC Woo and SS Lam},
   title = {Authentication for distributed systems},
   journal = {IEEE Computer},
   volume = {25},
   number = {1},
   month = jan,
   year = {1992},
   keywords = {security, encryption, signatures}
}

@article{Roy92,
   author = {PV Roy and AM Despain},
   title = {High-performance logic programming with the Aquarius Prolog compiler},
   journal = {IEEE Computer},
   volume = {25},
   number = {1},
   pages = {54-70},
   month = jan,
   year = {1992},
   keywords = {Berkeley Abstract Machine (BAM), WAM}
}

@phdthesis{Kishon92,
   author = {AS Kishon},
   title = {Theory and art of semantics-directed program execution monitoring},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, Yale University},
   year = {1992},
   keywords = {profiling, monitoring, partial evaluation, instrumentation}
}

@article{Turek92,
   author = {J Turek and D Shasha},
   title = {The many faces of consensus in distributed systems},
   journal = {IEEE Computer},
   volume = {25},
   number = {6},
   pages = {8-17},
   month = jun,
   year = {1992},
   keywords = {distributed algorithms, termination, fault tolerance; good survey}
}

@article{Mirchandaney89,
   author = {R Mirchandaney and D Towsley and JA Stankovic},
   title = {Analysis of the effects of delays on load sharing},
   journal = {IEEE Trans Computers},
   volume = {C-38},
   number = {11},
   pages = {1513-1525},
   month = nov,
   year = {1989},
   keywords = {scheduling, resource management, load balancing, parallel systems}
}

@techreport{Nipkow92,
   author = {T Nipkow and C Prehofer},
   title = {Type checking type classes},
   type = {Dept of Informatics, University of Munich},
   year = {1992},
   keywords = {unification with constraint solving, Haskell}
}

@techreport{Barendregt92,
   author = {HP Barendregt and {\em et al}},
   title = {Programming clustered parallel reduction machines},
   type = {$|$DCS$|$, Univ of Nijmegen},
   month = jun,
   year = {1992},
   keywords = {survey of some Dutch work; useful refs; divide-and-conquer, ssnadwich, FCG, FAST, G-hinge, VLIW}
}

@techreport{Aharoni92,
   author = {G Aharoni and DG Feitelson and A Barak},
   title = {A runtime algorithm for managing the granularity of parallel functional programs},
   type = {$|$DCS$|$, Hebrew Univ of Jerusalem},
   year = {1992},
   keywords = {on-line algorithm, competitive algorithm, optimality result, scheduling, resource management}
}

@article{Tofte90,
   author = {M Tofte},
   title = {Type inference for polymorphic references},
   journal = {Information and Computation},
   volume = {89},
   number = {1},
   month = nov,
   year = {1990},
   keywords = {ref types, weak type variables, expansive, SML}
}

@inproceedings{achten+:high-level-io,
   author = {PM Achten and JHG van Groningen and MJ Plasmeijer},
   title = {High-level specification of {I}/{O} in functional languages},
   crossref = "Glasgow92",
   pages = "1-17",
   keywords = {linear types, Macintosh implementation, input output}
}

@incollection{Swarup??,
   author = {V Swarup and US Reddy and E Ireland},
   title = {Assignments for applicative languages},
   crossref = "fpca91",
   pages = {192-214},
   keywords = {references, weak types, inference}
}

@techreport{PeytonJones88b,
   author = {SL {Peyton~Jones}},
   title = {Converting streams to continuations and vice versa},
   type = {Electronic mail on Haskell mailing list},
   month = oct,
   year = {1988},
   keywords = {dialogues, input output, Haskell, email}
}

@techreport{Ireland92a,
   author = {E Ireland},
   title = {Expressiveness of purely functional {I}/{O}},
   type = {Electronic mail on Haskell mailing list},
   month = mar,
   year = {1992},
   keywords = {email, input, output, dialogues, continuations}
}

@techreport{Ireland89,
   author = {E Ireland},
   title = {Writing interactive and file-processing functional programs},
   type = {MSc thesis, Victoria University of Wellington},
   month = mar,
   year = {1989},
   keywords = {continuations, input, output, I/O, assignment, references}
}

@phdthesis{Wakeling90,
   author = {D Wakeling},
   title = {Linearity and laziness},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, University of York},
   month = nov,
   year = {1990},
   keywords = {arrays, update in place, linear types}
}

@incollection{ODonnell85,
   author = {JT O'Donnell},
   title = {Dialogues: a basis for constructing programming environments},
   booktitle = {Proc ACM Symposium on Language Issues in Programming Environments, Seattle},
   pages = {19-27},
   publisher = {ACM},
   year = {1985},
   keywords = {input/output}
}

@techreport{Hudak92b,
   author = {P Hudak},
   title = {Continuation-based mutable abstract datatypes, or how to have your state and munge it too},
   type = {YALEU/DCS/RR-914, $|$DCS$|$, Yale University},
   month = jul,
   year = {1992},
   keywords = {CMADT, monads arrays, state}
}

@incollection{Bloss??,
   author = {A Bloss},
   title = {Update analysis and the efficient implementation of functional aggregates},
   crossref = "fpca89",
   keywords = {arrays, update in place, single threading}
}

@article{Girard87,
   author = {J-Y Girard},
   title = {Linear Logic},
   journal = {Theoretical Computer Science},
   volume = {50},
   pages = {1-102},
   year = {1987},
   keywords = {types}
}

@article{Plotkin91,
   author = {G Plotkin},
   title = {Dynamic typing in a statically typed language},
   journal = toplas,
   volume = {13},
   number = {2},
   month = apr,
   year = {1991},
   keywords = {persistence, typecase, coercion}
}

@techreport{Hartel92,
   author = {PH Hartel and WG Vree},
   title = {Arrays in a lazy functional language --- a case study: the fast Fourier transform},
   type = {CS-92-02, $|$DCS$|$, University of Amsterdam},
   month = may,
   year = {1992},
   keywords = {FFT, scientific programs, program transformation}
}

@inproceedings{Wilson92a,
   author = {PR Wilson},
   title = {Uniprocessor garbage collection techniques},
   booktitle = {Proc Workshop on Memory Management, St Malo},
   month = sep,
   year = {1992},
   keywords = {Useful survey, incremental, mark-sweep, copying, generational}
}

@article{Slbracebacksla90,
   author = {H Søndergaard and P Sestoft},
   title = {Referential Transparency, Definiteness and Unfoldability},
   journal = {Acta Informatica},
   volume = {27},
   pages = {505-517},
   year = {1990},
   keywords = {Something to do with non-determinism}
}

@article{Slbracebacksla93,
   author = {H Søndergaard and P Sestoft},
   title = {Non-Determinism in Functional Languages},
   journal = {Computer Journal},
   year = {1993}
}

@book{bird-and-wadler,
   author = {R Bird and PL Wadler},
   title = {Introduction to Functional Programming},
   publisher = {Prentice Hall},
   year = {1988},
   keywords = {intro to fun langs}
}

@inproceedings{Hughes90b,
   author = {J. Hughes and J. Launchbury},
   title = {Towards Relating Forwards and Backwards Analyses.},
   booktitle = {Glasgow Workshop on Functional Programming},
   publisher = {Springer-Verlag},
   year = {1990}
}

@phdthesis{Hunt91,
   author = {Sebastian Hunt},
   title = {Abstract Interpretation of Functional Languages : From Theory to Practice},
   type = {Ph.{D}. Thesis},
   number = {Dept of Computing, Imperial College, London},
   month = oct,
   year = {1991},
   keywords = {frontiers}
}

@book{Davie92,
   author = {A J T Davie},
   title = {An Introduction to Functional Programming Systems Using Haskell},
   publisher = {Cambridge},
   year = {1992},
   keywords = {book, intro to fun langs, uses haskell}
}

@techreport{Ostheimer92,
   author = {Gerald Ostheimer},
   title = {Parallel Functional Computation on {STAR}:{DUST}},
   type = {Dept Comp Sci, St Andrews Univ,},
   year = {1992}
}

@inproceedings{Abramsky85,
   author = {S Abramsky},
   title = {Strictness analysis and polymorphic invariance},
   booktitle = {Proceedings of the Workshop on Programs as Data Objects},
   year = {1985}
}

@book{Wall91,
   author = {Larry Wall and Randal L. Schwartz},
   title = {Programming Perl},
   publisher = {O'Reilly  Associates, Inc.},
   year = {1991},
   keywords = {the book on perl}
}

@incollection{Santos??,
   author = {Andre Santos},
   title = {On program transformation in the Glasgow Haskell Compiler},
   booktitle = {$|$Glasgow92$|$},
   pages = {240-251}
}

@inproceedings{Gill92,
   author = {A Gill},
   title = {Using Strictness (in the Glasgow Haskell Compiler)},
   booktitle = {Draft Proceedings of the 1992 Glasgow Workshop on Functional Programming, Ayr},
   year = {1992}
}

@incollection{partain:nofib,
   author = {WD Partain},
   title = {The {\tt nofib} Benchmark Suite of {Haskell} Programs},
   crossref = "glasgow92",
   pages = {195-202}
}

@incollection{Sansom??,
   author = {P Sansom and SL {Peyton~Jones}},
   title = {Profiling lazy functional programs},
   booktitle = {$|$Glasgow92$|$},
   pages = {227-239},
   keywords = {cost centres}
}

@techreport{Cupitt89,
   author = {J Cupitt},
   title = {A brief walk through Kaos},
   type = {TR 58, Computing Lab, University of Kent},
   month = feb,
   year = {1989},
   keywords = {functional operating systems, I/O, continuations, processes}
}

@techreport{Muller92,
   author = {HL Muller and KG Langendoen and LO Hertzberger},
   title = {MiG: simulating parallel functional programs on hierachical cache architectures},
   type = {CS-92-04, $|$DCS$|$, University of Amsterdam},
   month = jun,
   year = {1992},
   keywords = {address trace}
}

@techreport{Langendoen92,
   author = {KG Langendoen and PH Hartel},
   title = {{FCG}: a code generator for lazy functional languages},
   type = {CS-92-03, $|$DCS$|$, University of Amsterdam},
   month = may,
   year = {1992},
   keywords = {generates C, doesn't look very good}
}

@inproceedings{Perry91a,
   author = {N Perry},
   title = {Non-strict {FPM}: a high-performance lazy abstract machine},
   booktitle = {Proc 15th Australian Computer Science Conference},
   year = {1991},
   keywords = {compilers, Hope, strictness analysis}
}

@inproceedings{Perry:existentials,
   author = {N Perry},
   title = {An extended type system supporting polymorphism, abstract data types, overloading and inference},
   booktitle = {Proc 15th Australian Computer Science Conference},
   year = {1991},
   keywords = {existential types}
}

@inproceedings{Perry91c,
   author = {N Perry},
   title = {Towards a concurrent object/process oriented functional language},
   booktitle = {Proc 15th Australian Computer Science Conference},
   year = {1991},
   keywords = {I/O continuations, coroutines, operating systems, processes}
}

@article{Anonymous92c,
   key = {Anonymous92c},
   title = {Special section on encryption standards},
   journal = cacm,
   volume = {35},
   number = {7},
   month = jul,
   year = {1992},
   keywords = {digital signatures, public key cryptography}
}

@phdthesis{Redelmeier84,
   author = {DH Redelmeier},
   title = {Towards practical functional programming},
   type = {Ph.{D}. Thesis},
   number = {Computer Systems Research Group, University ofToronto},
   month = may,
   year = {1984},
   keywords = {input output, continuations, germs of good ideas}
}

@techreport{Mycroft92,
   author = {A Mycroft},
   title = {Incremental polymorphic type checking with update},
   type = {Computer Lab, University of Cambridge},
   year = {1992},
   keywords = {hindley-milner, interactive systems}
}

@techreport{Marsh92,
   author = {AJ Marsh and SH Lavington},
   title = {A synthetic join benchmark for evaluating {DBMS}/{KBS} hardware and software},
   type = {CSM-173, $|$DCS$|$, University of Essex},
   month = jul,
   year = {1992},
   keywords = {join, database, kernel}
}

@article{Baker92b,
   author = {H Baker},
   title = {Lively linear Lisp},
   journal = {SIGPLAN Notices},
   volume = {27},
   number = {8},
   pages = {89-98},
   month = aug,
   year = {1992},
   keywords = {garbage collection, linear logic, copying}
}

@article{Eckart92,
   author = {JD Eckart},
   title = {A cellular automata simulation system},
   journal = {SIGPLAN Notices},
   volume = {27},
   number = {8},
   pages = {99-106},
   month = aug,
   year = {1992},
   keywords = {game of life}
}

@phdthesis{Cupitt92,
   author = {J Cupitt},
   title = {The design and implementation of an operating system in a functional language},
   type = {Ph.{D}. Thesis},
   number = {Computing Lab, University of Kent},
   month = aug,
   year = {1992},
   keywords = {kaos, non-determinism, continuations, processes, streams, input/output}
}

@techreport{aharoni92a,
   author = {G aharoni and DG Feitelson and A Barak},
   title = {A runtime algorithm for managing the granularity of parallel functional programs},
   type = {$|$DCS$|$, University of Jerusalem},
   month = aug,
   year = {1992},
   keywords = {task creation, migration, scheduling, sparking,online algorithm}
}

@techreport{Burton92,
   author = {FW Burton and RD Cameron},
   title = {Views revisited},
   type = {Simon Fraser Univ},
   month = aug,
   year = {1992},
   keywords = {abstract data types}
}

@techreport{Jones92a,
   author = {M Jones},
   title = {Constructor classes (slides)},
   type = {Programming Research Group, Oxford},
   month = aug,
   year = {1992},
   keywords = {type classes, overloading, Haskell}
}

@techreport{Augustsson92,
   author = {L Augustsson},
   title = {Existential types exist},
   type = {Chalmers University},
   month = aug,
   year = {1992},
   keywords = {Similar to existential types in Hope}
}

@article{ohori:polymorphic-records,
  author = "A Ohori",
  title = "A polymorphic record calculus and its compilation",
  journal = toplas,
  volume = 17, 
  issue = 6, month = nov, year = 1995,
  pages = "844-895"
}
 
@techreport{Ohori92,
   author = {A Ohori and K Kato},
   title = {Semantics for communications primitives in a polymorphic language},
   type = {OKI},
   month = aug,
   year = {1992},
   keywords = {distributed systems, type systems, parallelism}
}

@techreport{Henderson92,
   author = {P Henderson},
   title = {The {CSP} stepper in Enact: an executable specification},
   type = {$|$DCS$|$, University of Southampton},
   month = jul,
   year = {1992},
   keywords = {object-oriented and functional styles, specification language}
}

@techreport{Augustsson92a,
   author = {L Augustsson and M Rittri and D Synek},
   title = {Splitting infinite sets of unique names by hidden state changes},
   type = {Report 67, Programming Methodology Group, Chalmers University},
   month = may,
   year = {1992},
   keywords = {name supply, monad plumbing, gensym, unique names}
}

@techreport{Howe92,
   author = {DB Howe},
   title = {Experiments with strict {STG} code},
   type = {Dept of Computing, Imperial College},
   month = sep,
   year = {1992},
   keywords = {spineless tagless, evaluation transformers}
}

@article{Lazird92,
   author = {M Lazird},
   title = {A comparison of three current superscalar designs},
   journal = {Computer Architecture News},
   volume = {20},
   number = {3},
   month = jun,
   year = {1992},
   keywords = {Metaflow Lightning SPARC, IBM RS/6000, Intel i960MM, pipelining, branch prediction}
}

@techreport{Hughes92,
   author = {RJM Hughes},
   title = {A loop-detecting interpreter for lazy higher-order programs},
   type = {$|$DCS$|$, Chalmers University},
   month = sep,
   year = {1992},
   keywords = {fixpoints, concrete data structures, pending analysis, abstract interpretation, sequential algorithms}
}

@techreport{Burn92,
   author = {GL Burn and D Le Metayer},
   title = {{CPS} translation and the correctness of optimising compilers},
   type = {DoC92/20, Dept of Computing, Imperial College},
   month = sep,
   year = {1992},
   keywords = {compilation by transformation, continuation passing, strictness}
}

@techreport{Cartwright92,
   author = {R Cartwright and M Fagan},
   title = {Soft typing},
   type = {$|$DCS$|$, Rice University},
   month = aug,
   year = {1992},
   keywords = {between dynamic and static typing}
}

@article{Padua86,
   author = {DA Padua and MJ Wolfe},
   title = {Advanced compiler optimisations for supercomputers},
   journal = cacm,
   volume = {29},
   number = {12},
   pages = {1184-1201},
   month = dec,
   year = {1986},
   keywords = {short, definitive, vector processor, dependencies, loops, FORTRAN}
}

@techreport{Langendoen92a,
   author = {K Langendoen and VG Vree},
   title = {Parallel implementations of lazy functional languages},
   type = {University of Amsterdam},
   month = jul,
   year = {1992},
   keywords = {survey,distributed, GRIP}
}

@article{Samuelson92a,
   author = {P Samuelson},
   title = {Updating the copyright look and feel lawsuits},
   journal = cacm,
   volume = {35},
   number = {9},
   pages = {25},
   month = sep,
   year = {1992},
   keywords = {user interface, spreadsheets, white coats}
}

@article{Hansen92,
   author = {PB Hansen},
   title = {Householder reduction of linear equations},
   journal = {ACM Computing Surveys},
   volume = {24},
   number = {2},
   pages = {185-194},
   month = jun,
   year = {1992},
   keywords = {gaussian elimination, simultaneous, unconditionally stable}
}

@article{McGeoch92,
   author = {C McGeoch},
   title = {Analysing algorithms by simulation: variance reduction techniques and simulation speedups},
   journal = {ACM Computing Surveys},
   volume = {24},
   number = {2},
   pages = {195-212},
   month = jun,
   year = {1992},
   keywords = {random numbers, move to front, searching}
}

@article{Feo90a,
   author = {JT Feo and DC Cann and RR Oldehoeft},
   title = {A report on the Sisal language project},
   journal = {Journal of Parallel and Distributed Computing},
   volume = {10},
   number = {4},
   pages = {349-366},
   month = dec,
   year = {1990},
   keywords = {loops, vector supercomputers, data flow}
}

@article{Boyle92,
   author = {JM Boyle and TJ Harmer},
   title = {A practical functional program for the Cray {X}-{MP}},
   journal = {Journal of Functional Programming},
   volume = {2},
   number = {1},
   pages = {81-126},
   month = jan,
   year = {1992},
   keywords = {went faster than FORTRAN!  Tampr, transformation, arrays}
}

@incollection{Jouvelot91,
   author = {P Jouvelot and D Gifford},
   title = {Algebraic reconstruction of types and effects},
   booktitle = {18'th ACM Symposium on Principles of Programming Languages (POPL), Orlando},
   publisher = {ACM},
   month = jan,
   year = {1991},
   keywords = {side effects}
}

@incollection{Reynolds81,
   author = {J Reynolds},
   editor = {de Bakker and van Vliet},
   title = {The essence of Algol},
   booktitle = {Algorithmic Languages},
   pages = {345-372},
   publisher = {North Holland},
   year = {1981}
}

@article{dybvig:syntactic-abstraction,
  author = "KR Dybvig and R Hieb and C Bruggeman",
  title = "Syntactic abstraction in {Scheme}",
  journal = lasc,
  volume = 5,
  pages = "295-326",
  year = 1993,
  keywords = {hygenic macros}
}

@incollection{Reynolds89,
   author = {J Reynolds},
   title = {Syntactic control of interference, part {II}},
   booktitle = {International Colloquium on Automata, Languages, and Programming},
   year = {1989},
   keywords = {side effects, types}
}

@book{Kernighan78,
   author = {BW Kernighan and DM Ritchie},
   title = {The {C} programming language},
   publisher = {Prentice Hall},
   year = {1978}
}

@inproceedings{Gifford86,
   author = {DK Gifford and JM Lucassen},
   title = {Integrating functional and imperative programming},
   booktitle = {ACM Conference on Lisp and Functional Programming, MIT},
   pages = {28-38},
   publisher = {ACM},
   month = aug,
   year = {1986},
   keywords = {effects}
}

@article{Bell92,
   author = {G Bell},
   title = {Ultracomputers: a teraflop before its time},
   journal = cacm,
   volume = {35},
   number = {8},
   pages = {26-47},
   month = aug,
   year = {1992},
   keywords = {architecture, KSR, Kendal Square, Connection machine, shared memory}
}

@article{Creecy92,
   author = {RH Creecy and BM Masand and SJ Smith and DL Waltz},
   title = {Trading {MIPS} and memory for knowledge engineering},
   journal = cacm,
   volume = {35},
   number = {8},
   pages = {48-64},
   month = aug,
   year = {1992},
   keywords = {Connection machine; nice data-parallel algorithm for fuzzy classification}
}

@article{Cann92,
   author = {D Cann},
   title = {Retire Fortran? {A} debate rekindled.},
   journal = cacm,
   volume = {35},
   number = {8},
   pages = {81-89},
   month = aug,
   year = {1992},
   keywords = {Sisal on a Cray competes with Fortran, dataflow, scientific programming}
}

@article{Anonymous92d,
   key = {Anonymous92d},
   title = {Special issue on supercomputing},
   journal = cacm,
   volume = {35},
   number = {8},
   month = aug,
   year = {1992},
   keywords = {Compiling for vector processors, loop scheduling, distributed-memory machines, dependence analysis}
}

@article{Hagersten??,
   author = {E Hagersten and A Landin and S Haridi},
   title = {{DDM}: a cache-only memory architecture},
   journal = {IEEE Computer},
   volume = {25},
   number = {9},
   pages = {44-56},
   keywords = {directory caching, parallel processing}
}

@article{Suen??,
   author = {TTY Suen and JSK Wong},
   title = {Efficient task migration algorithm for distributed systems},
   journal = {IEEE Trans Parallel and Distributed Systems},
   volume = {3},
   number = {4},
   pages = {488-499},
   keywords = {resource management, scheduling}
}

@phdthesis{Aasa92,
   author = {A Aasa},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, Chalmers University},
   year = {1992},
   keywords = {User-defined syntax distfix, yacc, lex, automatic parser generation}
}

@article{Anonymous92e,
   key = {Anonymous92e},
   title = {Three articles on encryption standards},
   journal = cacm,
   volume = {35},
   number = {7},
   month = jul,
   year = {1992},
   keywords = {RSA, public key}
}

@article{Sinha92,
   author = {A Sinha},
   title = {Client-server computing: current technology review},
   journal = cacm,
   volume = {35},
   number = {7},
   pages = {77-97},
   month = jul,
   year = {1992},
   keywords = {X windows, Novell, PC, network}
}

@article{Soloway92,
   author = {E Soloway},
   title = {Buying computers for your school: a guide for the perplexed},
   journal = cacm,
   volume = {35},
   number = {7},
   month = jul,
   year = {1992},
   keywords = {PCs, information technology strategy}
}

@article{DeWitt92,
   author = {D DeWitt and J Gray},
   title = {Parallel database systems: the future of high-performance database systems},
   journal = cacm,
   volume = {35},
   number = {6},
   pages = {85-98},
   month = jun,
   year = {1992}
}

@article{Fergueson92,
   author = {DE Fergueson},
   title = {Bit-tree: a data structure for fast file processing},
   journal = cacm,
   volume = {35},
   number = {6},
   pages = {114-120},
   month = jun,
   year = {1992},
   keywords = {B-trees, lookup, search}
}

@article{Heckel92,
   author = {P Heckel},
   title = {Debunking the software patent myths},
   journal = cacm,
   volume = {35},
   number = {6},
   pages = {121-140},
   month = jun,
   year = {1992},
   keywords = {white coats, intellectual property; see also p33.}
}

@article{Herlihy92,
   author = {MP Herlihy and JEB Moss},
   title = {Lock-free garbage collection for multiprocessors},
   journal = {IEEE Trans Parallel and Distributed Systems},
   volume = {3},
   number = {3},
   pages = {304-311},
   month = may,
   year = {1992},
   keywords = {storage management, global gc}
}

@article{Alkalaj92,
   author = {L Alkalaj and T Lang and MD Ercegovac},
   title = {Architectural support for goal management in Flat Concurrent Prolog},
   journal = {IEEE Computer},
   volume = {25},
   number = {8},
   pages = {34-48},
   month = aug,
   year = {1992},
   keywords = {parallel}
}

@inproceedings{launchbury:call-by-need,
   author = {J Launchbury},
   title = {A natural semantics for lazy evaluation},
   crossref = "popl93",
   pages = {144-154},
   keywords = {1993 STG language, operational semantics}
}

@techreport{Hughes92a,
   author = {RJM Hughes},
   title = {Pretty-printing: an exercise in functional programming},
   type = {$|$DCS$|$, Chalmers University},
   month = aug,
   year = {1992},
   keywords = {program transformation and proof, reasoning}
}

@techreport{Muylaert-Filho92,
   author = {JA Muylaert-Filho and GL Burn},
   title = {Continuation-passing transformation and abstract interpretation},
   type = {DOC 92/21, Dept of Computing, Imperial College},
   month = aug,
   year = {1992},
   keywords = {CPS gives more information to abstract interpretation}
}

@techreport{Burn92a,
   author = {GL Burn},
   title = {Properties of program analysis techniques},
   type = {DOC 92/19, Dept of Computing, Imperial College},
   month = jun,
   year = {1992},
   keywords = {comparing abstract interpretation, backwards analysis, projections, type inference}
}

@techreport{While92,
   author = {L While and AJ Field},
   title = {Incremental garbage collection for the Spineless Tagless {G}-machine},
   type = {Dept of Computing, Imperial College},
   month = aug,
   year = {1992},
   keywords = {STG machine, gc, real time}
}

@article{baker77,
  author = {Henry Baker},
  title = {The incremental garbage collection of processes},
  journal = sigplan-notices,
  volume = 12,
  issue = 8,
  year = 1977,
  pages = {55-59}
}

@techreport{Jones92b,
   author = {MP Jones},
   title = {Efficient implementation of type class overloading},
   type = {Programming Research Group, Oxford},
   month = mar,
   year = {1992},
   keywords = {very good paper, dictionaries, superclasses, laziness, Haskell, Gofer}
}

@incollection{Hogen92,
   author = {G Hogen and A Kindler and R Loogen},
   title = {Automatic parallelisation of lazy functional programs},
   booktitle = {$|$ESOP$|$},
   pages = {254-268},
   publisher = {Springer LNCS 582},
   year = {1992},
   keywords = {strictness analysis, PAM, letpar, granularity, evaluation transformers}
}

@techreport{Morrisett92,
   author = {JG Morrisett and A Tolmach},
   title = {A portable multiprocessor interface for Standard {ML} of New Jersey},
   type = {CMU-CS-92-155, Carnegie Mellon University},
   month = jun,
   year = {1992},
   keywords = {threads, kernel, operating system, Silicon Graphics, synchronisation, scheduling}
}

@article{Agarwal92,
   author = {A Agarwal},
   title = {Performance tradeoffs in multithreaded processors},
   journal = {IEEE Trans on Parallel and Distributed Systems},
   volume = {3},
   number = {5},
   pages = {525-539},
   month = sep,
   year = {1992},
   keywords = {P-RISC, Alewife, April, synchronisation, network, cache effects}
}

@incollection{Hosking92,
   author = {AL Hosking and JEB Moss and D Stefanovic},
   title = {A comparative performance evaluation of write barrier implementation},
   booktitle = {OOPSLA 92},
   publisher = {ACM},
   month = oct,
   year = {1992},
   keywords = {storage management, generational},
   note = {Published as SIGPLAN Notices, volume 27, number 10}
}

@techreport{Gansner91,
   author = {ER Gansner and JH Reppy},
   title = {eXene},
   type = {Proc CMU Workshop on SML},
   year = {1991},
   keywords = {X windows for SML, GUI, interaction, I/O}
}

@article{Anonymous92f,
   key = {Anonymous92f},
   title = {Special issue on object-oriented computing},
   journal = {IEEE Computer},
   volume = {25},
   number = {10},
   month = oct,
   year = {1992},
   keywords = {inheritence, c++, Eiffel}
}

@article{Feldman92,
   author = {Y Feldman and E Shapiro},
   title = {Spatial machines: a more realistic approach to parallel comp[utation},
   journal = cacm,
   volume = {35},
   number = {10},
   pages = {60-73},
   month = oct,
   year = {1992},
   keywords = {Cellular automata, locality}
}

@article{Baeza-Yates92,
   author = {R Baeza-Yates and GH Gonnet},
   title = {A new approach to text searching},
   journal = cacm,
   volume = {35},
   number = {10},
   pages = {74-82},
   month = oct,
   year = {1992},
   keywords = {grep, character classes, boyer-moore, knuth-morris-pratt}
}

@article{Wu92,
   author = {S Wu and U Manber},
   title = {Fast text searching allowing errors},
   journal = cacm,
   volume = {35},
   number = {10},
   pages = {83-91},
   month = oct,
   year = {1992},
   keywords = {grep, character classes, boyer-moore, knuth-morris-pratt}
}

@techreport{Clayman91,
   author = {S Clayman and D Parrott and C Clack},
   title = {A profiling technique for lazy higher-order functional programs},
   type = {$|$DCS$|$, University College London},
   month = nov,
   year = {1991},
   keywords = {lexical scoping, time profiles}
}

@misc{Hudak92c,
   author = {P Hudak and PL Wadler},
   title = {Electronic mail about state in functional languages},
   month = may,
   year = {1992},
   keywords = {arrays, monads, continuations}
}

@techreport{Harrison92,
   author = {WL Harrison and Z Hammarguellat},
   title = {A program's eye view of Mirprac},
   type = {CSRD, University of Illinois},
   month = may,
   year = {1992},
   keywords = {dependence analysis, symbolic programs, intermediate code, compilation, parallelism}
}

@techreport{Harrison92a,
   author = {WL Harrison},
   title = {Generalised iteration space and the parallelisation of symbolic programs},
   type = {CSRD, University of Illinois},
   month = may,
   year = {1992},
   keywords = {dependence analysis, intermediate code, compilation, parallelism}
}

@techreport{Vree92,
   author = {WG Vree and PH Hartel},
   title = {Fixed point computation for parallelism},
   type = {$|$DCS$|$, University of Amsterdam},
   month = jul,
   year = {1992},
   keywords = {stream processing, I think}
}

@techreport{Hofman92,
   author = {R Hofman and K langendoen and WG Vree},
   title = {Scheduling performance under the influence of an optimisation for shared-memory graph reduction},
   type = {$|$DCS$|$, University of Amsterdam},
   year = {1992},
   keywords = {resource management, stack allocation, divide and conquer, parallelism}
}

@article{Esponda92,
   author = {M Esponda and R Rojas},
   title = {A graphical comparison of {RISC} processors},
   journal = {Computer Architecture News},
   volume = {20},
   number = {4},
   pages = {2-8},
   month = sep,
   year = {1992},
   keywords = {architecture, trends, tradeoff}
}

@article{Conte91,
   author = {TM Conte and WW Hwu},
   title = {A brief survey of benchmark usage in the architecture community},
   journal = {Computer Architecture News},
   volume = {19},
   number = {4},
   pages = {37-44},
   month = jun,
   year = {1991},
   keywords = {SPEC, kernel, synthetic}
}

@article{Anonymous92g,
   key = {Anonymous92g},
   title = {Special issue on hot chips},
   journal = {IEEE Micro},
   month = apr,
   year = {1992},
   keywords = {MIPS R4000, Motorola 88110, J-machine Dally MIT threaded code}
}

@article{Anonymous92h,
   key = {Anonymous92h},
   title = {Special issue on Ada},
   journal = cacm,
   volume = {35},
   number = {11},
   month = nov,
   year = {1992},
   keywords = {package, modules}
}

@techreport{Beemster92,
   author = {M Beemster},
   title = {Strictness optimisation for spineless machines},
   type = {$|$DCS$|$, Univ of Amsterdam},
   month = nov,
   year = {1992},
   keywords = {STG machine, analysis, eval, polymorphic seq}
}

@techreport{Milner91,
   author = {R Milner},
   title = {Computer Science: The Core {IT} Research Discipline},
   type = {Lab for the Foundations of Computer Science, Edinburgh},
   month = jun,
   year = {1991},
   keywords = {submitted to Fairclough,SERC; others contributed}
}

@article{PeytonJones92b,
   author = {SL {Peyton~Jones}},
   title = {{UK} research in functional programming},
   journal = {SERC Bulletin},
   volume = {4},
   number = {11},
   month = {Autumn},
   year = {1992},
   keywords = {overview}
}

@incollection{Marlow??,
   author = {S Marlow and PL Wadler},
   title = {Deforestation for higher-order functions},
   booktitle = {$|$Glasgow92$|$},
   pages = {154-165},
   keywords = {fold step}
}

@incollection{Reynolds83,
   author = {JC Reynolds},
   editor = {REA Mason},
   title = {Types, abstraction and parametric polymorphism},
   booktitle = {Information Processing 83},
   pages = {513-523},
   publisher = {North-Holland},
   year = {1983},
   keywords = {theorems for free}
}

@incollection{Hall??,
   author = {C Hall and K Hammond and W Partain and SL {Peyton~Jones} and PL Wadler},
   title = {The Glasgow Haskell Compiler: {A} Retrospective},
   booktitle = {$|$Glasgow92$|$},
   keywords = {ghc overview}
}

@article{Augustsson89b,
   author = {L Augustsson and T Johnsson},
   title = {The Chalmers Lazy-{ML} Compiler},
   journal = {The Computer Journal},
   volume = {32},
   number = {2},
   pages = {127-141},
   month = apr,
   year = {1989},
   keywords = {lml compiler overview}
}

@techreport{Davis87,
   author = {K Davis},
   title = {Deforestation: Transformation of functional programs to eliminate intermed-ate trees},
   type = {MSc Thesis, Programming Research Group, Oxford University},
   month = sep,
   year = {1987}
}

@incollection{Wadler87f,
   author = {Phil Wadler},
   editor = {Simon {Peyton~Jones}},
   title = {List Comprehensions},
   booktitle = {The Implementation of Functional Programming Languages},
   pages = {127-138},
   publisher = {Prentice Hall},
   year = {1987}
}

@incollection{Ferguson88,
   author = {AB Ferguson and PL Wadler},
   title = {When will deforesation stop?},
   booktitle = {Functional Programming, Glasgow 1988},
   year = {1988}
}

@article{Cardelli91,
   author = {L Cardelli and G Longo},
   title = {A semantic basis for Quest},
   journal = jfp,
   volume = {1},
   number = {4},
   pages = {417-458},
   month = oct,
   year = {1991}
}

@techreport{Sansom92,
   author = {PM Sansom and SL {Peyton~Jones}},
   title = {Generations of lazy functional languages},
   type = {Department of Computing Science, University of Glasgow},
   month = dec,
   year = {1992},
   keywords = {generational gc, updates}
}

@incollection{Turchin88,
   author = {VF Turchin},
   editor = {Bj\o{}rner and Ershov and Jones},
   title = {The algorithm of generalization in the supercompiler},
   booktitle = {Partial Evaluation and Mixed Computation},
   publisher = {North-Holland},
   year = {1988},
   keywords = {generalisation PEMC}
}

@article{Fokkinga91,
   author = {MM Fokkinga and E Meijer and J Jeuring and L Meertens},
   title = {A translation from attribute grammars to catamorphisms},
   journal = {The Squiggolist},
   volume = {2},
   number = {1},
   pages = {20-26},
   year = {1991}
}

@techreport{Langendoen92b,
   author = {KG Langendoen and WG Vree},
   title = {{FRATS}: a parallel reduction strategy for shared memory},
   type = {$|$DCS$|$, University of Amsterdam},
   year = {1992},
   keywords = {sandwich, divide and conquer, graph reduction, no inter-thread updates}
}

@article{Agrawal92,
   author = {A Agrawal and RB Garner},
   title = {{SPARC}: a scalable processor architecture},
   journal = {Future Generation Computer Systems},
   volume = {7},
   pages = {303-310},
   month = apr,
   year = {1992}
}

@article{Okuno92,
   author = {HG Okuno},
   title = {Experience of parallel {AI} Programming with parallel Lisp},
   journal = {Future Generation Computer Systems},
   volume = {7},
   pages = {211-220},
   month = apr,
   year = {1992}
}

@techreport{Lins92,
   author = {RD Lins and BO Lira},
   title = {Gamma-{CMC}: a novel way of compiling functional languages},
   type = {TR 19/92, Computer Lab, Univ of Kent},
   month = jul,
   year = {1992},
   keywords = {Based on categorical multicombinators.  IÕm dubious.}
}

@techreport{Nipkow92a,
   author = {T Nipkow and C Prehofer},
   title = {Type checking type classes},
   type = {TU Munchen},
   year = {1992},
   keywords = {Haskell type inference}
}

@incollection{Hammond??,
   author = {K Hammond},
   title = {The Spineless Tagless {G}-machine --- {NOT}!},
   booktitle = {$|$Glasgow92$|$},
   keywords = {Use a bit of the info pointer to indicate if evaluated}
}

@techreport{Marsh92a,
   author = {AJ Marsh and SH Lavington},
   title = {A synthetic join benchmark fo revaluating {DBMS}/{KBS} hardware and software},
   type = {CSM-173, $|$DCS$|$, University of Essex},
   month = jul,
   year = {1992}
}

@techreport{Nikhil89e,
   author = {R Nikhil},
   title = {Non-strictness, dataflow and lazy evaluation},
   type = {Lab for Computer Science, MIT},
   year = {1989},
   keywords = {distinguishes non-strict from lazy}
}

@techreport{Muylaert-Filho92a,
   author = {JA Muylaert-Filho and GL Burn},
   title = {Continuation semantics and abstract interpretation},
   type = {$|$DCS$|$, Imperial College},
   month = jul,
   year = {1992},
   keywords = {CPS then analysis gives more information than analysis alone}
}

@techreport{Burn92b,
   author = {GL Burn},
   title = {Properties of program analysis techniques},
   type = {$|$DCS$|$, Imperial College},
   month = jun,
   year = {1992},
   keywords = {Comparison of abstract interpretation, projections and type inference}
}

@techreport{Burn92c,
   author = {GL Burn and D Le Metayer},
   title = {Proving the correctness of compiler optimisations based on strictness analysis},
   type = {$|$DCS$|$, Imperial College},
   month = jul,
   year = {1992},
   keywords = {CPS, boxing, passing evaluated arguments}
}

@techreport{Meijer92,
   author = {E Meijer},
   title = {Compiler writers trick exposed as free theorem},
   type = {$|$DCS$|$, University of Utrecht},
   month = jul,
   year = {1992},
   keywords = {SteeleÕs UUO handler, as used in the C mini-interpreter}
}

@techreport{Chen92,
   author = {K Chen and M Odersky and P Hudak},
   title = {Type inference for parametric type classes},
   type = {$|$DCS$|$, Yale University},
   month = jun,
   year = {1992},
   keywords = {extends Haskell type classes to parameterise over type constructors}
}

@inproceedings{Furnari91,
   author = {M Furnari and C polychronopoulos},
   title = {Run-time management of Lisp parallelism and the hierachical task graph program  representation},
   booktitle = {Proc 4th Workshop on Parallelising Compilers and Languages, Santa Clara},
   month = aug,
   year = {1991},
   keywords = {sponsor model, scheduling, lazy task creation, resource control}
}

@techreport{Rittri92,
   author = {M Rittri},
   title = {Retrieving library identities via equational matching of types},
   type = {Report 65, PMG, Chalmers University},
   month = may,
   year = {1992},
   keywords = {Adds some corrections to earlier paper}
}

@techreport{Rittri92a,
   author = {M Rittri},
   title = {Retrieving library functions by unifying types modulo linear isomorphism},
   type = {Report 66, PMG, Chalmers University},
   month = may,
   year = {1992},
   keywords = {Improves earlier paper}
}

@techreport{Augustsson92b,
   author = {L Augustsson and M Rittri and D Synek},
   title = {Splitting infinite sets of unique names by hidden state changes},
   type = {Report 67, PMG, Chalmers University},
   month = may,
   year = {1992},
   keywords = {name supply; an ingenious solution}
}

@techreport{Siegel91,
   author = {EH Siegel and EC Cooper},
   title = {Implementing distributed Linda in Standard {ML}},
   type = {CMU-CS-91-151, $|$DCS$|$, Carnegie Mellon University},
   month = oct,
   year = {1991},
   keywords = {SML}
}

@techreport{Eekelen89a,
   author = {MCJD van Eekelen and EGJMH Nocker and MJ Plasmeijer and JEW Smetsers},
   title = {Concurrent Clean},
   type = {TR 89-18, $|$DCS$|$, University of Nijmegen},
   month = oct,
   year = {1989}
}

@techreport{Hicks91,
   author = {J Hicks},
   title = {Report on running Id applications on Monsoon},
   type = {MIT Lab for Computer Science},
   month = aug,
   year = {1991},
   keywords = {benchmarks, dataflow}
}

@techreport{Mendler??,
   author = {M Mendler and T Stroup},
   title = {Newtonian arbiters cannot be proven correct},
   type = {LFCS, Univ of Edinburgh},
   keywords = {metastability}
}

@proceedings{Juul90,
   editor = {NC Juul},
   title = {OOPSLA/ECOOP Ô90 Workshop on Garbage Collection in Object Oriented  Systems, Ottowa},
   month = oct,
   year = {1990},
   keywords = {a collection of short papers;  generational, storage management, mostly-copying  scheme, ambiguous roots; Bartlett, Wilson}
}

@techreport{Halstead90,
   author = {RH Halstead and DA Kranz},
   title = {A replay mechanism for mostly-functional parallel programs},
   type = {CRL 90/6, DEC Cambridge Research Lab},
   month = nov,
   year = {1990},
   keywords = {debugging, Lisp, logging}
}

@techreport{Cockett??,
   author = {R Cockett and T Fukushima},
   title = {About {CHARITY}},
   type = {$|$DCS$|$, Univ of Calgary},
   keywords = {Distributive categories}
}

@techreport{Nocker90,
   author = {E Nocker},
   title = {Strictness analysis using abstract reduction},
   type = {TR 90-14, $|$DCS$|$, University of Nijmegen},
   month = jul,
   year = {1990},
   keywords = {Clean}
}

@techreport{Bakel90,
   author = {S van Bakel},
   title = {A first attempt in polymorphic type assignment using intersection types},
   type = {TR 90-9, $|$DCS$|$, University of Nijmegen},
   month = may,
   year = {1990}
}

@techreport{Smetsers89,
   author = {JEW Smetsers},
   title = {Compiling Clean to abstract {ABC} machine code},
   type = {TR 89-20, $|$DCS$|$, University of Nijmegen},
   month = oct,
   year = {1989},
   keywords = {detailed}
}

@article{Appel89b,
   author = {AW Appel},
   title = {Runtime tags aren't necessary},
   journal = lasc,
   volume = {2},
   pages = {153-162},
   year = {1989},
   keywords = {GC uses runtime stack to figure out types of objects}
}

@techreport{Faxen91,
   author = {KF Faxen},
   title = {Algebraic subtypes},
   type = {Electronic mail},
   year = {1991},
   keywords = {Algebraic types omitting some constructors}
}

@techreport{Loogen90,
   author = {R Loogen},
   title = {Stack-based implementation of narrowing},
   type = {TR 90-4, RWTH Aachen},
   year = {1990},
   keywords = {WAM}
}

@techreport{Moreno-Navarro90,
   author = {JJ Moreno-Navarro and H Kuchen and R Loogen and R Rodriguez-Artalejo},
   title = {Lazy narrowing in a graph machine},
   type = {TR},
   number = {90-11},
   year = {1990},
   keywords = {WAM}
}

@techreport{Moreno-Navarro89,
   author = {JJ Moreno-Navarro and R Rodriguez-Artalejo},
   title = {Logic programming with functions and predicates: the language {BABEL}},
   type = {$|$DCS$|$, Univ of Madrid},
   month = mar,
   year = {1989}
}

@techreport{alrbrace89,
   author = {IA Mason {\em et al}},
   title = {Parallel list mapping operations},
   type = {Stanford University},
   year = {1989},
   keywords = {programming, bulk data types}
}

@techreport{George??,
   author = {L George and S Mantha and G Lindstrom},
   title = {CoF: a language for programming multiprocessors},
   type = {PPRG-89-lang-1, $|$DCS$|$, Univ of Utah},
   keywords = {logic variables, I-structures}
}

@techreport{Nipkow90,
   author = {T Nipkow and G Snelting},
   title = {Type classes and overloading resolution via order-sorted unification},
   type = {$|$DCS$|$, University of Cambridge},
   year = {1990},
   keywords = {Haskell}
}

@article{Zorn??,
   author = {B Zorn and D Grunwald},
   title = {Empirical measurements of six allocation-intensive {C} programs},
   journal = {SIGPLAN Notices},
   volume = {27},
   number = {12},
   keywords = {storage management, dynamic properties, lifetimes, imperative setting}
}

@article{Bryant92,
   author = {RE Bryant},
   title = {Symbolic boolean manipuation with ordered binary-decision diagrams},
   journal = {ACM Computing Surveys},
   volume = {24},
   number = {3},
   pages = {293-318},
   month = sep,
   year = {1992},
   keywords = {useful for finding fixpoints in abstract interpretation, perhaps}
}

@article{Milner93,
   author = {R Milner},
   title = {Elements of interaction},
   journal = cacm,
   volume = {36},
   number = {1},
   pages = {78-89},
   month = jan,
   year = {1993},
   keywords = {CCS, CSP, calculus, concurrency, pi-calculus}
}

@book{Forester94,
   author = {T Forester and P Morrison},
   title = {Computer ethics: cautionary tales and ethical dilemmas in computing},
   edition = {second},
   publisher = {MIT Press},
   year = {1994},
   keywords = {white coats, society, risks}
}

@book{Hoffman90,
   author = {LJ Hoffman},
   title = {Rogue programs: virsues, worms and trojan horses},
   publisher = {Van Nostrand Reinhold},
   year = {1990},
   keywords = {white coats, society, risks}
}

@book{Strunk??,
   author = {Strunk and White},
   title = {The elements of style},
   publisher = {MacMillan},
   keywords = {very very good}
}

@article{Kremien92,
   author = {O Kremien and J Kramer},
   title = {Methodical analysis of adaptive load sharing algorithms},
   journal = {IEEE Trans Parallel and Distributed Systems},
   volume = {3},
   number = {6},
   pages = {747-760},
   month = nov,
   year = {1992},
   keywords = {scheduling, resources}
}

@techreport{Wadler93,
   author = {PL Wadler},
   title = {Communication skills},
   type = {$|$DCS$|$, Univ of Glasgow},
   month = jan,
   year = {1993},
   keywords = {style, writing}
}

@misc{Patert80,
   author = {S Patert},
   title = {Mindstorms: children, computers and powerful ideas},
   year = {1980},
   keywords = {Logo}
}

@incollection{Hammarling92,
   author = {S Hammarling},
   editor = {AE Fincham and B Ford},
   title = {Development of numerical software libraries for vector and parallel machines},
   booktitle = {Parallel computation},
   publisher = {OUP},
   year = {1992},
   keywords = {NAG, BLAS, LINPACK, LAPACK}
}

@article{Cartwright92a,
   author = {R Cartwright and M Felleisen and RJ Fateman},
   title = {The semantics of program dependence Reply to an Editorial},
   journal = {ACM SIGSAM Bulletin},
   volume = {25},
   pages = {9-11},
   month = mar,
   year = {1992},
   keywords = {data flow, dependence graphs, compilation Reports the results of a test in which a compiled MacLisp floating-point program was faster than equivalent Fortran code. The numerical portion of the code was identical and MacLisp used a faster subroutine-call protocol.},
   note = {$|$DCS$|$, Rice University}
}

@phdthesis{Meijer92a,
   author = {E Meijer},
   title = {Calculating compilers},
   type = {Ph.{D}. Thesis},
   number = {University of Nijmegen},
   month = feb,
   year = {1992},
   keywords = {design space, abstract machines}
}

@techreport{Wand91,
   author = {M Wand},
   title = {Correctness of procedure representations},
   type = {$|$DCS$|$, Northeastern University},
   month = mar,
   year = {1991},
   keywords = {higher-order assembly language}
}

@incollection{Hannan??,
   author = {J Hannan},
   title = {Making abstract machines less abstract},
   crossref = "fpca91",
   pages = {618-635},
   keywords = {CAM, categorical}
}

@article{Wentworth90,
   author = {EP Wentworth},
   title = {Pitfalls of conservative collection},
   journal = spe,
   volume = {20},
   number = {7},
   pages = {719-727},
   year = {1990},
   keywords = {garbage storage management}
}

@inproceedings{Steele77a,
   author = {GL Steele},
   title = {Procedure call considered harmful},
   booktitle = {ACM National Conference},
   publisher = {ACM},
   year = {1977},
   keywords = {implementation}
}

@article{Anonymous93a,
   key = {Anonymous93a},
   title = {Digital's Alpha chip project},
   journal = cacm,
   volume = {36},
   number = {2},
   month = feb,
   year = {1993},
   keywords = {Several articles about Alpha.  Pipelining, RISC, superscalar}
}

@article{Anonymous93b,
   key = {Anonymous93b},
   title = {Within the whirlwind: a survey of the computer industry},
   journal = {The Economist},
   month = {27 Feb},
   year = {1993},
   keywords = {architecture, market, PCs}
}

@article{Nocker93,
   author = {E Nocker and S Smetsers},
   title = {Partially strict non-recursive data types},
   journal = jfp,
   volume = {3},
   number = {2},
   pages = {191-217},
   month = apr,
   year = {1993},
   keywords = {Clean, tuples, annotations}
}

@techreport{Appel92b,
   author = {A Appel and M Goncalves},
   title = {Hash-consing garbage collection},
   type = {Princeton University},
   month = dec,
   year = {1992},
   keywords = {Do hash cons at GC time only. Doesn't work well.}
}

@article{Ponder88,
   author = {CG Ponder and PC McGeer and A P-C Ng},
   title = {Are applicative languages inefficient?},
   journal = {SIGPLAN Notices},
   volume = {23},
   number = {6},
   pages = {135-139},
   month = jun,
   year = {1988},
   keywords = {Seven problems for which functional languages seems bad}
}

@article{runciman:heap-profiling-jfp,
   author = {C Runciman and D Wakeling},
   title = {Heap profiling of lazy functional programs},
   journal = jfp,
   volume = {3},
   number = {2},
   pages = {217-246},
   month = apr,
   year = {1993}
}

@article{Dennis84,
   author = {JB Dennis and GR Gao and K Todd},
   title = {Modelling the weather with a dataflow supercomputer},
   journal = {IEEE Trans Computers},
   month = jul,
   year = {1984},
   keywords = {applications}
}

@incollection{Bennett93,
   author = {A Bennett},
   title = {Locality and false sharing in coherent-cache parallel graph reduction},
   booktitle = {$|$Parle93$|$},
   month = jun,
   year = {1993},
   keywords = {sharing of cache lines, shared memory}
}

@techreport{Hicks93,
   author = {J Hicks and D Chiou and BS Ang and Arvind},
   title = {Performance studies for the Monsoon dataflow processor},
   type = {CSG Memo 345-2, MIT Lab for Computer Science},
   month = oct,
   year = {1993},
   keywords = {simple, paraffins}
}

@misc{Hare??,
   author = {AR Hare and MB Sandler},
   title = {Two papers about Hough transforms},
   keywords = {Detecting straight lines in images}
}

@techreport{Barth92,
   author = {P Barth},
   title = {Using atomic data structures for parallel simulation},
   type = {CSG Memo 344, MIT Lab for Computer Science},
   month = may,
   year = {1992},
   keywords = {M-structures, discrete event simulation}
}

@article{Anonymous93c,
   key = {Anonymous93c},
   title = {Special issue of the fifth generation project},
   journal = cacm,
   volume = {36},
   number = {3},
   month = mar,
   year = {1993},
   keywords = {Japan, prolog, logic languages}
}

@article{Goldberg93,
   author = {AJ Goldberg and JL Hennessy},
   title = {Mtool: an integrated system for performance debugging shared memory multiprocessor applications},
   journal = {IEEE Trans Parallel and Distributed Systems},
   volume = {4},
   number = {1},
   pages = {28-40},
   month = jan,
   year = {1993},
   keywords = {tracing, monitoring}
}

@article{Baker93,
   author = {HG Baker},
   title = {Infant mortality and generational garbage collection},
   journal = {SIGPLAN Notices},
   volume = {28},
   number = {4},
   pages = {55-56},
   month = apr,
   year = {1993},
   keywords = {mark/cons ratios, locality, half-life}
}

@article{Wentworth93,
   author = {EP Wentworth},
   title = {Generalised regular expressions: a programming exercise in Haskell},
   journal = {SIGPLAN Notices},
   volume = {28},
   number = {5},
   pages = {49-54},
   month = may,
   year = {1993},
   keywords = {Importance of full laziness; literate; benchmark}
}

@techreport{Chen92a,
   author = {LL Chen and WL Harrison},
   title = {Efficient computation of the fixpoints that arise in complex program analysis},
   type = {CSRD Report},
   number = {1245},
   month = dec,
   year = {1992},
   keywords = {FTP sp2.csrd.uiuc.edu/CSRD\_Info/reports/1245}
}

@article{Schneider93,
   author = {M Schneider},
   title = {Self stablisation},
   journal = {ACM Computing Surveys},
   volume = {25},
   number = {1},
   pages = {45-67},
   month = mar,
   year = {1993},
   keywords = {distributed algorithms, termination, fault tolerance}
}

@article{Sangalli93,
   author = {A Sangalli},
   title = {The easy way to check hard maths},
   journal = {New Scientist},
   pages = {24-28},
   month = may,
   year = {1993},
   keywords = {zero knowledge proofs, NP, complexity, intractability, optimisation, approximation algorithms}
}

@article{Feeley92,
   author = {MJ Feeley and H Levy},
   title = {Distributed shared memory with versioned memory},
   journal = {ACM SIGPLAN Notices},
   volume = {27},
   number = {10},
   pages = {247-262},
   month = oct,
   year = {1992},
   keywords = {Proc OOPSLA 92.  Weak coherence.}
}

@techreport{Austin93,
   author = {J Austin},
   title = {Parallel distributed computation},
   type = {$|$DCS$|$, Univ of York},
   year = {1993},
   keywords = {neural networks, ADAM, image registration}
}

@techreport{Austin89,
   author = {J Austin},
   title = {High-speed invariant pattern recognition using adaptive neural networks},
   type = {$|$DCS$|$, Univ of York},
   year = {1989},
   keywords = {ADAM, encoding, image registration, matching}
}

@techreport{Austin89a,
   author = {J Austin},
   title = {{ADAM}: an associative neural architecture for invariant pattern classification},
   type = {$|$DCS$|$, Univ of York},
   year = {1989},
   keywords = {image registration, encoding, matching}
}

@techreport{Austin93a,
   author = {J Austin and M Brown},
   title = {Invariant pattern recognition using binary neural networks},
   type = {$|$DCS$|$, Univ of York},
   year = {1993},
   keywords = {ADAM, image registration, matching, incoding}
}

@techreport{Bolychevsky92,
   author = {AB Bolychevsky and VB Muchnick and AV Sharafenko},
   title = {F-code: a portable software platform for data-parallel languages},
   type = {$|$DCS$|$, Dept of Electronic and Electrical Eng, Univ of Surrey},
   year = {1992},
   keywords = {arrays, APL}
}

@misc{Jesshope92,
   author = {C Jesshope},
   title = {The Mad Postman Network Chip MP1: reference manual},
   year = {1992},
   keywords = {interconnection, communication}
}

@inproceedings{Jesshope93,
   author = {C Jesshope and C Izu},
   title = {The MP1 Network Chip},
   booktitle = {Euromicro workshop on Parallel and Distributed Systems, Gran Canaria},
   month = jan,
   year = {1993},
   keywords = {interconnection, communication}
}

@techreport{Esparza93,
   author = {J Esparza and B von Stengel},
   title = {The asynchronous committee meeting problem},
   type = {Institut fur Informatik, Universitat Hildesheim},
   month = may,
   year = {1993},
   keywords = {complexity, Hoare logic, algorithms, invariants, scheduling}
}

@techreport{Peterson93,
   author = {J Peterson},
   title = {A Haskell to Lisp interface},
   type = {$|$DCS$|$, Yale University},
   year = {1993},
   keywords = {I/O monad, mixed-language working}
}

@techreport{Armstrong93,
   author = {JL Armstrong and SR Virding},
   title = {Erlang: an experimental telephony programming language},
   type = {Computer Science Laboratory, Ellemtel Utveclings AB},
   year = {1993},
   keywords = {Like Strand.  Explicit parallel processes, streams, real time, functional-ish}
}

@incollection{Augustsson??,
   author = {L Augustsson},
   title = {Implementing Haskell overloading},
   crossref = "fpca93",
   keywords = {type system, versions, hbc}
}

@inproceedings{Reekie92,
   author = {J Reekie and J Potter},
   title = {Transforming process networks},
   booktitle = {Proc Massey Functional Programming Workshop, Massey University, New Zealand},
   pages = {87-105},
   month = aug,
   year = {1992},
   keywords = {Calilban, parallel, finite impulse response filter (FIR), loop fusion, deforestation, streams}
}

@techreport{Hudak93,
   author = {P Hudak},
   title = {How to add state to a functional language},
   type = {Tutorial slides at State in Programming Languages (SIPL)},
   month = jun,
   year = {1993},
   keywords = {monad, MADT, single-threaded, update in place, I/O}
}

@techreport{Hudak93a,
   author = {P Hudak and D Rabin},
   title = {State in functional languages: an annotated bibliography},
   type = {$|$DCS$|$, Yale University},
   month = jun,
   year = {1993},
   keywords = {monad, MADT, single-threaded, update in place, I/O}
}

@article{Grohoski90,
   author = {G Grohoski},
   title = {Machine organisation of the {IBM} {RISC} System/6000 processor"},
   journal = {IBM Journal of Research and Development},
   volume = {34},
   number = {1},
   pages = {37ff},
   month = jan,
   year = {1990},
   keywords = {architecture, pipelining, power PC}
}

@incollection{Finne??,
   author = {S Finne and G Burn},
   title = {Assessing the evaluation transformer model of reduction on the spineless {G}-machine},
   crossref = "fpca93",
   pages = {331-340},
   keywords = {strictness}
}

@inproceedings{Moon84,
   author = {D Moon},
   title = {Garbage collection in a large Lisp system},
   booktitle = {Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming},
   pages = {235-246},
   address = {Austin, Texas},
   month = aug,
   year = {1984},
   keywords = {storage management, generational, paging}
}

@incollection{Ungar84,
   author = {D Ungar},
   title = {Generation scavenging: {A} non-disruptive high performance storage management reclamation algorithm},
   booktitle = {ACM SIGPLAN Software Engineering Symposium on Practical Software Development Evironments},
   pages = {157-167},
   address = {Pittsburgh, Pennsylvania},
   month = apr,
   year = {1984}
}

@inproceedings{Ungar88,
   author = {D Ungar and F Jackson},
   title = {Tenuring policies for generation-based storage reclamation},
   booktitle = {ACM SIGPLAN 1988 Conference on Object Orientated Programming Systems, Languages and Applicatioons (OOPSLA '88)},
   pages = {1-17},
   address = {San Diego, California},
   month = sep,
   year = {1988}
}

@inproceedings{Launchbury:lazy-state,
   author = {J Launchbury},
   title = {Lazy imperative programming},
   booktitle = {Proc ACM Sigplan Workshop on State in Programming Languages, Copenhagen (available as YALEU/DCS/RR-968, Yale University)},
   pages = {pp46-56},
   month = jun,
   year = {1993},
   keywords = {SIPL, state monad, arrays, depth-first search, graph algorithms}
}

@phdthesis{Mattson93,
   author = {J Mattson},
   title = {An effective speculative evaluation technique for parallel supercombinator graph reduction},
   type = {Ph.{D}. Thesis},
   school = "Department of Computer Science and Engineering, University of California, San Diego",
   number = {TR CS93-282},
   month = feb,
   year = {1993}
}

@incollection{King??,
   author = {D King and J Launchbury},
   title = {Functional graph algorithms with depth-first search},
   booktitle = {$|$Glasgow93$|$},
   keywords = {lazy state, monads}
}

@techreport{Santos93,
   author = {A Santos and SL {Peyton~Jones}},
   title = {Tuning a compiler's allocation policy},
   type = {$|$DCS$|$, University of Glasgow},
   month = jul,
   year = {1993}
}

@incollection{Marlow??a,
   author = {S Marlow},
   title = {Update avoidance analysis using abstract interpretation},
   booktitle = {$|$Glasgow93$|$},
   keywords = {thunks}
}

@incollection{Hill??,
   author = {JMD Hill},
   title = {The {AIM} is laziness in a data-parallel language},
   booktitle = {$|$Glasgow93$|$},
   keywords = {DAP, Haskell}
}

@incollection{Hammond??a,
   author = {K Hammond and S Blott},
   title = {Implementing Haskell type classes},
   booktitle = {$|$Glasgow89$|$},
   pages = {265-286},
   keywords = {dictionaries, overloading}
}

@techreport{Loosemore93,
   author = {S Loosemore},
   title = {Secrets of the Yale Haskell optimiser revealed},
   type = {$|$DCS$|$, Yale University},
   month = jun,
   year = {1993},
   keywords = {transformation system, compiler}
}

@techreport{Bohm93,
   author = {APW Bohm and RE Hiromoto},
   title = {A functional implementation of the Jacobi Eigen-solver},
   type = {Los Alamos National Laboratory},
   month = jan,
   year = {1993},
   keywords = {Haskell, arrays, Id, application, numerical}
}

@book{Feo92,
   editor = {JT Feo},
   title = {A comparative study of parallel programming languages: The Salishan problems},
   publisher = {North Holland},
   year = {1992},
   keywords = {Haskell, arrays, numerical}
}

@incollection{Gill??a,
   author = {A Gill and SL {Peyton~Jones}},
   title = {Building on foldr},
   booktitle = {$|$Glasgow93$|$},
   keywords = {deforestation}
}

@article{Anonymous93d,
   key = {Anonymous93d},
   title = {The Multiflow Trace Scheduling Compiler},
   journal = {Journal of Supercomputing},
   volume = {7},
   pages = {51-142},
   year = {1993},
   keywords = {The truth about Multiflow, VLIW, register allocation}
}

@inproceedings{steele:building-interpreters,
   author = {GL Steele},
   title = {Building interpreters by composing monads},
   crossref = "popl94",
   pages = "472-492",
   keywords = {pseudomonad, composing, monad, reification}
}

@techreport{Steele93a,
   author = {GL Steele},
   title = {How to compose monads},
   type = {Thinking Machines Corp},
   month = jul,
   year = {1993},
   keywords = {pseudomonad, monad, reification}
}

@incollection{Hall??a,
   author = {CV Hall},
   title = {A framework for optimising abstract data types},
   booktitle = {$|$Glasgow93$|$},
   keywords = {hydras, coalescing}
}

@article{Boundy91,
   author = {D Boundy},
   title = {A taxonomy of programmers},
   journal = {Software Engineering Notes},
   volume = {16},
   number = {4},
   pages = {23ff},
   month = oct,
   year = {1991},
   keywords = {programming style, professional programming}
}

@inproceedings{OToole89,
   author = {JW O'Toole and DK Gifford},
   title = {Type reconstruction with first-class polymorphic values},
   booktitle = {ACM Conference on Programming Languages Design and Implementation, Portland},
   pages = {207-217},
   month = jul,
   year = {1989},
   keywords = {second order lambda calculus, type inference},
   note = {Published as SIGPLAN Notices, volume 27, number 7}
}

@techreport{Bohm93a,
   author = {APW Bohm and RE Horomoto},
   title = {The dataflow time and space complexity of FFTs},
   type = {Computer Science Department, Colorado State University},
   year = {1993},
   keywords = {scientific programming, fourier}
}

@article{Leveson93,
   author = {NG Leveson and CS Turner},
   title = {An investigation of the Therac-25 accidents},
   journal = {IEEE Computer},
   volume = {26},
   number = {7},
   pages = {18-41},
   month = jul,
   year = {1993},
   keywords = {white coats, safety critical systems}
}

@article{Singh93,
   author = {JP Singh and JL Hennessy and A Gupta},
   title = {Scaling parallel programs for multiprocessors: methodology and examples},
   journal = {IEEE Computer},
   volume = {26},
   number = {7},
   pages = {42050},
   month = jul,
   year = {1993},
   keywords = {scientific programming, Amdahl's law, communication costs, octtrees, parallel}
}

@article{Kfoury93,
   author = {AJ Kfoury and J Tiuryn and P Urzyczyn},
   title = {Type reconstruction in the presence of polymorphic recursion},
   journal = toplas,
   volume = {15},
   number = {2},
   pages = {290-311},
   month = apr,
   year = {1993},
   keywords = {second order lambda calculus, rank-2 polymorphism, ML polymorphism, semi-unification problem}
}

@article{kfoury:finite-rank,
   author = {AJ Kfoury and J Tiuryn},
   title = {Type reconstruction in finite rank fragments of second-order lambda calculus},
   journal = {{Information and Computation}},
   volume = {98},
   number = {2},
   pages = {228-257},
   month = jun,
   year = {1992},
   keywords = {rank-2 polymorphism}
}


@Inproceedings{tiuryn:f-eta,
  author = 		  {J Tiuryn and P Urzyczyn },
  title = 		  {The subtyping problem for second order types is undecidable},
  booktitle = "Proc IEEE Symposium on Logic in Computer Science (LICS'96)",
  year =			  1996,
  pages =        {74--85},
  annote =		  {shows mitchell's relation (for F-eta) is undecidable}
}


@Article{tiuryn:sequent,
  author = 		  {Jerzy Tiuryn},
  title = 		  {A Sequent Calculus for Subtyping Polymorphic Types},
  journal = 	  {Inf. Comput.},
  year = 		  2001,
  volume =		  164,
  number =		  2,
  pages =		  {345--369},
  annote =		  {Subsumes 1996 MFCS paper}
}

@InProceedings{longo:logic-subtyping,
  author = 		  {Giuseppe Longo and Kathleen Milsted and Sergei Soloviev},
  title = 		  {A Logic of Subtyping (Extended Abstract)},
  booktitle =	  {$|$LICS95$|$},
  pages =		  {292--299},
  year =			  1995,
  annote =       {Sequent calculus rules for Mitchell's relation for F-eta}
}

@techreport{MacLachlan93,
   author = {RA MacLachlan},
   title = {Lisp vs {RISC}, or What Common Lisp Implementors Really Want},
   type = {Carnegie Mellon University},
   month = jan,
   year = {1993},
   keywords = {instruction-level measurements of Lisp, benchmarks, profiling}
}

@article{Ramanathan93,
   author = {G Ramanathan and J Oren},
   title = {Survey of commercial parallel machines},
   journal = {Computer Architecture News},
   volume = {21},
   number = {3},
   pages = {13-33},
   year = {1993},
   keywords = {MasPar, NCUBE, KSR, Thinking Machines CM5, Parsytec, message-passing, cache coherence}
}

@techreport{Bertin93,
   author = {P Bertin and D Roncin and J Vuillemin},
   title = {Programmable Active Memories: a Performance Assessment`},
   type = {PRL-RR-24, Dec Paris Research Lab},
   month = mar,
   year = {1993},
   keywords = {PAM, applications, intellligent memory; see also PRL-RR-24}
}

@techreport{Nikhil93,
   author = {RS Nikhil and Arvind and J Hicks},
   title = {pH language proposal},
   type = {DEC Cambridge Research Lab},
   month = sep,
   year = {1993}
}

@techreport{Goblirsch93,
   author = {DM Goblirsch},
   title = {An introduction to Haskell with applications to digital signal processing},
   type = {MITRE Corp},
   month = sep,
   year = {1993},
   keywords = {Linear filters, non-linear, auto-regressive, tutorial}
}

@techreport{Acheten93,
   author = {P Acheten and R Plasmeijer},
   title = {The ins and outs of Concurrent Clean {I}/{O}},
   type = {Department of Parallel Systems and Computational Models, University of Nijmegen},
   month = sep,
   year = {1993},
   keywords = {monads, unique types, linear types, input/output, imperative}
}

@article{Baker93a,
   author = {HG Baker},
   title = {Iterators: signs of weakness in object-oriented languages},
   journal = {OOPS Messenger},
   volume = {4},
   number = {3},
   pages = {18-25},
   month = jul,
   year = {1993},
   keywords = {higher order functions, lazy evaluation, programming, modularity}
}

@techreport{Armstrong93a,
   author = {J Armstrong},
   title = {Industrial experience of declarative programming},
   type = {Computer Science Laboratory, Ellemtel Communications Systems Laboratories, Sweden},
   month = sep,
   year = {1993},
   keywords = {applications, Erlang}
}

@book{reppy:book,
  author = "J Reppy",
  title = "Concurrent programming in {ML}",
  publisher = cup,
  year = 1999,
  keywords = "CML"
}

@book{armstrong:concurrent-erlang,
   author = {J Armstrong and R Virding and and Claes Wikstrom and M Williams},
   title = {Concurrent programming in Erlang (2nd edition)},
   publisher = {Prentice Hall},
   year = {1996},
   keywords = {functional programming language, parallel}
}

@techreport{Reid93,
   author = {A Reid},
   title = {A window-based application front end in Haskell},
   type = {Applications Research Division, British Telecom, Martlesham Heath},
   month = oct,
   year = {1993},
   keywords = {application, GUI, X-windows, monads, input/output}
}

@article{Anonymous93e,
   key = {Anonymous93e},
   title = {Special issue on networking},
   journal = {IEEE Computer},
   volume = {26},
   number = {9},
   month = sep,
   year = {1993},
   keywords = {Internet, gopher, wais, email, discovery, addresses, world wide web, archie}
}

@incollection{Gansner93,
   author = {ER Gansner and JH Reppy},
   editor = {Bass and Dewan},
   title = {A Multi-threaded Higher-order User Interface Toolkit},
   booktitle = {User Interface Software},
   pages = {61-80},
   publisher = {John Wiley  Sons},
   year = {1993},
   keywords = {eXene, multi-threaded windows, SML, CML}
}

@phdthesis{Sankar89,
   author = {S Sankar},
   title = {Automatic runtime consistency checking and debugging of formally specified programs},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, Stanford University},
   month = aug,
   year = {1989},
   keywords = {invariants, assertions, abstract data types, algebraic specification}
}

@phdthesis{Tuminaro89,
   author = {RS Tuminaro},
   title = {Multigrid algorithms on parallel processing systems},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, Stanford University},
   month = dec,
   year = {1989},
   keywords = {numerical algorithms, relaxation, Laplace, variable resolution}
}

@incollection{Culler93,
   author = {DE Culler and KE Schauser and T von Eicken},
   editor = {M Consard and K Ebcioglu and J-L Gaudiot},
   title = {Two fundamental limits on dataflow multiprocessing},
   booktitle = {Architectures and compilation techniques for find and medium grain parallelism},
   pages = {153-164},
   publisher = {Elsevier},
   year = {1993},
   keywords = {synchronisation, storage hierarchy, scheduling}
}

@book{Paulson91,
   author = {LC Paulson},
   title = {{ML} for the working programmer},
   publisher = {Cambridge University Press},
   year = {1991},
   keywords = {text book}
}

@incollection{Myers92,
   author = {BA Myers and MB Rosson},
   title = {Survey on user interface programming},
   booktitle = {CHI '92},
   pages = {195-202},
   publisher = {ACM},
   month = may,
   year = {1992},
   keywords = {tools, what people use, gui, X, development time}
}

@article{Haines93,
   author = {M Haines and W Bohm},
   title = {On the design of distributed memory Sisal},
   journal = {Journal of Programming Languages},
   volume = {1},
   number = {3},
   pages = {209-240},
   month = sep,
   year = {1993},
   keywords = {parallel}
}

@article{Anonymous93f,
   key = {Anonymous93f},
   title = {Special issue on computing curricula},
   journal = {Computer Journal},
   volume = {36},
   number = {4},
   year = {1993},
   keywords = {curriculum design}
}

@article{Hains93,
   author = {G Hains and LMR Mullin},
   title = {Parallel functional programming with arrays},
   journal = {Computer Journal},
   volume = {36},
   number = {3},
   pages = {238-245},
   year = {1993},
   keywords = {APL, monolithic arrays, reshaping, sections, Q'nial}
}

@techreport{Dwork93,
   author = {C Dwork and M Herlihy and O Waarts},
   title = {Contention in shared-memory algorithms},
   type = {DEC Cambridge Research Lab},
   month = aug,
   year = {1993},
   keywords = {PRAM, CREW, formal model for contention}
}

@incollection{McCracken84,
   author = {NJ McCracken},
   title = {The typechecking of programs with implicit type structure},
   booktitle = {Semantics of data types},
   pages = {301-315},
   publisher = {Springer Verlag LNCS 173},
   month = jun,
   year = {1984},
   keywords = {second order lambda calculus, rank 2 polymorphism}
}

@inproceedings{Barendsen93,
   author = {E Barendsen and JEW Smetsers},
   title = {Conventional and uniqueness typing in graph rewrite systems},
   booktitle = {Proc 13th Conference on the Foundations of Software Technology and Theoretical Computer Science},
   publisher = {Springer Verlag LNCS},
   month = dec,
   year = {1993},
   keywords = {unique types, clean}
}

@incollection{Odersky??,
   author = {M Odersky and D Rabin and P Hudak},
   title = {Call by name, assignment, and the lambda calculus},
   booktitle = {$|$POPL93$|$},
   pages = {43-56},
   keywords = {references, monads, semantics, imperative}
}

@incollection{Mitchell85,
   author = {JC Mitchell and AR Meyer},
   editor = {R Parikh},
   title = {Second-order logical relations},
   booktitle = {Logics of Programs},
   publisher = {Springer Verlag LNCS 193},
   year = {1985},
   keywords = {parametricity, polymorphism}
}

@incollection{Gansner93a,
   author = {ER Gansner and JH Reppy},
   editor = {Bass and Dewan},
   title = {A multi-threaded higher-order user interface toolkit},
   booktitle = {User Interface Software},
   publisher = {John Wiley},
   year = {1993},
   keywords = {GUI, eXene, SML, threads}
}

@article{White93,
   author = {SW White and PD Hester and JW Kemp and GJ McWilliams},
   title = {How does processor MHz relate to end-user performance?},
   journal = {IEEE Micro},
   volume = {13},
   number = {3},
   pages = {8-16 (and 79-89 of Oct 93)},
   month = aug,
   year = {1993},
   keywords = {architecture, pipelining, caches, SPEC, IBM RS/6000, Dec Alpha, pipelines, functional units; good stuff}
}

@article{alrbrace93b,
   author = {K Uchiyama {\em et al}},
   title = {The Gmicro/500 superscalar microprocessor with branch buffers},
   journal = {IEEE Micro},
   volume = {13},
   number = {5},
   pages = {12-23},
   month = oct,
   year = {1993},
   keywords = {architecture, pipelining, processor, cache, performance}
}

@inproceedings{alrbrace93c,
   author = {R Johnson {\em et al}},
   title = {How to get a paper accepted at {OOPSLA}},
   booktitle = {Proc 8th Annual Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '93)},
   volume = {28},
   number = {10},
   pages = {429-436},
   month = oct,
   year = {1993},
   keywords = {SIGPLAN Notices communication skills}
}

@article{Alpert93,
   author = {D Alpert and D Avnon},
   title = {Architecture of the Pentium microprocessor},
   journal = {IEEE Micro},
   volume = {13},
   number = {3},
   pages = {11-21},
   month = jun,
   year = {1993}
}

@article{alrbrace93d,
   author = {T Asprey {\em et al}},
   title = {Performance features of the PA7100 microprocessor},
   journal = {IEEE Micro},
   volume = {13},
   number = {3},
   pages = {22-35},
   month = jun,
   year = {1993},
   keywords = {PA-RISC, HP, Hewlett Packard}
}

@article{McLellan93,
   author = {E McLellan},
   title = {The ALpha {AXP} architecture and 21064 processor},
   journal = {IEEE Micro},
   volume = {13},
   number = {3},
   pages = {36-48},
   month = jun,
   year = {1993}
}

@article{alrbrace93e,
   author = {A Agarwal {\em et al}},
   title = {Sparcle: an evolutionary processor design for large-scale multiprocessors},
   journal = {IEEE Micro},
   volume = {13},
   number = {3},
   pages = {48-61},
   month = jun,
   year = {1993},
   keywords = {Alewife, message passing, fine-grain synchronisation, latency tolerance}
}

@article{Shankar93,
   author = {AU Shankar},
   title = {An introduction to assertional reasoning for concurrent systems},
   journal = {ACM Computing Surveys},
   volume = {25},
   number = {3},
   pages = {225-262},
   month = sep,
   year = {1993},
   keywords = {semaphores, temporal logic, readers and writers, bounded buffers, invariants, Hoare logic}
}

@article{Lilja93,
   author = {DJ Lilja},
   title = {Cache coherence in large-scale shared-memory multiprocessors: issues and comparisons},
   journal = {ACM Computing Surveys},
   volume = {25},
   number = {3},
   pages = {303-338},
   month = sep,
   year = {1993}
}

@techreport{Tofte93,
   author = {M Tofte and J-P Talpin},
   title = {A theory of stack allocation in polymorphically-typed languages},
   type = {TR 93/15, Department of Computer Science, Copenhagen University},
   month = jun,
   year = {1993},
   keywords = {Garbage collection, storage management, call by value, proofs, regions}
}

@techreport{Sullivan93,
   author = {SJ Sullivan and BG Zorn},
   title = {Numerical analysis using non-procedural paradigms},
   type = {University of Colorado at Boulder},
   month = nov,
   year = {1993},
   keywords = {Haskell, SML, C++, Sather, gaussian elimination, benchmarks}
}

@article{Dixit93,
   author = {KV Dixit},
   title = {Confessions of a benchmarkoholic},
   journal = {PEPS Bulletin},
   volume = {2},
   month = nov,
   year = {1993},
   keywords = {SPEC suite}
}

@article{Hillis93,
   author = {WD Hillis and LW Tucker},
   title = {The {CM}-5 Connection Machine: a scalable supercomputer},
   journal = cacm,
   volume = {36},
   number = {11},
   pages = {30-40},
   month = nov,
   year = {1993},
   keywords = {CHARM, SPARC, data parallel, SIMD, MIMD}
}

@article{Thomborson93,
   author = {CD Thomborson},
   title = {Does your workstation computation belong on a vector supercomputer?},
   journal = cacm,
   volume = {36},
   number = {11},
   pages = {41-49},
   month = nov,
   year = {1993},
   keywords = {Cray, memory size, scalability}
}

@techreport{Hughes93,
   author = {RJM Hughes and A Moran},
   title = {Making choices lazily},
   type = {$|$DCS$|$, Chalmers University},
   month = dec,
   year = {1993},
   keywords = {operational semantics, non-determinism, amb, parallel or, launchbury's approach}
}

@techreport{Thiemann93,
   author = {PJ Thiemann},
   title = {Safe sequencing of side effects in purely functional programming languages},
   type = {Wilhelm-Schickard-Institut, University of Tubingen},
   month = dec,
   year = {1993},
   keywords = {monads, encapsulation}
}

@techreport{Argo93,
   author = {G Argo and S Thomas},
   title = {Improving partial applications in the {TIM}},
   type = {(Submitted to LFP},
   number = {94)},
   month = dec,
   year = {1993},
   keywords = {abstract machine}
}

@techreport{Argo93a,
   author = {G Argo},
   title = {A leakproof garbage collector for the {TIM}},
   type = {(Submitted to LFP},
   number = {94)},
   month = dec,
   year = {1993},
   keywords = {storage management, uses a stack}
}

@article{Barz83,
   author = {HW Barz},
   title = {Implementing semaphores by binary semaphores},
   journal = {SIGPLAN Notices},
   volume = {18},
   number = {2},
   pages = {39-45},
   month = feb,
   year = {1983},
   keywords = {mutual exclusion, concurrency, deadlock}
}

@incollection{Gansner92,
   author = {ER Gansner and JH Reppy},
   editor = {B Myers},
   title = {A foundation for user interface construction},
   booktitle = {Languages for developing user interfaces},
   pages = {239-260},
   publisher = {Jones  Bartlett},
   year = {1992},
   keywords = {eXene, SML, GUI, windows, ftp://ftp.research.att.com/dist/ml/papers/93-trends-gansner.ps}
}

@inproceedings{reppy:cml,
   author = {JH Reppy},
   title = {{CML}: a higher-order concurrent language},
   crossref = "pldi91",
   keywords = {SML, threads, concurrency}
}

@techreport{Jones93,
   author = {MP Jones and P Hudak},
   title = {Implicit and explicit parallel programming in Haskell},
   type = {YALEU/DCS/RR-982, Yale University},
   month = aug,
   year = {1993},
   keywords = {monads, fork, channels, processes, CSP, concurrency}
}

@phdthesis{Holmstrbacksla83,
   author = {S Holmstr{\"o}m},
   title = {Polymorphic type systems and concurrent computations in functional languages},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, Chalmers University},
   year = {1983},
   keywords = {PFL, processes, fork, channels}
}

@incollection{Cousot92,
   author = {P Cousot and R Cousot},
   editor = {M Bruynooghe and M Wirsing},
   title = {Comparing the Galois connection and widening/narrowing approaches to abstract interpretation},
   booktitle = {4th International Symposium on Programming Language Implementation and Logic Programming (PLILP'94), Leuven},
   publisher = {LNCS 631, Springer Verlag},
   month = aug,
   year = {1992},
   keywords = {to appear in Acta Informatica (1994)}
}

@book{Thimbleby??,
   author = {H Thimbleby},
   title = {User interface design},
   publisher = {Addison Wesley},
   keywords = {HCI, GUI, principles; calculator example section in with research papers}
}

@incollection{Howe??,
   author = {DB Howe and GL Burn},
   title = {Using strictness in the {STG} machine},
   booktitle = {$|$Glasgow93$|$},
   keywords = {let to case, thunks, allocation, analysis}
}

@techreport{Kuchen93,
   author = {H Kuchen},
   title = {Distributed memory implementation of a data parallel functional language},
   type = {Report 76, Programming Methodology Group, Chalmers University},
   month = oct,
   year = {1993},
   keywords = {arrays, update in place, parallel, SIMD}
}

@inproceedings{Pettersson??,
   author = {M Pettersson and P Fritzson},
   title = {A general and practical approach to concrete syntax objects within {ML}},
   booktitle = {$|$MLWorkshop92$|$},
   pages = {17-27},
   keywords = {semantic brackets, quotation, anti quotation}
}

@inproceedings{Cridlig??,
   author = {R Cridlig},
   title = {An optimizing {ML} to {C} compiler},
   booktitle = {$|$MLWorkshop92$|$},
   pages = {28ff},
   keywords = {C as a portable assembler}
}

@inproceedings{abadi:dynamic-in-polymorphic,
   author = {M Abadi and L Cardelli and B Pierce and D Remy},
   title = {Dynamic typing in polymorphic languages},
  booktitle =    "{Proceedings of the 1992 {ACM} Workshop on {ML} and its
                 Applications}",
  year =         "1992",
  month =        jun,
  address =      "San Francisco",
   pages = {92-103}
}

@inproceedings{Lbackslashlbra??,
   author = {K Läufer and M Odersky},
   title = {An extension of {ML} with first-class abstract types},
   booktitle = {$|$MLWorkshop92$|$},
   pages = {78-91}
}

@techreport{Thimbleby93,
   author = {H Thimbleby},
   title = {An algorithm for the Chinese postman tour},
   type = {Dept of Psychology, Stirling University},
   month = nov,
   year = {1993},
   keywords = {graph algorithms, linear programming, asymptotic performance, good enough}
}

@techreport{Jones93a,
   author = {MP Jones},
   title = {Partial Evaluation for Dictionary-Free Overloading},
   type = {Research Report YALEU/DCS/RR-959, Yale University},
   month = apr,
   year = {1993},
   keywords = {specialisation type classes}
}

@techreport{Harper94,
   author = {R Harper and P Lee},
   title = {Advanced languages for systems software: the Fox project in 1994},
   type = {CMU-CS-94-104, $|$DCS$|$, Carnegie Mellon University},
   month = jan,
   year = {1994},
   keywords = {SML, polymophism, flat types, layout, modules}
}

@article{Anonymous92i,
   key = {Anonymous92i},
   title = {Software patents},
   journal = cacm,
   volume = {35},
   number = {10},
   pages = {15-19},
   month = oct,
   year = {1992},
   keywords = {ACM Forum articles on patents}
}

@article{Stallman92a,
   author = {R Stallman},
   title = {Against Software Patents},
   journal = cacm,
   volume = {35},
   number = {1},
   pages = {17-22},
   month = jan,
   year = {1992},
   keywords = {League for programming freedom}
}

@article{Myers90,
   author = {BA Myers},
   title = {A new model for handling input},
   journal = {ACM Transactions on Information Systems},
   volume = {8},
   number = {3},
   pages = {289-320},
   month = jul,
   year = {1990},
   keywords = {interactors, HCI, GUI, mouse, UIMS, widgets, windows}
}

@article{alrbrace90,
   author = {BA Myers {\em et al}},
   title = {Garnet: comprehensive support for graphical, highly interactiefv, user interfaces},
   journal = {IEEE Computer},
   pages = {71-85},
   month = nov,
   year = {1990},
   keywords = {GUI, interactors, HCI, UIMS, graphics, widgets, windows}
}

@article{Eschermann93,
   author = {B Eschermann},
   title = {State assignments for hardwired {VLSI} control units},
   journal = {ACM Computing Surveys},
   volume = {24},
   number = {4},
   pages = {415-436},
   month = dec,
   year = {1993},
   keywords = {finite state machines, FSMs}
}

@incollection{flanagan:anf,
   author = {C Flanagan and A Sabry and B Duba and M Felleisen},
   title = {The essence of compiling with continuations},
   crossref = "pldi93",
   pages = {237-247},
   keywords = {CPS considered a red herring, A-reductions, A-normal form}
}

@techreport{OHearn93,
   author = {PW O'Hearn and RD Tennent},
   title = {Parametricity and local variables},
   type = {SU-CIS-93-30, School of Computer and Information Science, Syracuse University},
   month = oct,
   year = {1993},
   keywords = {state transformer monad, theorems for free}
}

@techreport{Reinhold93,
   author = {MB Reinhold},
   title = {Cache performance of garbage-collected programming languages},
   type = {MIT/LCS/TR-581, Lab for Computer Science, MIT},
   month = sep,
   year = {1993},
   keywords = {Scheme, T, SML, storage management}
}

@techreport{Patterson94,
   author = {JW Patterson and SJP Todd},
   title = {Digital half-toning using dot modelling},
   type = {Department of Computing Science, University of Glasgow},
   month = feb,
   year = {1994},
   keywords = {Floyd-Steinberg error-diffusion, laser printers, image processing}
}

@techreport{Shafarenko93,
   author = {AV Shafarenko},
   title = {{RETRAN}: a recurrent paradigm for massively parallel array computing},
   type = {Dept of Electronic and Electrical Engineering, University of Surrey},
   year = {1993},
   keywords = {array, APL, slices, monolithic, Fcode}
}

@inproceedings{wells:intersection-types, 
  author = "AJ Kfoury and JB Wells",
  title = "Principality and decidable type inference for finite-rank intersection types",
  crossref = "popl99"
}

@article{wells:f-undecidable,
   author = "JB Wells",
   title = "Typability and type checking in System {F} are equivalent and undecidable",
   journal = "{Ann. Pure Appl. Logic}", 
   volume = 98,
   issue = "1-3",
   pages = "111-156", 
   year = 1999
}

@inproceedings{wells:error-slicing,
  author = "C Haack and JB Wells",
  title = "Type error slicing in implicitly typed, higher-order languages",
  booktitle = "{Programming Languages and Systems, 12th European Symposium on Programming (ESOP'03)}", 
  series = lncs,
  publisher = springer,
  year = 2003
}

@inproceedings{wells:principal-typings,
  author= "JB Wells",
  title = "The essence of principal typings",
  booktitle = "Proc. 29th International Colloquium on Automata, Languages, and Programming",
  series = lncs,
  volume = 2380, 
  pages = "913-925",
  publisher = springer,
  year = 2002
}


@TechReport{wells:f-eta,
  author = 		  {J. B. Wells},
  title = 		  {Typability is undecidable for {F+eta}},
  institution =  {Comp. Sci. Dept., Boston Univ.},
  year = 		  1996,
  number =		  {96-022},
  month =		  mar
}


@PhdThesis{wells:phd,
  author = 		  {J. B. Wells},
  title = 		  {Type Inference for System F with and without the Eta Rule},
  school = 		  {Boston University},
  year = 		  1996
}

@incollection{kfoury-wells:direct,
   author = {AJ Kfoury and JB Wells},
   title = {A direct algorithm for type inference in the rank-2 fragment of the second-order lambda calculus},
   crossref = "lfp94",
   pages = {196-207},
   keywords = {polymorphism, semi-unification, higher-rank types}
}

@article{Calder94,
   author = {B Calder and D Grunwald and B Zorn},
   title = {Quantifying behavioural differences between {C} and {C}++ programs},
   journal = {Journal of Programming Languages},
   volume = {2},
   number = {4},
   pages = {313-351},
   month = dec,
   year = {1994},
   keywords = {measurement, cache, basic blocks, indirect jumps, allocation, run-time, dynamic, methods, leaf routines}
}

@article{Anonymous94,
   key = {Anonymous94},
   title = {Special issue on social computing},
   journal = cacm,
   volume = {37},
   number = {1},
   month = jan,
   year = {1994},
   keywords = {white coats, safety, risk}
}

@techreport{Okasaki94,
   author = {C Okasaki},
   title = {Simple and efficient purely functional queues and deques},
   type = {School of Computer Science, Carnegie Mellon University},
   month = feb,
   year = {1994},
   keywords = {sumbitted to JFP.  asymptotic, amortised efficiency, algorithms}
}

@techreport{Hutton94,
   author = {G Hutton and E Meijer},
   title = {Back to basics: deriving representation changers without relations},
   type = {Report 78, Programming Methodology Group, Chalmers University},
   month = jan,
   year = {1994},
   keywords = {fold, unfold, transformation. Neat.}
}

@phdthesis{Burton91a,
   author = {A Burton},
   title = {A sublanguage of English for database query in a management environment},
   type = {Ph.{D}. Thesis},
   number = {Sunderland Polytechnic},
   year = {1991},
   keywords = {DEAR, SQL, DataTalker, AI, semantics.  Survey.}
}

@article{Hughes92b,
   author = {RJM Hughes and J Launchbury},
   title = {Relational reversal of abstract interpretation},
   journal = {Journal of Logic Computation},
   volume = {2},
   number = {4},
   pages = {465-482},
   year = {1992},
   keywords = {forwards, backwards, analysis, strictness,}
}

@techreport{Launchbury94,
   author = {J Launchbury and SL {Peyton~Jones}},
   title = {Lazy functional state threads},
   type = {Technical report FP-94-05, Department of Computing Science, University of Glasgow (FTP:{\tt ftp.dcs.glasgow.ac.uk:\linebreak[1]pub/\linebreak[1]glasgow-fp/\linebreak[1]tech-reports/\linebreak[1]FP-94-05:state.ps.Z})},
   month = feb,
   year = {1994},
   keywords = {Tech report version, with semantics and extended example}
}

@article{Plotkin75,
   author = {GD Plotkin},
   title = {Call-by-name, call-by-value and the lambda calculus},
   journal = {Theoretical Computer Science},
   volume = {1},
   pages = {125-159},
   year = {1975},
   keywords = {CPS, continuations}
}

@techreport{Harper94a,
   author = {R Harper and G Morrisett},
   title = {Compiling with non-parametric polymorphism},
   type = {CMU-CS-94-122, School of Computer Science, Carnegie Mellon University},
   month = feb,
   year = {1994},
   keywords = {unboxed, overloading, types, second-order lambda calculus}
}

@article{Herlihy93,
   author = {M Herlihy},
   title = {A methodology for implementing highly concurrent data objects},
   journal = toplas,
   volume = {15},
   number = {5},
   pages = {745-770},
   month = nov,
   year = {1993},
   keywords = {real time systems, semaphores, locks, mutual exclusion, wait-free, process}
}

@article{Lilja94,
   author = {DJ Lilja},
   title = {Exploiting the parallelism available in loops},
   journal = {IEEE Computer},
   volume = {27},
   number = {2},
   pages = {13-27},
   month = feb,
   year = {1994},
   keywords = {FORTRAN, chunking, scheduling, placement, locality}
}

@techreport{Gray91,
   author = {PMD Gray and Z Jiao},
   title = {Optimisation of methods in a navigational query language},
   type = {$|$DCS$|$, University of Aberdeen},
   month = mar,
   year = {1991},
   keywords = {Daplex, list comprehensions, database, object-oriented, somewhat functional, FDM}
}

@phdthesis{Aharoni93,
   author = {G Aharoni},
   title = {Distributed execution of functional programs},
   type = {Ph.{D}. Thesis},
   number = {Hebrew University of Jerusalem},
   year = {1993},
   keywords = {competitive algorithms, scheduling, adaptive, sparking, load management}
}

@incollection{diwan:memory-perf,
   author = {A Diwan and D Tarditi and E Moss},
   title = {Memory subsystem performance of programs using copying garbage collection},
   crossref = "popl94",
   pages = {1-14},
   keywords = {cache, SML, sub-block placement, write buffer, storage management, garbage collection},
   abstract-url = "ftp://reports.adm.cs.cmu.edu/afs/cs.cmu.edu/user/dtarditi/dist/CMU-CS-93-210.abstract",
   url =          "ftp://reports.adm.cs.cmu.edu/usr/anon/1993/CMU-CS-93-210.ps"
}

@incollection{Doligez??,
   author = {D Doligez and G Gonthier},
   title = {Portable, unobtrusive garbage collection for multiprocessor systems},
   booktitle = {$|$POPL94$|$},
   pages = {70-83},
   keywords = {parallel gc, storage management}
}

@incollection{Aiken??,
   author = {A Aiken and EL Wimmers},
   title = {Type inclusion constraints and type inference},
   crossref = "fpca93",
   pages = {31-41},
   keywords = {Hindley/Milner, union types, intersection types}
}

@inproceedings{Fraser84,
   author = {Christopher W. Fraser and Eugene W. Myers and Alan L. Wendt},
   title = {Analyzing and Compressing Assembly Code},
   booktitle = {Proceedings of the ACM SIGPLAN 1984 Symposium on Compiler Construction SIGPLAN Notices},
   pages = {117-121},
   month = jun,
   year = {1984},
   keywords = {cross-jumping, optimisation, code generation},
   note = {Published as Proceedings of the ACM SIGPLAN 1984 Symposium on Compiler Construction SIGPLAN Notices, volume 19, number 6}
}

@article{Baker94,
   author = {HG Baker},
   title = {A linear logic quicksort},
   journal = {ACM SIGPLAN Notices},
   volume = {29},
   number = {2},
   pages = {13-18},
   month = feb,
   year = {1994},
   keywords = {compares with wakeling}
}

@article{Berman94,
   author = {AM Berman},
   title = {Does Scheme enhance an introductory programming course: some preliminary empirical results},
   journal = {ACM SIGPLAN Notices},
   volume = {29},
   number = {2},
   pages = {44-48},
   month = feb,
   year = {1994},
   keywords = {teaching, functional}
}

@techreport{Thimbleby94,
   author = {H Thimbleby},
   title = {Calculators: serious problems and their solution},
   type = {Stirling University},
   month = mar,
   year = {1994},
   keywords = {HCI, user interface, interactive calculator}
}

@article{Adams93,
   author = {S Adams},
   title = {Efficient sets: a balancing act},
   journal = jfp,
   volume = {3},
   number = {4},
   pages = {553-561},
   month = oct,
   year = {1993},
   keywords = {abstract data types, balanced trees, representation}
}

@article{Anonymous93g,
   key = {Anonymous93g},
   title = {Special issue on {ML}},
   journal = jfp,
   volume = {3},
   number = {4},
   month = oct,
   year = {1993},
   keywords = {dynamics (Leroy), typing first-class continutations, ML library}
}

@article{Anonymous94a,
   key = {Anonymous94a},
   title = {Workshop on multithreaded computers: panel sessions},
   journal = {Computer Architecture News},
   volume = {22},
   number = {1},
   pages = {2-33},
   month = mar,
   year = {1994},
   keywords = {Id, *T, dataflow, granularity, locality}
}

@article{Baker94a,
   author = {HG Baker},
   title = {Linear logic and permutation stacks},
   journal = {Computer Architecture News},
   volume = {22},
   number = {1},
   pages = {34-43},
   month = mar,
   year = {1994},
   keywords = {storage management}
}

@article{Anonymous94b,
   key = {Anonymous94b},
   title = {Special issue on {I}/{O} subsystems},
   journal = {IEEE Computer},
   volume = {27},
   number = {3},
   month = mar,
   year = {1994},
   keywords = {disk drives, disc, redundant arrays, raid, caching}
}

@article{henglein:polymorphic-recursion,
  author = "F Henglein",
  title = "Type inference with polymorphic recursion",
  journal = toplas, 
    volume = "15",
    number = "2",
    month = "April",
    publisher = "ACM Press",
    pages = "253--289",
    year = "1993"
}

@incollection{Henglein??,
   author = {F Henglein and J Jorgensen},
   title = {Formally optimal boxing},
   booktitle = {$|$POPL94$|$},
   keywords = {unboxed data types, compilation}
}

@article{Jackson93,
   author = {WK Jackson and FW Burton},
   title = {Improving intervals},
   journal = jfp,
   volume = {3},
   number = {2},
   pages = {153-170},
   month = apr,
   year = {1993},
   keywords = {nondeterminism, abstract data types, alpha-beta, search}
}

@article{Burton93,
   author = {FW Burton and RD Cameron},
   title = {Pattern matching with abstract data types},
   journal = jfp,
   volume = {3},
   number = {2},
   pages = {171-190},
   month = apr,
   year = {1993},
   keywords = {views, abstraction}
}

@techreport{Adams92,
   author = {S Adams},
   title = {Implementing sets efficiently in a functional language},
   type = {CSTR 92-10, Department of Electronics and Computer Science, University of Southampton},
   year = {1992},
   keywords = {abstract data types, sets, finite maps, lists, trees, balanced}
}

@techreport{Schauser91,
   author = {KE Schauser},
   title = {Compiling dataflow into threads: efficient compiler-controlled multithreading for lenient parallel languages},
   type = {MSc thesis, UCB/CSD91/644, Computer Science Division, University of California at Berkeley},
   month = jul,
   year = {1991},
   keywords = {multithreading, TAM}
}

@incollection{Nikhil??,
   author = {RS Nikhil and GM Papadopoulos and Arvind},
   title = {*{T}: a multithreaded massively parallel architecture},
   booktitle = {$|$ISCA92$|$},
   pages = {156-167},
   keywords = {dataflow, scientific}
}

@techreport{Davies93,
   author = {T Davies},
   title = {Software usability {II}},
   type = {Silicon Graphics},
   month = oct,
   year = {1993},
   keywords = {software crisis, software engineering, operating system, bloat}
}

@incollection{Sansom93,
   author = {PM Sansom},
   editor = {K Hammond and J O'Donnell},
   title = {Time profiling a lazy functional compiler},
   booktitle = {Functional Programming, Glasgow 1993},
   publisher = {Springer-Verlag, Workshops in Computing},
   address = {Ayr, Scotland},
   month = jul,
   year = {1993}
}

@phdthesis{Sansom94,
   author = {PM Sansom},
   title = {Execution profiling for non-strict functional languages},
   type = {Ph.{D}. Thesis},
   number = {Technical Report FP-1994-09, $|$DCS$|$, University of Glasgow},
   month = sep,
   year = {1994},
   keywords = {cost centres, time / space profiling, cost semantics},
   note = {\ftpref{ftp://---ftp.dcs.glasgow.ac.uk/---pub/---glasgow-fp/---tech\\_reports/---FP-94-09\\_execution-profiling.ps.Z}}
}

@techreport{Sansom94a,
   author = {PM Sansom and SL {Peyton~Jones}},
   title = {Time and space profiling for non-strict, higher-order functional languages},
   type = {Technical Report FP-1994-10, $|$DCS$|$, University of Glasgow},
   month = nov,
   year = {1994},
   note = {\ftpref{ftp://---ftp.dcs.glasgow.ac.uk/---pub/---glasgow-fp/---tech\\_reports/---FP-94-10\\_timespace-profiling.ps.Z}}
}

@inproceedings{Nettles92,
   author = {S Nettles and J O'Toole and D Pierce and N Haines},
   title = {Replication-based incremental copying collection},
   booktitle = {International Workshop on Memory Management},
   publisher = {Springer-Verlag, Lecture Notes in Computer Science},
   month = sep,
   year = {1992},
   keywords = {SML, generational, incremental major, storage management}
}

@inproceedings{Nettles93,
   author = {S Nettles and J O'Toole},
   title = {Real-Time Replication Garbage Collection},
   booktitle = {ACM SIGPLAN Conference on Programming Language Design and Implementation},
   month = jun,
   year = {1993}
}

@techreport{OToole93,
   author = {J O'Toole and S Nettles},
   title = {Concurrent Replication Garbage Collection: An Implementation Report},
   type = {Technical Report CMU-CS-93-138, School of Computer Science, Carnegie Mellon University},
   month = apr,
   year = {1993},
   keywords = {POPL '94 ???}
}

@techreport{Nettles93a,
   author = {S Nettles and J O'Toole and D Gifford},
   title = {Concurrent garbage collection of persistent heaps},
   type = {CMU-CS-93-137, Carnegie Mellon University},
   month = apr,
   year = {1993},
   keywords = {storage management, persistence}
}

@article{Diefendorff94,
   author = {K Diefendorff and R Oehler and R Hochsprung},
   title = {Evolution of the PowerPC architecture},
   journal = {IEEE Micro},
   volume = {14},
   number = {2},
   pages = {34-49},
   month = apr,
   year = {1994},
   keywords = {virtual memory, pipeline, cache}
}

@article{Anonymous94c,
   key = {Anonymous94c},
   title = {Hot Chips {V}},
   journal = {IEEE Micro},
   volume = {14},
   number = {2},
   month = apr,
   year = {1994},
   keywords = {Special issue.  TFP microprocessor, HP Precision Architecture}
}

@techreport{Appel94,
   author = {AW Appel},
   title = {Axiomatic Bootstrapping:  {A} Guide for Compiler Hackers},
   type = {TR-451-94, $|$DCS$|$, Princeton University},
   month = mar,
   year = {1994},
   keywords = {SML, compilers, separate compilation, self-compilation}
}

@article{Appel96,
   author = {AW Appel and Z Shao},
   title = {An Empirical and Analytic Study of Stack vs. Heap Cost for Languages with Closures},
   journal = {Journal of Functional Programming},
   year = {1996},
   keywords = {SML, compilers, stack, locality, cache, call/cc, frames, storage management costs}
}

@techreport{Bohm94,
   author = {W Bohm},
   title = {Experience in writing scientific codes in a declarative style},
   type = {WG2.8 slides},
   month = apr,
   year = {1994},
   keywords = {Id, Sisal, Haskell}
}

@techreport{Abadi94,
   author = {M Abadi and L Cardelli},
   title = {A theory of primitive objects},
   type = {DEC Systems Research Centre (also TACS},
   number = {'94)},
   month = apr,
   year = {1994},
   keywords = {ojbect-oriented calculus}
}

@techreport{jones-duponcheel:composing-monads,
   author = {Mark Jones and Luc Duponcheel},
   title = {Composing monads},
   number = "YALEU/DCS/RR-1004",
   institution = "Yale Univesrity",
   month = dec,
   year = {1994}
}

@techreport{Kieburtz94,
   author = {RB Kieburtz and J Lewis},
   title = {Algebraic design language (preliminary definition)},
   type = {Oregon Graduate Institute},
   month = jan,
   year = {1994},
   keywords = {fold, data types, deforestation, no explicit recursion, ADL}
}

@techreport{Hughes94,
   author = {RJM Hughes and S Hunt and C Runciman},
   title = {Higher-order functions as decision trees: taming a space monster},
   type = {$|$DCS$|$, Chalmers University},
   month = apr,
   year = {1994},
   keywords = {Concrete data structures, CDS, fixpoints, profiling}
}

@techreport{Lee94,
   author = {P Lee},
   title = {Deferred compilation},
   type = {$|$DCS$|$, Carnegie Mellon University},
   month = apr,
   year = {1994},
   keywords = {partial evaluation, code generation}
}

@incollection{Biagioni??,
   author = {E Biagioni and R Harper and P Lee and BG Milnes},
   title = {Signatures for a network protocol stack: a systems application of Standard {ML}},
   crossref = "lfp94",
   keywords = {TCP/IP in SML, realistic applications}
}

@incollection{Wright??,
   author = {AK Wright and R Cartwright},
   title = {A practical soft type system for Scheme},
   crossref = "lfp94",
   keywords = {type system}
}

@techreport{Turner94,
   author = {D A Turner},
   title = {Elementary strong functional programming},
   type = {WG2.8 slides},
   month = apr,
   year = {1994},
   keywords = {non-termination, bottom, recursion}
}

@techreport{alrbrace94,
   author = {JAN Lee {\em et al}},
   title = {ProtoTech HiPer-{D} Joint Prototyping Demonstration Project},
   type = {Virginia Tech},
   year = {1994},
   keywords = {Haskell vs Ada, awk, C++ etc.  Software engineering,}
}

@techreport{Leavens94,
   author = {GT Leavens},
   title = {Fields in physics are like curried functions},
   type = {TR 96-06b, $|$DCS$|$, Iowa State University},
   year = {1994},
   keywords = {teaching functional programming, types}
}

@article{sestoft:deriving,
   author = {P Sestoft},
   title = {Deriving a lazy abstract machine},
   journal = jfp,
   volume = 7,
   issue = 3,
   year = 1997,
   keywords = {TIM, Launchbury operational semantics, updates, STG machine},
   annote = "Good reference for a small-step operational semantics with explicit stack"
}

@techreport{leroy:zinc-experiment,
   author = {X Leroy},
   title = {The {Zinc} experiment: an economical implementation of the {ML} language},
   type = {TR 117, INRIA-Rocquencourt},
   month = feb,
   year = {1990},
   institution = "INRIA",
   keywords = {currying, push-enter vs eval/apply evaluation, byte codes}
}

@article{baker-inlining,
   author = {HG Baker},
   title = {Inlining Semantics for Subroutines which are Recursive},
   journal = {ACM Sigplan Notices},
   volume = {27},
   number = {12},
   pages = {39-49},
   month = dec,
   year = {1992},
   keywords = {program transformation}
}

@techreport{Appel94a,
   author = {AW Appel},
   title = {Axiomatic bootstrapping: a guide for compiler hackers},
   type = {CS-TR-451-94, Princeton University},
   month = mar,
   year = {1994},
   keywords = {SML New Jersey}
}

@incollection{Shao??,
   author = {Z Shao and AW Appel},
   title = {Space-efficient closure representations},
   crossref = "lfp94",
   keywords = {CPS, environments, TIM, graph reduction, stack}
}

@incollection{Shao??a,
   author = {Z Shao and JH Reppy and AW Appel},
   title = {Unrolling lists},
   crossref = "lfp94",
   keywords = {transformation, optimised lists, hydra lists, SML, compilers, deforestation}
}

@proceedings{Gentner90,
   author = {DR Gentner and J Grudin and Why good engineers sometimes create bad interfaces},
   title = {Proceedings of CHI'90},
   pages = {277-282},
   publisher = {ACM},
   month = apr,
   year = {1990},
   keywords = {HCI, GUI}
}

@article{Rettig94,
   author = {M Rettig},
   title = {Prototyping for tiny fingers},
   journal = cacm,
   volume = {37},
   number = {4},
   pages = {21-27},
   month = apr,
   year = {1994},
   keywords = {HCI, GUI, interfaces, design}
}

@article{McIlroy93,
   author = {PM McIlroy and K Bostic and MD ImIlroy},
   title = {Engineering radix sort},
   journal = {Computing Systems},
   volume = {6},
   number = {1},
   year = {1993},
   keywords = {University of California at Berkeley. Thi is 4.4BSD sort.  Cf SP\&E article.}
}

@techreport{Wallace94,
   author = {M Wallace and C Runciman},
   title = {Extending a functional programming system for embedded real-time applications},
   type = {$|$DCS$|$, University of York},
   year = {1994},
   keywords = {embedded Gofer, channels, post office, operating system, concurrency}
}

@article{augustsson-unique-names,
   author = {L Augustsson and M Rittri and D Synek},
   title = {On generating unique names},
   journal = jfp,
   volume = {4},
   number = {1},
   pages = {117-123},
   month = jan,
   year = 1994,
   keywords = {name supply tree, oracles, non-determinism, monads}
}

@incollection{Hancock87,
   author = {P Hancock},
   editor = {SL {Peyton~Jones}},
   title = {A type checker},
   booktitle = {The implementation of functional programming languages},
   pages = {163-182},
   publisher = {Prentice Hall},
   year = {1987},
   keywords = {unique supply of names}
}

@article{Harrison93,
   author = {R Harrison},
   title = {Quantifying internal attributes of functional programs},
   journal = {Journal of Information and Software Technology},
   volume = {35},
   number = {10},
   pages = {554-560},
   month = oct,
   year = {1993},
   keywords = {metrics for functional and object oriented programs}
}

@techreport{Hartel94,
   author = {PH Hartel and H Glaser},
   title = {The resource-constrained shortest-path problem implemented in a lazy functional language},
   type = {$|$DCS$|$, University of Amsterdam},
   month = may,
   year = {1994},
   keywords = {graph algorithms, search, FORTRAN-competitive, application}
}

@techreport{Carlson94,
   author = {WE Carlson and P Hudak and MP Jones},
   title = {An experiment using Haskell to prototype geometric region servers for Navy command and control},
   type = {YALEU/DCS/RR-1031, $|$DCS$|$, Yale University},
   month = may,
   year = {1994},
   keywords = {application, done in other languages too, Ada in ptic, software engineering}
}

@techreport{Milner88,
   author = {R Milner and M Tofte},
   title = {Co-induction in relational semantics},
   type = {ECS-LFCS-88-65, Laboratory for Foundations of Computer Science, University of Edinburgh},
   year = {1988},
   keywords = {proof}
}

@techreport{Achten94,
   author = {P Achten and R Plasmeijer},
   title = {A framework for deterministically interleaved interactive programs in the functional programming language Clean},
   type = {Computing Science Institute, University of Nijmegen},
   month = apr,
   year = {1994},
   keywords = {state transformers, uniqueness types, linear types, concurrency channels and streams}
}

@phdthesis{Hofman94,
   author = {R Hofman},
   title = {Scheduling and grain size control},
   type = {Ph.{D}. Thesis},
   number = {University of Amsterdam},
   year = {1994},
   keywords = {resource allocation, migrating tasks, APERM, parallelism}
}

@book{alrbrace94a,
   author = {RA Iannucci {\em et al}},
   title = {Multithreaded Computer Architecture: {A} Summary of the State of the Art},
   publisher = {Kluwer},
   year = {1994},
   keywords = {ISBN 0-7923-9477-1}
}

@article{Crowl94,
   author = {LA Crowl},
   title = {How to measure, present, and compare parallel performance},
   journal = {IEEE Parallel and Distributed Technology},
   volume = {2},
   number = {1},
   pages = {9-25},
   month = {Spring},
   year = {1994},
   keywords = {experiments, data, graphs, visualisation,tables}
}

@article{Goldson94,
   author = {D Goldson},
   title = {A symbolic calculator for non-strict functional programs},
   journal = {Computer Journal},
   volume = {37},
   number = {3},
   pages = {177-187},
   year = {1994},
   keywords = {debugging, learning, teaching, reduction, pi-red}
}

@article{Augustsson93,
   author = {L Augustsson},
   title = {The interactive Lazy {ML} system},
   journal = jfp,
   volume = {3},
   number = {1},
   pages = {77-92},
   month = jan,
   year = {1993},
   keywords = {lmli, hbci, debugging}
}

@techreport{Chakravarty94,
   author = {M Chakravarty and HCR Lock},
   title = {The {JUMP}-machine: a generic basis for the integration of declarative paradigms},
   type = {Technical University of Berlin},
   month = jun,
   year = {1994},
   keywords = {STG machine, unification, Warren Abstract Machine, WAm}
}

@techreport{Clack94,
   author = {C Clack and S Clayman and D Parrott},
   title = {Lexical Profiling: Theory and Practice},
   type = {$|$DCS$|$, University College London},
   month = mar,
   year = {1994},
   note = {to appear in Journal of Functional Programming}
}

@article{Morgan98,
   author = {RG Morgan and SA Jarvis},
   title = {Profiling Large-Scale Lazy Functional Programs},
   journal = jfp,
   volume = {8},
   number = {3},
   month = may,
   year = {1998},
   keywords = {cost centre stacks}
}

@incollection{Kozato??,
   author = {Y Kozato and GP Otto},
   title = {Benchmarking real-life image processing programs in lazy functional languages},
   booktitle = {$|$FPCA93$|$}
}

@techreport{Loidl94,
   author = {HW Loidl and K Hammond},
   title = {{GRAPH} for {PVM}: graph reduction for distributed hardware},
   type = {Department of Computing Science, University of Glasgow},
   month = jun,
   year = {1994},
   keywords = {GRIP, GHC, parallel, tasks, granularity}
}

@article{Graham83,
   author = {SL Graham and PB Kessler and MK McKusick},
   title = {An execution profiler for modular programs},
   journal = {Software --- Practice and Experience},
   volume = {13},
   pages = {671-685},
   year = {1983},
   keywords = {gprof profiling}
}

@phdthesis{Rudalics88,
   author = {M Rudalics},
   title = {Multiprocessor list memory management},
   type = {Ph.{D}. Thesis},
   number = {RISC-LINZ 88-87.0, Research Institute for Symbolic Computation, Johnnes Kepler University, Austria},
   month = dec,
   year = {1988},
   keywords = {all forms of garbage collection, reference counting, copying}
}

@article{alrbrace96,
   author = {PH Hartel and M Feeley and M Alt and L Augustsson and
             P Bauman and P Weis and P Wentworth},
   title = {Pseudoknot: a float-intensive benchmark for functional compilers},
   journal = jfp,
   volume = {6},
   number = {4},
   year = {1996},
   keywords = {ghc, hbc, lisp, FAST, and many others.  nofib}
}

@inproceedings{Sansom91a,
   author = {PM Sansom},
   editor = {H Glaser and P Hartel},
   title = {Dual-mode garbage collection},
   booktitle = {Proc Workshop on the parallel implementation of functional languages, CSTR 91-07, University of Southampton},
   pages = {283-310},
   month = jun,
   year = {1991},
   keywords = {explains in-place compaction, pointer-reversal, scan-link, storage management}
}

@techreport{Peterson94,
   author = {J Peterson},
   title = {Dynamic typing in Haskell},
   type = {YALEU/DCS/RR-1022, $|$DCS$|$, Yale University},
   month = jul,
   year = {1994},
   keywords = {type representation, derived instances, ML}
}

@techreport{Peterson94a,
   author = {J Peterson},
   title = {A simple proposal for adding structures to Haskell},
   type = {$|$DCS$|$, Yale University},
   month = jul,
   year = {1994},
   keywords = {records, language, fields, inheritance}
}

@article{Smith94,
   author = {JE Smith and S Weiss},
   title = {PowerPC 601 and Alpha 21064: a tale of two RISCs},
   journal = {IEEE Computer},
   volume = {27},
   number = {6},
   pages = {46-58},
   month = jun,
   year = {1994},
   keywords = {architecture, clock speed vs instr complexity}
}

@article{Srinivas94,
   author = {M Srinivas and LM Patnaik},
   title = {Genetic algorithms: a survey},
   journal = {IEEE Computer},
   volume = {27},
   number = {6},
   pages = {17-27},
   month = jun,
   year = {1994},
   keywords = {simulated annealing; good intro}
}

@article{Kurki-Suonio94,
   author = {R Kurki-Suonio},
   title = {Real time: further misconceptions},
   journal = {IEEE Computer},
   volume = {27},
   number = {6},
   pages = {71-76},
   month = jun,
   year = {1994},
   keywords = {reactive systems}
}

@techreport{Bohlmann94,
   author = {K Bohlmann and R Loogen and Y Ortega-Mallen},
   title = {Functional parallel programming},
   type = {RWTH Aachen},
   month = jul,
   year = {1994},
   keywords = {explicitly parallel processes, CFP, streams}
}

@techreport{Hill94,
   author = {JMD Hill and Keith Clarke and R Bornat},
   title = {The vectorisation monad},
   type = {$|$DCS$|$, Queen Mary and Westfield College, London},
   month = jul,
   year = {1994},
   keywords = {parallel scan, program transformation, data parallel}
}

@book{Meng94,
   editor = {TH Meng and S Malik},
   title = {Asynchronous circuit design for {VLSI} signal processing},
   publisher = {Kluwer},
   year = {1994},
   keywords = {hardware, no global clock, state machines}
}

@incollection{OHearn??,
   author = {PW O'Hearn and RD Tennent},
   title = {Relational parametricity and local variables},
   booktitle = {$|$POPL93$|$},
   pages = {171-184},
   keywords = {polymorphism}
}

@book{Milner90,
   author = {R Milner and M Tofte},
   title = {The definition of Standard {ML}},
   publisher = {MIT Press},
   year = {1990},
   keywords = {SML semantics}
}

@inproceedings{milner:standard-ml-proposal,
  author = {Robin Milner},
  title = {A proposal for {Standard ML}},
  booktitle = {{ACM Symposium on LISP and Functional Programming}},
  pages = {184-197},
  year = {1984}
}

@article{Bird84,
   author = {RS Bird},
   title = {Using circular programs to eliminate multiple traversals of data},
   journal = {Acta Informatica},
   volume = {21},
   number = {3},
   pages = {239-250},
   year = {1984},
   keywords = {recursion, laziness}
}

@incollection{Hall??b,
   author = {CV Hall},
   title = {Using Hindley-Milner type inference to optimise list representation},
   crossref = "lfp94",
   pages = {162-172},
   keywords = {hydras}
}

@unpublished{maessen:pH,
   author = "A Caro and J-W Maessen",
   title = "A compiler for pH: an implicitly parallel, multithreaded
                  Haskell",
   year = 1999
}

@inproceedings{hughes:bounded,
  author = "RJM Hughes and L Pareto",
  title = "Recursion and Dynamic Data-structures in Bounded Space:
                  Towards Embedded ML Programming",
  crossref = "icfp99"
}

@techreport{Maessen94,
   author = {J-W Maessen},
   title = {Eliminating intermediate lists in pH using local transformations},
   type = {MSc thesis, Lab for Computer Science, MIT},
   month = may,
   year = {1994},
   keywords = {deforestation, foldr/build}
}

@article{Gupta94,
   author = {R Gupta and SA Smolka and S Bhaskar},
   title = {On randomisation in sequential and distributed algorithms},
   journal = {ACM Computing Surveys},
   volume = {26},
   number = {1},
   pages = {7-86},
   month = mar,
   year = {1994},
   keywords = {random, approximation}
}

@article{rojemo+:new-dimensions,
   author = {N R{\"o}jemo and C Runciman},
   title = {New dimensions in heap profiling},
   journal = jfp,
   volume = {6},
   number = {4},
   month = sep,
   year = {1996},
   keywords = {nhc, clausify, lifetime and retainer profiling, space leak}
}

@unpublished{wallace:nhc-web-pages,
   author = "Malcolm Wallace",
   title = "The nhc98 web pages",
   year = 1998,
   note = "Available at \url{http://www.cs.york.ac.uk/fp/nhc98}"
}

@incollection{rojemo+:lag-drag-void,
   author = {N R{\"o}jemo and C Runciman},
   title = {Lag, drag, void, and use: heap profiling and space-efficient compilation revisited},
   crossref = "icfp96",
   pages = {34-41},
   keywords = {nhc, clausify, lifetime and retainer profiling, space leak}
}

@article{Anonymous94d,
   key = {Anonymous94d},
   title = {Special issue on intelligent agents},
   journal = cacm,
   volume = {37},
   number = {7},
   month = jul,
   year = {1994}
}

@incollection{Reinhold??,
   author = {MB Reinhold},
   title = {Cache performance of garbage-collected programs},
   booktitle = {$|$PLDI94$|$},
   pages = {206-217},
   keywords = {storage management, memory hierarchy}
}

@article{Anonymous94e,
   key = {Anonymous94e},
   title = {Special issue on the PowerPC},
   journal = cacm,
   volume = {37},
   number = {6},
   month = jun,
   year = {1994},
   keywords = {architecture, pipelining, cache, 603}
}

@article{Shieber94,
   author = {SM Shieber},
   title = {Lessons from a restricted Turing Test},
   journal = cacm,
   volume = {37},
   number = {6},
   pages = {70-78},
   month = jun,
   year = {1994},
   keywords = {AI, artificial intelligence}
}

@techreport{Bennett94,
   author = {AJ Bennett and PHJ Kelly and R Patterson},
   title = {Derivation and performance of a pipelined transaction processor},
   type = {Department of Computing, Imperial College London},
   month = jul,
   year = {1994},
   keywords = {trinder, parade, database, parallel graph reduction}
}

@techreport{Liedtke94,
   author = {J Liedtke},
   title = {The small proposal for exploring structured memory},
   type = {GMD},
   month = may,
   year = {1994},
   keywords = {virtual memory, page tables, guarded page tables, object memory, protection}
}

@techreport{Thiemann93a,
   author = {P Thiemann},
   title = {Safe Sequencing of Assignments in Purely Functional Programming Languages},
   type = {Tech. Report. Wilhelm-Schickard-Institut WSI-93-i6, Tübingen, Germany},
   year = {1993}
}

@article{Zhu94,
   author = {H Zhu},
   title = {How powerful are folding/unfolding transformations},
   journal = jfp,
   volume = {4},
   number = {1},
   pages = {89-112},
   month = jan,
   year = {1994},
   keywords = {efficiency, partial correctness}
}

@techreport{Hammond94,
   author = {K Hammond},
   title = {Parallel functional programming: an introduction},
   type = {Department of Computing Science, University of Glasgow},
   month = aug,
   year = {1994},
   keywords = {GRIP, good bibliography}
}

@techreport{Reekie94,
   author = {HJ Reekie},
   title = {Visual Haskell: {A} First Attempt},
   type = {Research Report 94.5, Key Centre for Advanced Computing Sciences, University of Technology, Sydney},
   month = sep,
   year = {1994},
   keywords = {visual programming, picures, editor.  FTP: ftp.ee.uts.edu.au:/pub/prose/visual-haskell.ps.gz}
}

@inproceedings{nikhil:cid,
   author = {RS Nikhil},
   title = {Cid: a parallel ``shared-memory'' {C} for distributed-memory machines},
   booktitle = {Proc Workshop on Languages and Compilers for Parallel Computing},
   publisher = {Springer Verlag LNCS},
   volume = 892,
   month = aug,
   year = {1994},
   keywords = {I-structures, rendezvous variables}
}

@inproceedings{le-botlan:mlf,
  author = "D {Le Botlan} and D R\'{e}my",
  title = "{MLF}: raising {ML} to the power of {System F}",
  crossref = "icfp03", 
  pages="27-38"
}

@inproceedings{burger:profile-driven,
  author = "RG Burger and RK Dybvig",
  title = "An infrastructure for profile-driven dynamic
                  recompilation",
  booktitle = "Proc ICCL'98",
  year = 1998,
  keywords = "profiling"
}

@techreport{Burger94,
   author = {RG Burger and O Waddell and RK Dybvig},
   title = {Register allocation using lazy saves, eager restores, and greedy shuffling},
   type = {Indiana University},
   month = jul,
   year = {1994},
   keywords = {compilers, Scheme; may be in POPL'95}
}

@techreport{Morrisett94,
   author = {G Morrisett and M Felleisen and R Harper},
   title = {Abstract models of memory management},
   type = {$|$DCS$|$, Carnegie Mellon University},
   month = jul,
   year = {1994},
   keywords = {Submitted to POPL'95.  Launchbury heaps.  Garbage collection}
}

@techreport{Heintze94,
   author = {N Heintze},
   title = {Set-based analysis of {ML} programs},
   type = {School of Computer Science, Carnegie Mellon University},
   year = {1994},
   keywords = {array bounds, control flow, specialisation}
}

@techreport{Lloyd94,
   author = {JW Lloyd},
   title = {Combining functional and logic programming languages},
   type = {CSTR-94-07, Computer Science Department, University of Bristol},
   month = jul,
   year = {1994},
   keywords = {Godel, Escher, Haskell, lambda Prolog}
}

@techreport{Lloyd94a,
   author = {JW Lloyd},
   title = {Practical advantages of declarative programming},
   type = {CSTR-94-06, Computer Science Department, University of Bristol},
   month = jul,
   year = {1994},
   keywords = {why fp matters, teaching, software engineering, specification}
}

@incollection{Ariola??,
   author = {Z Ariola and M Felleisen and J Maraist and M Odersky and P Wadler},
   title = {A call by need lambda calculus},
   booktitle = {$|$POPL95$|$},
   pages = {233-246}
}

@techreport{Abadi94a,
   author = {M Abadi and L Cardelli},
   title = {An imperative object calculus},
   type = {DEC SRC},
   month = jul,
   year = {1994},
   keywords = {object oriented type system}
}

@incollection{King??a,
   author = {DJ King and J Launchbury},
   title = {Structuring depth-first search algorithms in Haskell},
   booktitle = {$|$POPL95$|$},
   keywords = {state monad transformer imperative}
}

@incollection{Turner??a,
   author = {DN Turner and PL Wadler and C Mossin},
   title = {Once upon a type},
   booktitle = {$|$FPCA95$|$},
   pages = {1-11},
   keywords = {linear; practical analysis}
}

@incollection{liang+:monad-transformers,
   author = {S Liang and P Hudak and M Jones},
   title = {Monad transformers and modular interpreters},
   crossref = "popl95",
   pages = "333-343"
}

@inproceedings{harrison-kamin:modular-compilers,
  title={{Modular compilers based on monad transformers}},
  author={Harrison, WL and Kamin, SN},
  booktitle={Proc International Conference on Computer Languages},
  pages={122-131},
  year={1998}
}

@article{faxen:haskell-static,
  author = "Karl-Filip Faxen",
  title = "A static semantics for {Haskell}",
  journal = jfp,
  volume = 12,
    number    = {4{\&}5},
  page = "295-357", 
  month = jul, year = 2002
}

@techreport{Faxen94,
   author = {K-F Faxen},
   title = {What goes where?},
   type = {Royal Institute of Technology, Stockholm},
   month = jul,
   year = {1994},
   keywords = {analysis, how values are used; rejected POPL95}
}

@incollection{Sands??,
   author = {D Sands},
   title = {Total correctness by local improvement in program transformation},
   booktitle = {$|$POPL95$|$},
   keywords = {fold unfold; nice paper}
}

@techreport{Jones94a,
   author = {M Jones},
   title = {Using polymorphism and records to express modular structure},
   type = {$|$DCS$|$, Yale University},
   month = jul,
   year = {1994},
   keywords = {Haskell, SML; rejected POPL95}
}

@techreport{Bernstein??,
   author = {KL Bernstein and EW Stark},
   title = {Operational semantics of a focussing debugger},
   type = {$|$DCS$|$, State University of New York at Stony Brook},
   keywords = {good motivation, but peters out; rejected POPL95}
}

@incollection{harper:intensional,
   author = {R Harper and G Morrisett},
   title = {Compiling polymorphism using intensional type analysis},
   crossref = "popl95",
   pages = {130-141},
   keywords = {second order lambda calculus, and more}
}

@incollection{Dubois??,
   author = {C Dubois and F Rouaix and P Weis},
   title = {Generic polymorphism},
   booktitle = {$|$POPL95$|$},
   keywords = {typecase, programmer-visible, dynamic types}
}

@incollection{schauser:partitioning,
   author = {KE Schauser and DE Culler and SC Goldstein},
   title = {Separation constraint partitioning: a new algorithm for partitioning non-strict programs into sequential threads},
   crossref = "popl95",
   pages = "259-271",
   keywords = {data flow, Id, eager}
}

@article{Anonymous94f,
   key = {Anonymous94f},
   title = {The third age: a survey of the computer industry},
   journal = {The Economist},
   month = {17 Sept},
   year = {1994},
   keywords = {File under E.}
}

@techreport{Okasaki94a,
   author = {Chris Okasaki},
   title = {Mazes: a motivating introduction to computer science for high school students},
   type = {School of Computer Science, Carnegie Mellon University},
   year = {1994},
   keywords = {teaching, examples, data structures, algorithms, projects}
}

@techreport{Coquand94,
   author = {Thierry Coquand and Bengt Nordstr{\"o}m and Jan M. Smith and Bj{\"o}rn von Sydow},
   title = {Type theory and programming},
   type = {Report 81, Programming Methodology Group, Chalmers University, Sweden},
   month = jun,
   year = {1994},
   keywords = {introduction to type theory}
}

@techreport{Appel88b,
   author = {AW Appel and B Duba and DB MacQueen},
   title = {Profiling in the presence of optimization and garbage collection},
   type = {CS-TR-197-88, Princeton University},
   month = nov,
   year = {1988},
   keywords = {sml}
}

@techreport{Agre94,
   author = {P Agre},
   title = {Networking on the network},
   type = {$|$DCS$|$, University of California San Diego},
   month = aug,
   year = {1994},
   keywords = {email, www, communication, research students, white coats}
}

@article{Imielinski94,
   author = {T Imielinski and BR Badrinath},
   title = {Mobile wireless computing: challenges in data management},
   journal = cacm,
   volume = {37},
   number = {10},
   pages = {18-28},
   month = oct,
   year = {1994},
   keywords = {ubiquitous}
}

@article{Oz94,
   author = {E Oz},
   title = {When professional standards are lax: the {CONFIRM} failure and its lessons},
   journal = cacm,
   volume = {37},
   number = {10},
   pages = {29-36},
   month = oct,
   year = {1994},
   keywords = {white coats, ethics, code of practice, bugs, failures, risks}
}

@techreport{Johnsson94,
   author = {T Johnsson},
   title = {Lazy monolithic array algorithms},
   type = {$|$DCS$|$, Chalmers University, Goteborg, Sweden},
   month = oct,
   year = {1994},
   keywords = {state, unification, graph algorithms}
}

@techreport{alrbrace94b,
   author = {JG Mitchell {\em et al}},
   title = {An overview of the Spring system},
   type = {Sun Microsystems Inc},
   year = {1994},
   keywords = {operating system, object oriented, microkernel, doors, capabilities}
}

@book{Norris92,
   author = {M Norris and P Rigby},
   title = {Software engineering explained},
   publisher = {Wiley},
   year = {1992},
   keywords = {the authors work for BT, British Telecom; hence realistic}
}

@article{Anonymous94g,
   key = {Anonymous94g},
   title = {PowerPC: what makes it go (special issue)},
   journal = {IEEE Micro},
   month = oct,
   year = {1994},
   keywords = {architecture, pipelining, caching, out of order execution, speculative, instruction set}
}

@article{Smith88,
   author = {JE Smith},
   title = {Characterising computer performance with a single number},
   journal = cacm,
   volume = {31},
   number = {10},
   pages = {1202-1207},
   month = oct,
   year = {1988},
   keywords = {performance, benchmarks}
}

@article{McArthur94,
   author = {DC McArthur},
   title = {World wide web and {HTML}},
   journal = {Dr Dobbs Journal},
   volume = {19},
   number = {15},
   month = dec,
   year = {1994},
   keywords = {WWW}
}

@article{Ferrari94,
   author = {AD Ferrari},
   title = {Real time scheduling algorithms},
   journal = {Dr Dobbs Journal},
   volume = {19},
   number = {15},
   month = dec,
   year = {1994},
   keywords = {rate monotonic scheduling etc}
}

@article{Lebeck94,
   author = {AR Lebeck and DA Wood},
   title = {Cache profiling and the {SPEC} benchmarks: a case study},
   journal = {IEEE Computer},
   volume = {27},
   number = {10},
   pages = {15-26},
   month = oct,
   year = {1994},
   keywords = {Speedups from profiling and modifying cache behaviour}
}

@article{Thimbleby94a,
   author = {HW Thimbleby and S Inglis and IH Witten},
   title = {Displaying 3D images: algorithms for single-image random-dot stereograms},
   journal = {IEEE Computer},
   volume = {27},
   number = {10},
   pages = {38-48},
   month = oct,
   year = {1994},
   keywords = {Magic eye}
}

@article{Vetter94,
   author = {RJ Vetter and C Spell and C Ward},
   title = {Mosaic and the World Wide Web},
   journal = {IEEE Computer},
   volume = {27},
   number = {10},
   pages = {49-57},
   month = oct,
   year = {1994},
   keywords = {WWW}
}

@article{Leveson94,
   author = {NG Leveson},
   title = {High-pressure steam engines and computer software},
   journal = {IEEE Computer},
   volume = {27},
   number = {10},
   pages = {65-73},
   month = oct,
   year = {1994},
   keywords = {white coats, therac-25, risks}
}

@book{Gordon94,
   author = {AD Gordon},
   title = {Functional Programming and Input/Output},
   publisher = {Distinguished Dissertations in Computer Science, Cambridge University Press},
   year = {1994},
   keywords = {monadic I/O, his PhD thesis plus a bit}
}

@techreport{Augustsson91,
   author = {L Augustsson and C von Dorrien},
   title = {Stingy evaluation},
   type = {Programming Methodology Group, Chalmers University},
   year = {1991},
   keywords = {space leak, garbage collection}
}

@techreport{Matthews93,
   author = {B Matthews},
   title = {Analysing a set of transformation rules using completion},
   type = {Department of Computing Science, University of Glasgow},
   month = nov,
   year = {1993},
   keywords = {compilation by transformation, order of application, term rewriting}
}

@article{Balkenhol94,
   author = {B Balkenhol},
   title = {Data compression in encoding chess positions},
   journal = {ICCA Journal},
   pages = {132-137},
   month = sep,
   year = {1994},
   keywords = {written in Haskell; application}
}

@article{Anonymous94h,
   key = {Anonymous94h},
   title = {Special issue on High Performance Fortran ({HPF})},
   journal = {IEEE Parallel and Distributed Technology},
   volume = {2},
   number = {3},
   month = {Fall},
   year = {1994},
   keywords = {data-parallel, task parallelism, distribution, architecture, silicon trends}
}

@phdthesis{Steckler94,
   author = {PA Steckler},
   title = {Correct higher-order program transformations},
   type = {Ph.{D}. Thesis},
   number = {Northeastern University},
   year = {1994},
   keywords = {closure conversion, copy propagation, thunkification, data flow analysis}
}

@inproceedings{Hartel95,
   author = {PH Hartel},
   editor = {Johnsson},
   title = {Benchmarking implementations of lazy functional languages {II}: two years later},
   booktitle = {Proceedings 7th International Workshop on Implementation of Functional Languages},
   pages = {63-68},
   month = sep,
   year = {1995},
   keywords = {GHC, performance},
   note = {Department of Computer Science, Chalmers University of Technology, G{\"o}teborg, Sweden}
}

@article{Furht94,
   author = {B Furht},
   title = {Parallel computing: glory and collapse},
   journal = {IEEE Computer},
   volume = {27},
   number = {11},
   pages = {74-75},
   month = nov,
   year = {1994},
   keywords = {thinking machines, networks, workstations}
}

@book{Tel94,
   author = {G Tel},
   title = {Introduction to distributed algorithms},
   publisher = {Cambridge University Press},
   year = {1994},
   keywords = {protocols, routing, deadlock, election, termination, fault tolerance}
}

@article{Chaum81,
   author = {D Chaum},
   title = {Untraceable Electronic Mail},
   journal = cacm,
   volume = {24},
   number = {2},
   pages = {84-88},
   month = feb,
   year = {1981},
   keywords = {public-key cryptography, email}
}

@techreport{Appel94b,
   author = {AW Appel},
   title = {Emulating write-allocate on a no-write-allocate cache},
   type = {CS-TR-459-94, Princeton University},
   month = jul,
   year = {1994},
   keywords = {compacting garbage collection}
}

@inproceedings{Wilson94,
   author = {GV Wilson and RB Irvin and A Sukul},
   title = {Assessing the Usability of Parallel Programming Systems: The Cowichan Problems},
   booktitle = {Proceedings of the IFIP Working Conference on Programming Environments for Massively Parallel Distributed Systems},
   publisher = {{Birkh{\"a}user} Verlag AG},
   month = apr,
   year = {1994},
   keywords = {performance, benchmark, comparison, scientific}
}

@techreport{Bartlett91,
   author = {JF Bartlett},
   title = {Don't fidget with widgets, draw!},
   type = {RR 91/6, DEC Western Research Lab},
   month = may,
   year = {1991},
   keywords = {GUI, interactive systems, HCI}
}

@techreport{Kamin94,
   editor = {S Kamin and E Golin},
   title = {Report of a workshop on future directions in programming languages and compilers},
   type = {University of Illinois},
   month = may,
   year = {1994},
   keywords = {research, projects, ideas, crystal ball, the future}
}

@incollection{Allen90,
   author = {R Allen and S Johnson},
   title = {Compiling {C} for vectorization, parallelization, and inline expansion},
   booktitle = {SIGPLAN '90},
   publisher = {ACM},
   month = jun,
   year = {1990},
   keywords = {Could be 1988}
}

@incollection{Hall91,
   author = {MW Hall and L Torczon},
   title = {An experiment with inline substitution},
   booktitle = spe,
   volume = {21},
   number = {6},
   pages = {581-601},
   month = jun,
   year = {1991}
}

@article{Beemster94,
   author = {M Beemster},
   title = {Strictness optimisation for graph reduction machines: why Id might not be strict},
   journal = toplas,
   volume = {16},
   number = {5},
   pages = {1449-1466},
   month = sep,
   year = {1994},
   keywords = {eval-apply vs push-enter, abstract machines}
}

@techreport{Ang95,
   author = {BS Ang and D Chior and Arvind},
   title = {Issues in building a cache-coherent distributed shared memory machine using commercial SMPs},
   type = {CSG Memo 365, MIT Lab for Computer Science},
   month = jan,
   year = {1995},
   keywords = {PowerPC, multithreading}
}

@inproceedings{Hammond95,
   author = {K Hammond and HW Loidl and A Partridge},
   editor = {APW Bohm and JT Feo},
   title = {Visualising granularity in parallel programs: a graphical winnowing system for Haskell},
   booktitle = {Proceedings of High Performance Functional Computing},
   publisher = {Lawrence Livermore National Laboratory},
   month = apr,
   year = {1995},
   keywords = {GRIP, parallel, GranSim, simulation, graph reduction}
}

@techreport{Davy??,
   author = {JR Davy and PM Dew},
   title = {A polymorphic library for constructive solid geometry},
   type = {School of Computer Studies, University of Leeds},
   keywords = {Appears in JFP?  CSG. application}
}

@techreport{Castagna94,
   author = {G Castagna},
   title = {Covariance and contravariance: conflict without a cause},
   type = {Laboratoire d'Informatique, Ecole Normal Superieure, Paris},
   month = oct,
   year = {1994},
   keywords = {object oriented type systems, subtyping}
}

@techreport{Henderson93,
   author = {P Henderson},
   title = {Reconfigurable dining philosophers using higher-order communication},
   type = {Dept of Electronics and Computer Science, University of Southampton},
   month = jul,
   year = {1993},
   keywords = {process algebra, calculi, CCS, pi-calculus}
}

@techreport{Gravell94,
   author = {A Gravell and P Henderson},
   title = {Executing formal specifications need not be harmful},
   type = {Dept of Electronics and Computer Science, University of Southampton},
   month = jun,
   year = {1994},
   keywords = {software engineering, functional programming}
}

@techreport{Kenner95,
   author = {R Kenner},
   title = {Targeting and retargeting the {GNU} optimising compiler},
   type = {Tutorial at POPL},
   number = {'95},
   month = jan,
   year = {1995},
   keywords = {GNU C compiler, back end, RTL, register allocation}
}

@techreport{Pierce??,
   author = {BC Pierce and DN Turner},
   title = {Concurrent objects in a process calculus},
   type = {$|$DCS$|$, University of Edinburgh},
   year = {Mar 95},
   keywords = {PICT, pi-calculus, lambda calculus, object oriented, GUI}
}

@techreport{Noble95,
   author = {R Noble and C Runciman},
   title = {Gadgets: lazy functional components for graphical user interfaces},
   type = {$|$DCS$|$, University of York},
   month = mar,
   year = {1995},
   keywords = {GUIs}
}

@article{Pountain94,
   author = {D Pountain},
   title = {Functional programming comes of age},
   journal = {BYTE},
   pages = {183-184},
   month = aug,
   year = {1994},
   keywords = {Clean, Haskell}
}

@article{jones:constructor-classes,
   author = {MP Jones},
   title = {A system of constructor classes: overloading and implicit higher-order polymorphism},
   journal = jfp,
   volume = {5},
   number = {1},
   pages = {1-36},
   month = jan,
   year = {1995},
   keywords = {Haskell}
}

@inproceedings{jones:constructor-classes-icfp,
   author = {MP Jones},
   title = {A system of constructor classes: overloading and implicit higher-order polymorphism},
   crossref = "fpca93",
   keywords = {Haskell}
}

@article{Achten95,
   author = {P Achten and R Plasmeijer},
   title = {The ins and outs of Clean {I}/{O}},
   journal = jfp,
   volume = {5},
   number = {1},
   pages = {81-110},
   month = jan,
   year = {1995},
   keywords = {input, output, monads, uniqueness types, linearity, side effects}
}

@article{Abadi95,
   author = {M Abadi and L Cardelli and B Pierce and D Remy},
   title = {Dynamic typing in polymorphic languages},
   journal = jfp,
   volume = {5},
   number = {1},
   pages = {111-130},
   month = jan,
   year = {1995},
   keywords = {type systems, persistence, dynamics}
}

@incollection{Pierce95,
   author = {BC Pierce and DN Turner},
   title = {Concurrent Objects in a Process Calculus},
   booktitle = {Theory and Practice of Parallel Programming (TPPP), Sendai, Japan},
   publisher = {Springer Verlag LNCS},
   year = {1995},
   keywords = {PICT pi-calculus choice}
}

@book{Ltd84,
   author = {INMOS Ltd},
   title = {Occam Programming Manual},
   publisher = {Prentice Hall},
   year = {1984},
   keywords = {book CSP}
}

@techreport{Pierce94,
   author = {BC Pierce},
   title = {Programming in the pi-calculus: an experiment in programming language design},
   type = {Computer Lab, University of Cambridge},
   year = {1994},
   keywords = {PICT}
}

@article{Milner92,
   author = {R Milner and J Parrow and D Walker},
   title = {A calculus of mobile processes (Parts {I} and {II})},
   journal = {Information and computation},
   volume = {100},
   pages = {1-77},
   year = {1992},
   keywords = {pi calculus}
}

@phdthesis{Reppy92,
   author = {J Reppy},
   title = {Higher-order concurrency},
   type = {Ph.{D}. Thesis},
   number = {TR 92-1285, Cornell University},
   month = jun,
   year = {1992},
   keywords = {CML SML}
}

@book{Milner89,
   author = {R Milner},
   title = {Communication and concurrency},
   publisher = {Prentice Hall},
   year = {1989},
   keywords = {CCS book}
}

@techreport{Runciman95,
   author = {C Runciman},
   title = {Termination and confluence in Explode},
   type = {$|$DCS$|$, University of York},
   month = mar,
   year = {1995},
   keywords = {game,proof}
}

@inproceedings{Honda92,
   author = {K Honda and M Tokoro},
   title = {On Asynchronous Communication Semantics},
   booktitle = {ECOOP 91 Workshop on Object-based Concurrent Computing},
   publisher = {Springer-Verlag LNCS},
   year = {1992},
   keywords = {the asynchronous pi-calculus, concurrency, communication}
}

@phdthesis{Stoye85a,
   author = {W Stoye},
   title = {The implementation of functional languages using custom hardware},
   type = {Ph.{D}. Thesis},
   number = {TR81, Computer Lab, University of Cambridge},
   month = dec,
   year = {1985},
   keywords = {operating systems, non-determinism, SKIM, combinators, director strings, input/output}
}

@techreport{Poole95,
   author = {I Poole},
   title = {Public report of the {SADLI} project: safety assurance in diagnostic laboratory imaging},
   institution = {MRC Human Genetics Unit, Edinburgh},
   month = mar,
   year = {1995},
   keywords = {Haskell, Gofer, malloc ptrs, image processing, application, success, real world, software engineering}
}

@article{Wulf95,
   author = {WA Wulf and SA McKee},
   title = {Hitting the memory wall: implications of the obvious},
   journal = {Computer Architecture News},
   volume = {23},
   number = {1},
   pages = {20-24},
   month = mar,
   year = {1995},
   keywords = {memory vs processor speed, latency, cache, architecture; nice summary}
}

@book{Sarkar89,
   author = {V Sarkar},
   title = {Partitioning and scheduling parallel programs for multiprocessors},
   publisher = {MIT Press},
   year = {1989},
   keywords = {SISAL, load distribution, static}
}

@book{Bekkers92,
   editor = {Y Bekkers and J Cohen},
   title = {International Workshop on Memory Management ({IWMM}'29), St Malo},
   publisher = {Springer Verlag LNCS 637},
   month = sep,
   year = {1992},
   keywords = {garbage collection, storage}
}

@article{Adler95,
   author = {RM Adler},
   title = {Emerging standards for component software},
   journal = {IEEE Computer},
   volume = {28},
   number = {3},
   pages = {68-77},
   month = mar,
   year = {1995},
   keywords = {CORBA, OLE, OpenDoc, COM, SOM, Object models, Bento; good summary}
}

@article{Anonymous95,
   key = {Anonymous95},
   title = {Special issue on visual programming},
   journal = {IEEE Computer},
   volume = {28},
   number = {3},
   month = mar,
   year = {1995}
}

@article{Tesauro95,
   author = {G Tesauro},
   title = {Temporal difference learning and {TD}-Gammon},
   journal = cacm,
   volume = {38},
   number = {3},
   pages = {58-68},
   month = mar,
   year = {1995},
   keywords = {Backgammon program; neural networks; good}
}

@techreport{Seward95,
   author = {J Seward},
   title = {Beyond prototype implementations: polymorphic projection analysis for Glasgow Haskell},
   type = {$|$DCS$|$, University of Manchester},
   month = apr,
   year = {1995},
   keywords = {strictness analysis, anna, engineering, measurement}
}

@incollection{Reppy95,
   author = {JH Reppy},
   title = {First-class synchronous operations},
   booktitle = {Theory and Practice of Parallel Programming (TPPP), Sendai, Japan},
   publisher = {Springer Verlag LNCS},
   year = {1995},
   keywords = {CML events concurrency}
}

@book{Agha86,
   author = {G Agha},
   title = {Actors: a model of concurrent computation in distributed systems},
   publisher = {MIT Press},
   year = {1986},
   keywords = {object oriented}
}

@book{Yonezawa90,
   editor = {A Yonezawa},
   title = {{ABCL}: an object-oriented concurrent system: theory, language, programming, implementation, and application},
   publisher = {MIT Press},
   year = {1990},
   keywords = {distributed}
}

@article{Agha90,
   author = {G Agha},
   title = {Concurrent object-oriented programming},
   journal = cacm,
   volume = {33},
   number = {9},
   pages = {125-141},
   month = sep,
   year = {1990},
   keywords = {distributed}
}

@article{Giacalone89,
   author = {A Giacalone and P Mishra and S Prasad},
   title = {Facile: {A} Symmetric Integration of Concurrent and Functional Programming},
   journal = {International Journal of Parallel Programming},
   volume = {18},
   number = {2},
   year = {1989}
}

@inproceedings{Scholz95,
   author = {E Scholz},
   editor = {P Hudak},
   title = {Four concurrency primitives for Haskell},
   booktitle = {The Haskell Workshop, La Jolla},
   pages = {1-12},
   month = jun,
   year = {1995},
   keywords = {parallel, fork, channels}
}

@article{Gleser86,
   author = {LJ Gleser},
   title = {Some notes on refereeing},
   journal = {The American Statistician},
   volume = {40},
   number = {4},
   pages = {310-312},
   month = nov,
   year = {1986},
   keywords = {evaluate, journal, editing}
}

@techreport{Kennedy93,
   author = {A Kennedy},
   title = {Drawing trees: a case study in functional programming},
   type = {Computer Laboratory, University of Cambridge},
   month = jun,
   year = {1993},
   keywords = {applications, graphics}
}

@techreport{PeytonJones95,
   author = {SL {Peyton~Jones} and P Trinder and J Mattson},
   title = {A portable, parallel implementation of Haskell},
   type = {Department of Computing Science, University of Glasgow},
   year = {1995}
}

@article{deNicola83,
   author = {R de\~{}Nicola and MC Hennessy},
   title = {Testing equivalence for processes},
   journal = {Theoretical Computer Science},
   volume = {34},
   pages = {83-133},
   year = {1983},
   keywords = {concurrency, bisimulation}
}

@incollection{Gordon??a,
   author = {AD Gordon},
   title = {A Tutorial on Co-induction and Functional Programming},
   booktitle = {$|$Glasgow94$|$},
   pages = {78--95}
}

@inproceedings{winstanley:derive,
  author = "N Winstanley",
  title = "A type-sensitive preprocessor for {Haskell}",
  crossref = "Glasgow97",
  keywords = {DrIFT, Derive}
}

@inproceedings{Jeffrey95,
   author = {A Jeffrey},
   title = {A fully abstract semantics for a concurrent functional language with monadic types},
   booktitle = {Proceedings of the Tenth {IEEE} Symposium on Logic in Computer Science, San Diego},
   year = {1995}
}

@techreport{Milner91a,
   author = {R Milner},
   title = {The Polyadic $\pi$-Calculus: {A} Tutorial},
   type = {ECS-LFCS-91-180, Lab for Foundations of Computer Science, Edinburgh},
   month = oct,
   year = {1991}
}

@techreport{Lloyd95,
   author = {JW Lloyd},
   title = {Declarative programming in Escher},
   type = {CSTR-95-013, $|$DCS$|$, University of Bristol},
   month = jun,
   year = {1995},
   keywords = {logic and functional programming, Godel}
}

@techreport{Cardelli94,
   author = {L Cardelli and F matthes and M Abadi},
   title = {Extensible syntax with lexical scoping},
   type = {DEC SRC Report 121, Palo Alto},
   month = feb,
   year = {1994},
   keywords = {parsers}
}

@article{Stankovic95,
   author = {JA Stankovic and M Spuri and M di\~{}Natale and GC Buttazzo},
   title = {Implications of classical scheduling results for real-time systems},
   journal = {IEEE Computer},
   volume = {28},
   number = {6},
   pages = {16-25},
   month = jun,
   year = {1995},
   keywords = {useful survey}
}

@article{Anonymous95a,
   key = {Anonymous95a},
   title = {Symposium on Computational Complexity and the Nature of Computer Science},
   journal = {ACM Computing Surveys},
   volume = {27},
   number = {1},
   pages = {6-62},
   month = mar,
   year = {1995},
   keywords = {strategy, research, directions, CRA}
}

@techreport{alrbrace93f,
   author = {A Birrell {\em et al}},
   title = {Distributed garbage collection for network objects},
   type = {DEC SRC Research Report},
   number = {116},
   month = dec,
   year = {1993},
   keywords = {Modula3, storage management}
}

@techreport{Khalidi93,
   author = {Y Khalidi and MN Nelson},
   title = {The Spring virtual memory system},
   type = {Sun Labs Technical Report},
   number = {93-9},
   month = feb,
   year = {1993},
   keywords = {operating system}
}

@techreport{DeTreville90,
   author = {J DeTreville},
   title = {Experience with concurrent garbage collectors for Modula-2+},
   type = {DEC SRC Research Report},
   number = {64},
   month = nov,
   year = {1990},
   keywords = {storage management}
}

@article{Giladi95,
   author = {R Giladi and N Ahituv},
   title = {{SPEC} as a performance evaluation measure},
   journal = {IEEE Computer},
   volume = {28},
   number = {8},
   pages = {33-42},
   month = aug,
   year = {1995},
   keywords = {benchmark, weighted harmonic mean}
}

@article{Davison95,
   author = {A Davison},
   title = {Clickable images in {HTML}},
   journal = {Dr Dobb's Journal},
   month = sep,
   year = {1995},
   keywords = {WWW, CGI}
}

@techreport{Appel94c,
   author = {AW Appel},
   title = {Loop headers in lambda calculus or {CPS}},
   type = {CS-TR-460-94, Princeton University},
   month = jun,
   year = {1994},
   keywords = {static argument transformation}
}

@techreport{Andersen94,
   author = {HR Andersen},
   title = {An introduction to binary decision diagrams},
   type = {$|$DCS$|$, Technical University of Denmark},
   month = dec,
   year = {1994},
   keywords = {BDD, fixpoints}
}

@article{Cronin95,
   author = {D Cronin},
   title = {Single-image stereograms},
   journal = {Dr Dobb's Journal},
   month = jul,
   year = {1995},
   keywords = {magic eye}
}

@techreport{Hilzer??,
   author = {RC Hilzer and LA Crowl},
   title = {A survey of sequential and parallel implementation techniques for functional programming languages},
   type = {$|$DCS$|$, California State University, Chico}
}

@techreport{Pettersson95,
   author = {M Pettersson},
   title = {Simulating tail calls in {C}},
   type = {$|$DCS$|$, Linkoping University},
   year = {1995},
   keywords = {mini-interpreter, compiling via C}
}

@techreport{Mircevski??,
   author = {D Mircevski and BF Duba},
   title = {Baker vs the trampoline: a comparison between two portable techniques for the efficient compilation of tail calls},
   type = {$|$DCS$|$, Rice University},
   keywords = {mini-interpreter, compiling via C}
}

@incollection{Goncalves??,
   author = {MJR Goncalves and AW Appel},
   title = {Cache performance of fast-allocating programs},
   booktitle = {$|$FPCA95$|$},
   keywords = {storage management}
}

@techreport{George95,
   author = {L George and F Guillame and JH Reppy},
   title = {A portable and optimising back end for the {SML}/{NJ} compiler},
   type = {ATT Bell Labs},
   year = {1995},
   keywords = {Code generation}
}

@techreport{Simpson94,
   author = {D Simpson and W Burton},
   title = {Good worst-case memory requirements for parallel functional programs},
   type = {$|$DCS$|$, Simon Fraser University, Vancouver},
   month = apr,
   year = {1994},
   keywords = {space leaks}
}

@techreport{Chakravarty95,
   author = {MMT Chakravarty},
   title = {A self-scheduling, non-blocking parallel abstract machine for lazy functional languages},
   type = {$|$DCS$|$, Technical University of Berlin},
   month = jan,
   year = {1995},
   keywords = {STG machine, TAM, multi-threading, implementation; good}
}

@techreport{Chakravarty94a,
   author = {MMT Chakravarty and HCR Lock},
   title = {Towards the uniform implementation of declarative multi-paradigm languages},
   type = {$|$DCS$|$, Technical University of Berlin},
   month = nov,
   year = {1994},
   keywords = {STG machine, TAM, multi-threading, implementation, logic languages; good}
}

@techreport{alrbrace94c,
   author = {O Kaser {\em et al}},
   title = {Fast parallel implementation of lazy languagse: the {EQUALS} experience},
   type = {$|$DCS$|$, University of New Brunswick at Saint John},
   year = {1994},
   keywords = {strictness analysis}
}

@techreport{Ben-Asher94,
   author = {Y Ben-Asher and G Runger and R Wilhelm and A Schuster},
   title = {Load balancing and communication for a parallel functional language},
   type = {Dept of Mathematics, Haifa University, Israel},
   year = {1994},
   keywords = {array oriented, FP, SPMD}
}

@article{Toyn94,
   author = {I Toyn and AJ Dix},
   title = {Efficient binary transfer of pointer structures},
   journal = spe,
   volume = {24},
   number = {11},
   month = nov,
   year = {1994},
   keywords = {packing graph to into messages}
}

@incollection{Teo94,
   author = {YM Teo and JC Yan},
   title = {Empirical study of parallelism throttling scheems on a massively parallel system},
   booktitle = {Proc IEEE TENCON},
   publisher = {IEEE Computer Society Press},
   year = {1994},
   keywords = {load balancing, resource management}
}

@article{Tan95,
   author = {GSH Tan and WN Chin},
   title = {Load balancing and scheduling in a neighbourhood-based multiprocessor},
   journal = {Computers and Artificial Intelligence},
   volume = {4},
   number = {1},
   pages = {33-55},
   year = {1995},
   keywords = {resource management}
}

@incollection{Takano??,
   author = {A Takano and E Meijer},
   title = {Deforestation in calculational form},
   booktitle = {$|$FPCA95$|$}
}

@incollection{launchbury:warm-fusion,
   author = {J Launchbury and T Sheard},
   title = {Warm fusion},
   crossref = "fpca95",
   pages = "314-323"
}

@techreport{Maessen95,
   author = {J-W Maessen},
   title = {Simplifying parallel list traversal},
   type = {Lab for Computer Science, MIT},
   year = {1995},
   keywords = {short-cut deforestation; weird paper with interesting ideas}
}

@techreport{Russell94,
   author = {D Russell},
   title = {{FLIP}: an application written in a functional language},
   type = {Kingston Business School},
   year = {1994},
   keywords = {teaching, linear programming}
}

@techreport{Zhao93,
   author = {N Zhao and YM Teo},
   title = {Parallelism exploitation in parallel computers: techniques and issues},
   type = {TRE7/93, Department of Information Systems and Computer Science, University of Singapore},
   month = jul,
   year = {1993},
   keywords = {load balancing, resource management}
}

@techreport{Fegaras95,
   author = {L Fegaras and T Sheard and D Stemple},
   title = {Uniform traversal combinators: definition, use and properties},
   type = {$|$DCS$|$, Oregon Graduate Institute},
   year = {1995},
   keywords = {deforestation, foldr/build, catamorphisms, etc}
}

@article{Bacon94,
   author = {DF Bacon and SL Graham and OJ Sharp},
   title = {Compiler transformations for high-performance computing},
   journal = {ACM Computing Surveys},
   volume = {26},
   number = {4},
   pages = {345-420},
   month = dec,
   year = {1994},
   keywords = {loops, inlining}
}

@article{Matousek94,
   author = {J Matousek},
   title = {Geometric range searching},
   journal = {ACM Computing Surveys},
   volume = {26},
   number = {4},
   pages = {421-462},
   month = dec,
   year = {1994},
   keywords = {computational geometry}
}

@misc{Dami95,
   author = {L Dami},
   title = {More functional reusability in {C}/{C}++/Objective-{C} with curried functions},
   year = {1995},
   keywords = {using currying in an imperative context. Software engineering, reuse}
}

@techreport{Odersky91a,
   author = {M Odersky},
   title = {Objects and subtyping in a functional perspective},
   type = {IBM Research Report RC 16423, IBM Yorktown Heights},
   month = jan,
   year = {1991},
   keywords = {object oriented programming}
}

@article{duggan:multi-param,
   author = {D Duggan and J Ophel},
   title = "Type-checking multi-paramter type classes",
   keywords = "submitted to TOPLAS",
   year = 1998
}

@techreport{Duggan94,
   author = {D Duggan and J Ophel},
   title = {Kinded parametric overloading},
   type = {UW TR CS-94-35, $|$DCS$|$, University of Waterloo},
   year = {1994},
   keywords = {types, classes, records, kinds}
}

@techreport{Hudak94,
   author = {P Hudak and MP Jones},
   title = {Haskell vs Ads vs {C}++ vs Awk vs ...; an experiment in software prototyping productivity},
   type = {$|$DCS$|$, Yale University},
   month = jul,
   year = {1994},
   keywords = {software engineering}
}

@techreport{Peterson95,
   author = {J Peterson},
   title = {Dynamic typing in Haskell},
   type = {$|$DCS$|$, Yale University},
   year = {1995},
   keywords = {types}
}

@inproceedings{hallgren:fun,
  author = "Thomas Hallgren",
  title = "Fun with functional dependencies",
  year = 2001,
  month = jan,
  booktitle = "Proc Joint CS/CE Winter Meeting, Chalmers Univerity, Varberg, Sweden"
}

@techreport{Hallgren??,
   author = {T Hallgren and M Carlsson},
   title = {Stream processors for reactive programming in lazy functional languages},
   type = {$|$DCS$|$, Chalmers University},
   keywords = {fudgets}
}

@techreport{Barendsen95,
   author = {E Barendsen and S Smetsers},
   title = {Uniqueness typing in theory and practice},
   type = {Computing Science Institute, University of Nijmegen},
   year = {1995},
   keywords = {Clean}
}

@inproceedings{sabry:monadic-state,
  title = "Correctness of Monadic State: An Imperative Call-by-Need Calculus",
  author = "Z Ariola and A Sabry",
  crossref = "popl98"
}

@article{Barendsen96,
   author = {E Barendsen and S Smetsers},
   title = {Uniqueness typing for functional languages with graph
                  rewriting semantics},
   journal = mscs,
   volume = 6,
   pages = {579-612},
   year = 1996,
   keywords = {clean, linear types}
}

@article{Baker95,
   author = {H Baker},
   title = {Cons should not cons its arguments, Part {II}: Cheney on the {MTA}},
   journal = {SIGPLAN Notices},
   volume = {30},
   number = {9},
   pages = {17-20},
   month = sep,
   year = {1995},
   keywords = {tail calls, compiling via C}
}

@inproceedings{Holzle93,
   author = {U Holzle},
   title = {A fast write barrier for generational garbage collection},
   booktitle = {OOPSLA'93 Garbage Collection Workshop, Washington},
   month = oct,
   year = {1993},
   keywords = {storage management, card marking}
}

@techreport{Le95,
   author = {D Le},
   title = {Quadtree matrix algorithms revisited: basic issues and their resolution},
   type = {UCLA Computer Science Department},
   year = {1995},
   keywords = {numerical algorithms}
}

@techreport{Jones95a,
   author = {MP Jones},
   title = {From Hindley-Milner types to modular structures},
   type = {$|$DCS$|$, University of Nottingham},
   year = {1995},
   keywords = {higher order Hindley-Milner, kinds, records, structures, modules, SML}
}

@techreport{Ichikawa95,
   author = {Y Ichikawa},
   title = {Statically typed and directly updatable files for the Haskell programming language},
   type = {Department of Information Science, Ochanomizu University},
   year = {1995},
   keywords = {input/output, monads, update in place}
}

@techreport{Hammond91a,
   author = {K Hammond and CV Hall},
   title = {A natural dynamic semantics for Haskell},
   type = {Department of Computing Science, University of Glasgow},
   month = feb,
   year = {1991},
   keywords = {draft}
}

@article{Anonymous95b,
   key = {Anonymous95b},
   title = {Special issue on hardware for fuzzy systems},
   journal = {IEEE Micro},
   month = aug,
   year = {1995},
   keywords = {dissenting view page 80}
}

@article{Milligan95,
   author = {MK Milligan and HG Cragon},
   title = {Processor implementations using queues},
   journal = {IEEE Micro},
   volume = {15},
   number = {4},
   pages = {58-66},
   month = aug,
   year = {1995},
   keywords = {architecture, buffers, pipelines}
}

@inproceedings{Chakravarty95a,
   author = {MMT Chakravarty and Y Guo and M Kohler},
   title = {Goffin: higher-order functions meet concurrent constraints},
   booktitle = {First International Workshop on Concurrent Constraint Programming, Venice},
   year = {1995},
   keywords = {CLP, functional logic}
}

@incollection{Madsen93,
   author = {OL Madsen},
   editor = {JL Knudsen {\em et al}},
   title = {An overview of Beta},
   booktitle = {Object-oriented environments},
   publisher = {Prentice Hall},
   month = sep,
   year = {1993}
}

@techreport{Ungar94,
   author = {D Ungar and RB Smith},
   title = {Self: the power of simplicity},
   type = {SMLI TR-94-30, Sun Labs, Mountain View},
   month = dec,
   year = {1994},
   keywords = {object oriented}
}

@techreport{Fuchs95,
   author = {M Fuchs},
   title = {Escaping the event loop: an alternative control structure for multi-threaded GUIs},
   type = {Concurrent Engineering Research Centre, West Virginia University},
   year = {1995},
   keywords = {concurrency, widgets}
}

@incollection{Shao??b,
   author = {Z Shao and AW Appel},
   title = {A type-based compiler for Standard {ML}},
   booktitle = {$|$PLDI95$|$},
   pages = {116-129},
   keywords = {SML}
}

@incollection{Barrett??,
   author = {DA Barrett and BG Zorn},
   title = {Garbage collection using a dynamic threatening boundary},
   booktitle = {$|$PLDI95$|$},
   pages = {301-314},
   keywords = {generational storage management}
}

@incollection{Ertl??,
   author = {MA Ertl},
   title = {Stack caching for interpreters},
   booktitle = {$|$PLDI95$|$},
   pages = {315-327},
   keywords = {byte codes, stack machine, addressing modes, registers}
}

@techreport{Hudak95,
   author = {P Hudak and C-P Chen},
   title = {Rolling your own mutable {ADT}},
   type = {$|$DCS$|$, Yale University},
   month = jul,
   year = {1995},
   keywords = {state, monads, CPS, in-place update}
}

@techreport{Jones95b,
   author = {SB Jones},
   title = {An experiment in compile-time garbage collection},
   type = {Report 84, Programming Methodology Group, Chalmers University},
   month = jan,
   year = {1995},
   keywords = {linear, in-place update, analysis}
}

@techreport{Okasaki95,
   author = {C Okasaki},
   title = {Fibonacci heaps},
   type = {CMU},
   year = {1995},
   keywords = {data structures, algorithms, programming, neat, runST, state}
}

@phdthesis{santos-thesis,
   author = {A Santos},
   title = {Compilation by transformation in non-strict functional languages},
   type = {Ph.{D}. Thesis},
   school = {Department of Computing Science, Glasgow University},
   month = sep,
   year = {1995}
}

@article{Appel89c,
   author = {AW Appel},
   title = {Allocation without locking},
   journal = spe,
   volume = {19},
   number = {7},
   pages = {703-705},
   year = {1989}
}

@article{Appel89d,
   author = {AW Appel},
   title = {Vectorized garbage collection},
   journal = {The Journal of Supercomputing},
   volume = {3},
   pages = {151-160},
   year = {1989}
}

@incollection{Appel91b,
   author = {AW Appel and DB MacQueen},
   editor = {Martin Wirsing},
   title = {Standard {ML} of New Jersey},
   booktitle = {Third International Symposium on Programming Languages: Implementation and Logic Programming, New York},
   pages = {1-13},
   publisher = {Springer-Verlag},
   month = aug,
   year = {1991}
}

@incollection{Haahr93,
   author = {P Haahr and B Rakitzis},
   title = {Es: a shell with higher-order functions},
   booktitle = {Winter USENIX '93, San Diego},
   pages = {53-62},
   month = jan,
   year = {1993},
   keywords = {gluey, nice}
}

@article{Anonymous95c,
   key = {Anonymous95c},
   title = {Hot Chips {VI}},
   journal = {IEEE Micro},
   volume = {15},
   number = {2},
   month = apr,
   year = {1995},
   keywords = {Alpha 21164, Motorola 68060, architecture, cache, memory}
}

@article{Stone95,
   author = {JM Stone and RM Fitzgerald},
   title = {Storage in the PowerPC},
   journal = {IEEE Micro},
   volume = {15},
   number = {2},
   pages = {50-58},
   month = apr,
   year = {1995},
   keywords = {synchronisation, load locked, store conditional, atomicity, memory}
}

@article{Anonymous95d,
   key = {Anonymous95d},
   title = {Special issue on digital libraries},
   journal = cacm,
   volume = {38},
   number = {4},
   month = apr,
   year = {1995},
   keywords = {hypertext, WWW, Web, copyright}
}

@article{Anonymous95e,
   key = {Anonymous95e},
   title = {Special issue on object oriented programming},
   journal = {Dr Dobb's Journal},
   month = oct,
   year = {1995},
   keywords = {Ada-95, Modula 3, C++}
}

@article{alrbrace95,
   author = {T Lewis {\em et al}},
   title = {Where is software headed? {A} virtual roundtable},
   journal = {IEEE Computer},
   volume = {28},
   number = {8},
   pages = {20-32},
   month = aug,
   year = {1995},
   keywords = {research strategy, objects, functional programming}
}

@techreport{Appel95,
   author = {AW Appel},
   title = {Intensional equality for continuations},
   type = {Princeton University},
   month = sep,
   year = {1995},
   keywords = {light-hearted}
}

@inproceedings{Maraist95,
   author = {J Maraist and M Odersky and DN Turner and PL Walder},
   title = {Call-by-name, call-by-value, call-by-need, and the linear   lambda calculus},
   booktitle = {11'th International Conference on the Mathematical Foundations of Programming Semantics, New Orleans},
   month = mar,
   year = {1995}
}

@techreport{Reppy94,
   author = {JH Reppy},
   title = {A high-performance garbage collector for Standard {ML}},
   type = {ATT Bell Labs},
   year = {1994},
   keywords = {multi-generational}
}

@article{Atkinson95,
   author = {MP Atkinson and R Morrison},
   title = {Orthogonal Persistent Object Systems},
   journal = {VLDB},
   volume = {4},
   number = {3},
   year = {1995}
}

@article{Davison??,
   author = {A Davison},
   title = {Coding with {HTML} forms},
   journal = {Dr Dobb's Journal},
   volume = {June 1995},
   keywords = {WWW, Web}
}

@techreport{Backhouse95,
   author = {R Backhouse},
   title = {Making formality work for us},
   type = {$|$DCS$|$, University of Groningen},
   month = sep,
   year = {1995},
   keywords = {giving a talk, squiggol}
}

@incollection{George??a,
   author = {L George and AW Appel},
   title = {Iterated register coalescing},
   booktitle = {$|$POPL96$|$},
   pages = {208-218},
   keywords = {code generation, SML/NJ}
}

@techreport{Remy92,
   author = {D Remy},
   title = {Extending {ML} Type System with a Sorted Equational Theory},
   type = {INRIA Research Report},
   number = {1766},
   year = {1992},
   keywords = {Clever hacks for fast type checking}
}

@incollection{Barrett??a,
   author = {DA Barrett and B Zorn},
   title = {Using lifetime predictors to improve memory allocation performance},
   booktitle = {$|$PLDI93$|$},
   pages = {187-196},
   keywords = {malloc, storage management, garbage collection}
}

@article{Zorn93,
   author = {BG Zorn},
   title = {The measured cost of conservative garbage collection},
   journal = spe,
   volume = {23},
   number = {7},
   pages = {733-756},
   month = jul,
   year = {1993},
   keywords = {allocation, malloc, storage management}
}

@techreport{Remy92a,
   author = {D Remy},
   title = {Extension of the {ML} type system with a sorted equational theory of types},
   type = {INRIA Research Report},
   number = {1766},
   month = oct,
   year = {1992},
   keywords = {type inference; many ingenious optimisations}
}

@incollection{Crole94,
   author = {RL Crole and AD Gordon},
   editor = {L Pacholski and J Tiuryn},
   title = {A sound metalogical semantics for input/output effects},
   booktitle = {Computer Science Logic '94, Kazimierz, Poland},
   pages = {339-353},
   publisher = {Springer Verlag LNCS 933},
   month = sep,
   year = {1994},
   keywords = {denotational semantics for I/O}
}

@techreport{Gararup93,
   author = {S Gararup and J Seligmann},
   title = {Incremental mature garbage collection},
   type = {DAIMI IR 122, MSc thesis, $|$DCS$|$, Aarhus University},
   month = aug,
   year = {1993},
   keywords = {generational, real time}
}

@incollection{Gordon??b,
   author = {AD Gordon},
   title = {An Operational Semantics for {{I}/{O}} in a Lazy Functional Language},
   crossref = "fpca93",
   pages = {136-145},
   keywords = {input/output}
}

@incollection{Kahn77,
   author = {G Kahn and DB MacQueen},
   editor = {B Gilchrist},
   title = {Coroutines and networks of parallel processes},
   booktitle = {Information Processing '77},
   pages = {993-998},
   publisher = {North-Holland},
   year = {1977},
   keywords = {streams, operating systems}
}

@phdthesis{Gill96,
   author = {AJ Gill},
   title = {Cheap deforestation for non-strict functional languages},
   type = {Ph.{D}. Thesis},
   number = {Department of Computing Science, Glasgow University},
   month = jan,
   year = {1996},
   keywords = {foldr/build, andy}
}

@article{Haydarlou95,
   author = {AR Haydarlou and PH Hartel},
   title = {Thunk-lifting: Reducing heap usage in an implementation of a lazy functional language},
   journal = {Journal of Functional and Logic Programming},
   volume = {1},
   number = {1},
   month = aug,
   year = {1995},
   keywords = {MIT Press (ftp://mitpress.mit.edu/pub/JFLP/JFLP1995/)}
}

@techreport{databases95,
   author = {PESTO: an integrated query/browser for object databases and M Carey and L Haas and V Maganty and J Williams},
   type = {IBM Almaden Research Centre, San Jose},
   year = {1995},
   keywords = {GUI,tcl}
}

@inproceedings{Pittman87,
   author = {Thomas Pittman},
   title = {Two-Level Hybrid Interpreter/Native Code Execution for Combined Space-Time Program Efficiency},
   booktitle = {ACM SIGPLAN '97 Symposium on Interpreters and Interpretation Techniques, St Paul, Minnesota},
   pages = {150-152},
   year = {1987},
   keywords = {native code, byte code}
}

@techreport{jones:gofer-impl,
   author = {MP Jones},
   title = {The implementation of the Gofer functional programming system},
   type = {YALEU/DCS/RR-1030, Yale University},
   month = may,
   year = {1994},
   keywords = {type classes, byte codes, G-machine}
}

@phdthesis{Jorgensen95,
   author = {J Jorgensen},
   title = {A calculus for boxing analysis of polymorphically typed languages},
   type = {Ph.{D}. Thesis},
   number = {DIKU, $|$DCS$|$, University of Copenhagen},
   month = apr,
   year = {1995},
   keywords = {unboxed data types, strict languages}
}

@techreport{Rose95,
   author = {KH Rose},
   title = {Deriving abstract machines with sharing},
   type = {DIKU, University of Copenhagen},
   month = oct,
   year = {1995},
   keywords = {TIM, STG machine}
}

@incollection{Birkedal??,
   author = {L Birkedal and M Tofte and M Vejlstrup},
   title = {From region inference to von Neumann machines via region representation analysis},
   booktitle = {$|$POPL96$|$},
   pages = {184-194},
   keywords = {garbage collection, SML}
}

@article{Anonymous95f,
   key = {Anonymous95f},
   title = {Special issue on object technology},
   journal = {IEEE Computer},
   volume = {28},
   number = {10},
   month = oct,
   year = {1995},
   keywords = {object oriented}
}

@article{Anonymous95g,
   key = {Anonymous95g},
   title = {Special issue on object-oriented experience and trends},
   journal = cacm,
   volume = {38},
   number = {10},
   month = oct,
   year = {1995},
   keywords = {object technology, smalltalk}
}

@techreport{Cardelli94a,
   author = {L Cardelli},
   title = {Obliq: a language with distributed scope},
   type = {DEC SRC Report},
   number = {122},
   month = jun,
   year = {1994},
   keywords = {concurrency}
}

@techreport{Najork94,
   author = {MA Najork},
   title = {Obliq-3D: tutorial and reference manual},
   type = {DEC SRC Report},
   number = {129},
   month = dec,
   year = {1994},
   keywords = {distributed, graphics, concurrency}
}

@techreport{Broy95,
   author = {M Broy},
   title = {A functional specification of the Alpha {AXP} Shared Memory Model},
   type = {DEC SRC Report},
   number = {136},
   month = apr,
   year = {1995},
   keywords = {architecture, synchronisation, multiprocessor}
}

@techreport{Horning93,
   author = {J Horning and B Kalsow and P McJones and G Nelson},
   title = {Some useful Modula-3 interfaces},
   type = {DEC SRC Research Report},
   number = {113},
   month = dec,
   year = {1993},
   keywords = {modules, standard prelude}
}

@techreport{alrbrace88a,
   author = {L Cardelli {\em et al}},
   title = {Modula-3 report},
   type = {DEC SRC Research Report},
   number = {31},
   month = aug,
   year = {1988},
   keywords = {language design}
}

@techreport{Sabry95,
   author = {A Sabry and PL Wadler},
   title = {Compiling by reflection},
   type = {$|$GUCS$|$},
   month = nov,
   year = {1995},
   keywords = {submitted to ICFP, CPS, optimisations}
}

@techreport{Hammond92b,
   author = {K Hammond},
   title = {The Spineless Tagless {G}-machine: {NOT}!},
   type = {Department of Computing Science, University of Glasgow},
   year = {1992},
   keywords = {semi-tagging}
}

@article{Anonymous95h,
   key = {Anonymous95h},
   title = {The death of distance},
   journal = {The Economist},
   month = {30 Sept},
   year = {1995},
   keywords = {survey on telecommunications, Internet, Web, telephone, information age}
}

@article{Joch95,
   author = {A Joch},
   title = {How software doesn't work},
   journal = {Byte},
   pages = {49ff},
   month = dec,
   year = {1995},
   keywords = {risks, software engineering, project management; easy reading}
}

@article{Anonymous95i,
   key = {Anonymous95i},
   title = {Special issue on commercial and industrial artificial intelligence},
   journal = cacm,
   volume = {38},
   number = {11},
   month = nov,
   year = {1995},
   keywords = {CYC, neural, chaos, inductive logic programming, ILP, rough sets, artificial life}
}

@techreport{Hanna93,
   author = {CB Hanna and R Levin},
   title = {The Vesta language for configuration management},
   type = {DEC SRC Report},
   number = {107},
   month = jun,
   year = {1993},
   keywords = {make, build, compilers, portability, lazy evaluation}
}

@techreport{Chiu93,
   author = {S-Y Chiu and R Levin},
   title = {The Vesta repository: a file system extension for software development},
   type = {DEC SRC Report},
   number = {106},
   month = jun,
   year = {1993},
   keywords = {make, build, compilers, portability, lazy evaluation}
}

@techreport{Brown93,
   author = {MH Brown and JR Ellis},
   title = {Bridges: tools to extend the Vesta configuration management system},
   type = {DEC SRC Report},
   number = {108},
   month = jun,
   year = {1993},
   keywords = {make, build, compilers, portability, lazy evaluation}
}

@article{Burton92a,
   author = {W Burton and R Page},
   title = {Distributed random number generation},
   journal = jfp,
   volume = {2},
   number = {2},
   pages = {203-212},
   month = apr,
   year = {1992},
   keywords = {state}
}

@article{Milner83a,
   author = {R Milner},
   title = {Calculi for synchrony and asynchrony},
   journal = {Theoretical Computer Science},
   volume = {25},
   pages = {267-310},
   year = {1983},
   keywords = {CCS, concurrency}
}

@article{Hansen79,
   author = {P Brinch Hansen},
   title = {A keynote address on cuncurrent programming},
   journal = {IEEE Computer},
   pages = {50-56},
   month = may,
   year = {1979}
}

@article{Klint81,
   author = {P Klint},
   title = {Interpretation techniques},
   journal = spe,
   volume = {11},
   number = {9},
   pages = {963-973},
   month = sep,
   year = {1981},
   keywords = {byte codes, interpreters, virtual machine, threaded code}
}

@article{Davidson88,
   author = {JW Davidson and AM Holler},
   title = {A study of a {C} function inliner},
   journal = spe,
   volume = {18},
   pages = {775-790},
   year = {1988},
   keywords = {compiler}
}

@article{appel-shrinking,
   author = {AW Appel and T Jim},
   title = {Shrinking Lambda-Expressions in Linear Time},
   journal = jfp,
   volume = {7},
   number = {5},
   pages = {515-541},
   month = sep,
   year = {1997},
   keywords = {simplfication, transformation, occurrence analysis}
}

@incollection{Ohori??,
   author = {A Ohori},
   title = {A compilation method for {ML}-style polymorphic record calculi},
   booktitle = {$|$POPL92$|$},
   pages = {154-165},
   keywords = {second order lambda calculus, type systems}
}

@incollection{Tolmach??,
   author = {A Tolmach},
   title = {Tag-free garbage collection using explicit type parameters},
   crossref = "lfp94",
   pages = {1-11},
   keywords = {second order lambda calculus}
}

@PhdThesis{ chambers-thesis,  
  author        = {Chambers, C.},
  title         = {The {D}esign and {I}mplementation of the {SELF}
                   {C}ompiler, an {O}ptimizing {C}ompiler for 
                   {O}bject-{O}riented {P}rogramming {L}anguages},
  school        = {Stanford University},  
  year          = 1992,
  month         = mar,  
  address       = {Departement of Computer Science},
  type          = {Technical Report {STAN-CS-92-1240}}
}

@inproceedings{Chambers95,
   author = {C Chambers and J Dean and D Grove},
   title = {A framework for selective recompilation in the presence of complex intermodule dependencies},
   booktitle = {Proc International Conference on Software Engineering, Seattle},
   month = apr,
   year = {1995},
   keywords = {modules}
}

@phdthesis{Marlow96,
   author = {S Marlow},
   title = {Deforestation for Higher Order Functional Programs},
   type = {Ph.{D}. Thesis},
   number = {dcs.gla$|$},
   month = mar,
   year = {1996},
   keywords = {transformation}
}

@incollection{Reynolds74,
   author = {JC Reynolds},
   title = {Towards a theory of type structure},
   booktitle = {International Programming Symposium},
   pages = {408-425},
   publisher = {Springer Verlag LNCS 19},
   year = {1974},
   keywords = {second order lambda calculus}
}

@incollection{Girard71,
   author = {J Girard},
   editor = {JE Fenstad},
   title = {Une extension de l'interpretation de {G}{\"o}del a l'analyse, et son application a l'elimination de coupures dans l'analyse et la theorie des types},
   booktitle = {2nd Scandinavian Logic Symposium},
   pages = {63-92},
   publisher = {North Holland},
   year = {1971},
   keywords = {second order lambda calculus}
}

@inproceedings{Fegaras95a,
   author = {L Fegaras and D Maier},
   title = {Towards and effetive calculus for object query languages},
   booktitle = {ACM SIGMOD International Conference on Management of Data, San Jose},
   publisher = {ACM},
   month = may,
   year = {1995},
   keywords = {SQL, list comprehensions, monoid comprehensions, transformation}
}

@incollection{Takeuchi94,
   author = {K Takeuchi and K Honda and M Kubo},
   title = {An interaction-based language and its typing system},
   booktitle = {Proc PARLE'94},
   publisher = {Springer Verlag LNCS 817},
   year = {1994},
   keywords = {concurrency, pi-calculus, types}
}

@techreport{Serrano95,
   author = {M Serrano and M Feely},
   title = {Storage use analysis},
   type = {University of Montreal},
   year = {1995},
   keywords = {lifetime analysis, boxing and unboxing}
}

@techreport{Ohori95,
   author = {A Ohori},
   title = {A polymorphic record calculus and its compilation},
   type = {Research Institute for Mathematical Sciences, Kyoto University},
   year = {1995},
   keywords = {second order lambda, structures, tags}
}

@techreport{Chakravarty95b,
   author = {MMT Chakravarty},
   title = {Higher-order logic as a basis for abstract machines implementing functional logic languages},
   type = {Technical University of Berlin},
   month = apr,
   year = {1995},
   keywords = {STG machine, JUMP-machine, Escher, Prolog}
}

@techreport{Duggan95,
   author = {D Duggan},
   title = {Polymorphic methods with self types for {ML}-like languages},
   type = {CS-95-03, $|$DCS$|$, University of Waterloo},
   year = {1995},
   keywords = {records, polymorphism, object oriented, types}
}

@article{tools??,
   author = {Special issues on performance evaluation tools},
   journal = {IEEE Parallel \& Distributed Technology 3(4) Winter 95; IEEE Computer 28(11) Nov 95},
   keywords = {visualisation tools for parallel systems}
}

@article{alrbrace95a,
   author = {H El-Rewini {\em et al}},
   title = {Task scheduling in multiprocessor systems},
   journal = {IEEE Computer},
   volume = {28},
   number = {12},
   pages = {27-38},
   month = dec,
   year = {1995},
   keywords = {resource management, distribution}
}

@techreport{Palem96,
   author = {KV Palem and V Sarkar},
   title = {Code optimisation in modern compilers},
   type = {Tutorial notes, POPL'96, St Petersburg Beach, Florida},
   month = jan,
   year = {1996},
   keywords = {register allocation, colouring, instruction scheduling, loops, caches, flow analysis}
}

@article{Mirghafori95,
   author = {N Mirghafori and M Jacoby and D Patterson},
   title = {Truth in {SPEC} benchmarks},
   journal = {Computer Architecture News},
   volume = {23},
   number = {5},
   pages = {34-42},
   month = dec,
   year = {1995},
   keywords = {arithmetic, geometric mean}
}

@techreport{Bailey??,
   author = {SW Bailey},
   title = {An under-the-hood comparison of abstract machines for lazy functional program execution},
   type = {$|$DCS$|$, University of Chicago},
   year = {Feb 96},
   keywords = {Hielp, HAM, interactive; I wrote a review}
}

@techreport{Cardelli95,
   author = {L Cardelli},
   title = {Program fragments, linking, and modularization},
   type = {DEC SRC},
   month = aug,
   year = {1995},
   keywords = {separate compilation, modules, SML, functors}
}

@book{mark-jones-thesis,
   author = {MP Jones},
   title = {Qualified types: theory and practice},
   publisher = cup,
   month = nov,
   year = {1994},
   keywords = {thesis}
}

@inproceedings{Jones94d,
   author = {MP Jones},
   title = {Dictionary-free overloading by partial evaluation},
   booktitle = {ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation (PEPM), Orlando, Florida},
   publisher = {ACM},
   month = jun,
   year = {1994},
   keywords = {PEPM94, specialisation}
}

@incollection{odersky:annotations,
   author = {M Odersky and K L{\"a}ufer},
   title = {Putting type annotations to work},
   crossref = "popl96",
   pages = {54-67}
}

@book{Lewis95,
   author = {T Lewis},
   title = {Object-oriented application frameworks},
   publisher = {Manning/Prentice Hall},
   year = {1995}
}

@article{Miller91,
   author = {D Miller},
   title = {A logic programming language with lambda abstraction, function variables, and simple unification},
   journal = {Journal of Logic and Computation},
   volume = {1},
   number = {4},
   year = {1991}
}

@incollection{jones-param-sigs,
   author = {MP Jones},
   title = {Using parameterized signatures to express modular structure},
   crossref = "popl96",
   pages = {68-78},
   keywords = {modules, quantification, records}
}

@article{laufer:existentials,
  author = {K L{\"a}ufer and M Odersky},
  title = "Polymorphic type inference and abstract data types", 
  journal = toplas,
  volume = 16, issue = 5,
  year = 1994, 
  pages = "1411-1430",
  keywords = "existentials"
}

@phdthesis{Lbackslashlbra92,
   author = {K Läufer},
   title = {Polymorphic Type Inference and Abstract Data Types},
   type = {Ph.{D}. Thesis},
   number = {New York University},
   month = jul,
   year = {1992}
}

@article{laufer-odersky:existential,
 author = {K. Läufer and M. Odersky},
 title = {Polymorphic type inference and abstract data types},
 journal = toplas,
 volume = {16},
 number = {5},
 year = {1994},
 issn = {0164-0925},
 pages = {1411--1430}, 
 publisher = {ACM Press}
}

@techreport{alrbrace95b,
   author = {AAA Fernandes {\em et al}},
   title = {Extending {ROCK}  {ROLL} with spatial data types: Part 1},
   type = {$|$DCS$|$, University of Manchester},
   month = nov,
   year = {1995},
   keywords = {ROSE algebras, realms, computational geometry, Paton is the key man}
}

@techreport{alrbrace95c,
   author = {V Muller {\em et al}},
   title = {Virtual realms: an efficient implementation strategy for finite resolution spatial data types},
   type = {$|$DCS$|$, University of Manchester},
   year = {1995},
   keywords = {ROSE algebras, realms, computational geometry, Paton is the key man}
}

@inproceedings{Lang87,
   author = {B Lang and F Dupont},
   title = {Incremental, incrementally-compacting garbage collection},
   booktitle = {Some ACM proceedings},
   pages = {253-263},
   publisher = {ACM},
   year = {1987},
   keywords = {storage management; interesting}
}

@techreport{Lincoln94,
   author = {P Lincoln and N Marti-Oliet and J Meseguer},
   title = {Specification, transformtion, and programming of concurrent systems in rewriting logic},
   type = {TR SRI-CSL-94-11, SRI International},
   month = may,
   year = {1994}
}

@article{Adams94,
   author = {R Adams and W Tichy and A Weinert},
   title = {The cost of selective recompilation and environment processing},
   journal = {ACM Transactions on Software Engineering and Methodology},
   volume = {3},
   number = {1},
   pages = {3-28},
   month = jan,
   year = {1994},
   keywords = {make, programming environment, dependency, modules, interfaces}
}

@techreport{Wakeling96,
   author = {D Wakeling},
   title = {A throw-away compiler for a lazy functional language},
   type = {$|$DCS$|$, University of Exeter},
   year = {1996},
   keywords = {byte codes, small footprint, lightweight}
}

@techreport{Anonymous96,
   key = {Anonymous96},
   title = {Proceedings of Third Massey Functional Programming Workshop},
   type = {Massey University},
   month = feb,
   year = {1996},
   keywords = {concurrency, tracing, debugging, speculation, garbage collection, functional and logic, evaluation transformers}
}

@phdthesis{Beemster96,
   author = {M Beemster},
   title = {Fine-grained parallelism in a lazy functional language},
   type = {Ph.{D}. Thesis},
   number = {University of Amsterdam},
   month = feb,
   year = {1996}
}

@incollection{Reppy??,
   author = {J Reppy and J Riecke},
   title = {Simple objects for Standard {ML}},
   booktitle = {$|$PLDI96$|$},
   keywords = {object-oriented}
}

@article{Brooks96,
   author = {FP Brooks},
   title = {The computer scientist as toolsmith},
   journal = cacm,
   volume = {39},
   number = {3},
   pages = {61-68},
   month = mar,
   year = {1996},
   keywords = {white coats, science, engineering, research strategy, experiments}
}

@article{Anonymous96a,
   key = {Anonymous96a},
   title = {Special issue on key escrow},
   journal = cacm,
   volume = {39},
   number = {3},
   month = mar,
   year = {1996},
   keywords = {cryptography, public key encryption, backups}
}

@article{Blelloch96,
   author = {GE Blelloch},
   title = {Programming parallel algorithms},
   journal = cacm,
   volume = {39},
   number = {3},
   pages = {85-97},
   month = mar,
   year = {1996},
   keywords = {NESL, data parallelism, languages}
}

@book{Gamma95,
   author = {E Gamma and R Helm and R Johnson and J Vlissides},
   title = {Design patterns: elements of reusable object-oriented software},
   publisher = {Addison Wesley},
   year = {1995}
}

@inproceedings{alrbrace96a,
   author = {R Morgan\~{}{\em et al}},
   title = {Description of the {LOLITA} System as used in {MUC}-6},
   booktitle = {Proceedings of the 6th ARPA Message Understanding Conference},
   publisher = {Morgan Kaufman},
   year = {1996},
   keywords = {ftp://ftp.dur.ac.uk/bpu/lolita/muc6-proc-paper96.ps}
}

@incollection{Mitchell??,
   author = {J Mitchell and S Meldal and N Madhav},
   title = {An extension of Standard {ML} modules with subtyping and inheritance},
   booktitle = {$|$POPL91$|$}
}

@incollection{Kahrs??,
   author = {S Kahrs},
   title = {First-class polymorphism for {ML}},
   booktitle = {$|$ESOP94$|$},
   keywords = {modules}
}

@incollection{MacQueen??,
   author = {D MacQueen and M Tofte},
   title = {A semantics for higher-order functors},
   booktitle = {$|$ESOP94$|$},
   keywords = {modules SML standard ML}
}

@incollection{Tofte??,
   author = {M Tofte},
   title = {Principal signatures for higher-order program modules},
   booktitle = {$|$POPL92$|$},
   pages = {189-199},
   keywords = {standard ML}
}

@incollection{Biswas??,
   author = {SK Biswas},
   title = {Higher-order functors with transparent signatures},
   booktitle = {$|$POPL95$|$},
   pages = {154-163},
   keywords = {modules standard ML}
}

@incollection{Leroy??a,
   author = {X Leroy},
   title = {Applicative functors and fully-transparent higher-order modules},
   booktitle = {$|$POPL95$|$},
   pages = {142-153},
   keywords = {standard ML}
}

@incollection{Harper??a,
   author = {R Harper and M Lillibridge},
   title = {A type-theoretic approach to higher-order modules with sharing},
   booktitle = {$|$POPL94$|$},
   pages = {123-137},
   keywords = {standard ML}
}

@incollection{Appel??,
   author = {AW Appel and DB MacQueen},
   title = {Separate compilation for Standard {ML}},
   crossref = "pldi94",
   pages = {13-23},
   keywords = {modules, separate compilation}
}

@incollection{Shao??c,
   author = {Z Shao and AW Appel},
   title = {Smartest recompilation},
   booktitle = {$|$POPL93$|$},
   pages = {439-450},
   keywords = {standard ML modules}
}

@incollection{Leroy??b,
   author = {X Leroy},
   title = {Manifest types, modules, and separate compilation},
   booktitle = {$|$POPL94$|$},
   pages = {109-122},
   keywords = {standard ML}
}

@inproceedings{lbraceerbracem??a,
   author = {D Rémy},
   title = {Efficient represenation of extensible records},
   booktitle = {$|$MLWorkshop92$|$},
   keywords = {polymorphism}
}

@article{Ohori-toplas,
   author = {A Ohori},
   title = {A polymorphic record calculus and its compilation},
   journal = toplas,
   volume = {17},
   number = {6},
   pages = {844-895},
   month = nov,
   year = {1995},
   keywords = {extensible records, subtyping}
}

@techreport{Harper90,
   author = {RW Harper and BC Pierce},
   title = {Extensible records without subsumption},
   type = {Technical Report CMC-CS-90-102, Carnegie Mellon University},
   month = feb,
   year = {1990},
   keywords = {subtyping}
}

@incollection{Harper??b,
   author = {RW Harper and JC Mitchell and E Moggi},
   title = {Higher-order modules and the phase distinction},
   booktitle = {$|$POPL90$|$},
   pages = {341-354},
   keywords = {standard ML}
}

@inproceedings{Ohori89a,
   author = {A Ohori and P Buneman and V Breazu-Tannen},
   title = {Database programming in Machiavelli: a polymorphic language with static type inference},
   booktitle = {Proceedings of ACM SIGMOD International Conference on Management of Data (SIGMOD'89), Portland},
   pages = {46-57},
   month = may,
   year = {1989},
   keywords = {records, inheritance, extensible}
}

@inproceedings{Wand87a,
   author = {M Wand},
   title = {Complete type inference for simple objects},
   booktitle = {Proceedings of the IEEE Symposium on Logic in Computer Science, Ithaca},
   month = jun,
   year = {1987},
   keywords = {records, extensible, inheritance, LICS}
}

@incollection{lbraceerbracem94,
   author = {D Rémy},
   editor = {CA Gunter and JC Mitchell},
   title = {Typechecking records in a natural extension of {ML}},
   booktitle = {Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design},
   pages = {67-96},
   publisher = {MIT Press},
   year = {1994}
}

@phdthesis{Holzle95,
   author = {U H{\"o}lzle},
   title = {Adaptive optimization for Self: reconciling high performance with exploratory programming},
   type = {Ph.{D}. Thesis},
   school = "Computer Science Department, Stanford University",
   number = {SMLI TR-95-35, Sun Laboratories, Mountain View},
   month = mar,
   year = {1995},
   keywords = {object oriented, Ungar}
}

@article{Howe96,
   author = {DJ Howe},
   title = {Proving congruence of bisimulation in functional programming languages},
   journal = {Information and Computation},
   volume = {124},
   pages = {103-112},
   year = {1996},
   keywords = {applicative, congruence}
}

@article{Anonymous96b,
   key = {Anonymous96b},
   title = {Special issue on neural computing},
   journal = {IEEE Computer},
   month = mar,
   year = {1996},
   keywords = {neural networks, back propagation, optimisation}
}

@article{Pierce94a,
   author = {BC Pierce and DN Turner},
   title = {Simple type-theoretic foundations for object-oriented programming},
   journal = jfp,
   volume = {4},
   number = {2},
   pages = {207-247},
   month = apr,
   year = {1994},
   keywords = {OOP, records, subtyping, existential types, inheritance}
}

@inproceedings{Thorup??,
   author = {L Thorup and M Tofte},
   title = {Object-oriented programming and Standard {ML}},
   booktitle = {$|$MLWorkshop94$|$},
   keywords = {OOP, functors, records, types}
}

@article{Atkinson85,
   author = {MP Atkinson and R Morrison},
   title = {Procedures as persistent objects},
   journal = toplas,
   volume = {7},
   number = {4},
   pages = {539-559},
   month = oct,
   year = {1985},
   keywords = {closures, Napier}
}

@techreport{ousterhout:scripting,
   author = {J Ousterhout},
  title = "Scripting:  higher-level programming for the 21st century",
  year = 1997
}

@techreport{Ousterhout95,
   author = {J Ousterhout},
   title = {Why threads are a bad idea},
   type = {OHP slides, Sun Microsystems},
   month = sep,
   year = {1995},
   keywords = {concurrency, events, call-backs (he likes call-backs!)}
}

@techreport{Ousterhout95a,
   author = {J Ousterhout},
   title = {Scripts and agents: the new software high ground},
   type = {OHP slides, Sun Microsystems},
   month = oct,
   year = {1995},
   keywords = {Java, Tcl, Tk, Telescript, Internet, mobile}
}

@techreport{Ousterhout95b,
   author = {J Ousterhout},
   title = {Tcl: a universal scripting language},
   type = {OHP slides, Sun Microsystems},
   month = oct,
   year = {1995},
   keywords = {Tcl, language design, embedding}
}

@inproceedings{Weinand94,
   author = {A Weinand and E Gamma},
   title = {{ET}++: a portable, homogeneous class library and application framework},
   booktitle = {Proc UBILAB Conference '94, Universitatsverlag Konstanz},
   year = {1994},
   keywords = {object oriented, GUI, X, interface, composable, views}
}

@article{Kofler89,
   author = {T Kofler},
   title = {Robust iterators in {ET}++},
   journal = {Structured programming},
   volume = {14},
   number = {2},
   year = {1989},
   keywords = {object oriented, container classes, sets, bags, lists, inheritance}
}

@article{Anonymous96c,
   key = {Anonymous96c},
   title = {Round table on formal methods},
   journal = {IEEE Computer},
   volume = {29},
   number = {4},
   month = apr,
   year = {1996},
   keywords = {strategy}
}

@article{Ball96,
   author = {T Ball and SG Eick},
   title = {Software visualisation in the large},
   journal = {IEEE Computer},
   volume = {29},
   number = {4},
   pages = {33-43},
   month = apr,
   year = {1996},
   keywords = {looking at gobs of source code, one pixel per line}
}

@article{Anonymous96d,
   key = {Anonymous96d},
   title = {Special issue on learner-centred design},
   journal = cacm,
   volume = {39},
   number = {4},
   month = apr,
   year = {1996},
   keywords = {CAL, TLTP, education, algorithm animation, collaborative work}
}

@techreport{Bruce95,
   author = {KB Bruce},
   title = {Typing in object-oriented languages: achieving expressibility and safety},
   type = {Williams College},
   month = nov,
   year = {1995},
   keywords = {OOP, self type, classes, subtyping}
}

@techreport{Reppy96,
   author = {JH Reppy and JB Riecke},
   title = {Classes in Object {ML} via modules},
   type = {Bell Labs},
   month = apr,
   year = {1996},
   keywords = {OOP, object oriented, subtyping, self type, classes}
}

@techreport{Scholz96,
   author = {E Scholz},
   title = {Pidgets: unifying pictures and widgets in a constraint-based framework for concurrent functional {GUI} programming},
   type = {Institut fur Informatik, Free University of Berlin},
   year = {1996},
   keywords = {Haggis, toolkit, postscipt, activeVRML}
}

@techreport{Cmelik93,
   author = {RF Cmelik and SI Kong and DR Ditzel and EJ Kelly},
   title = {An analysis of {MIPS} and {SPARC} instruction set utilization on the {SPEC} benchmarks},
   type = {SMLI TR-93-11, Sun Microsystems Labs},
   month = mar,
   year = {1993},
   keywords = {measurement, performance}
}

@article{Anonymous96e,
   key = {Anonymous96e},
   title = {A world gone soft},
   journal = {The Economist},
   month = {25 May},
   year = {1996},
   keywords = {Web, Java, Microsoft, internet}
}

@inproceedings{Thompson96,
   author = {A Thompson},
   title = {Silicon evolution},
   booktitle = {Proceedings of Genetic Programming 1996},
   publisher = {MIT Press},
   year = {1996},
   keywords = {evolutionary computing, FPGA, genetic algorithms}
}

@phdthesis{rojemo:thesis,
   author = {N Rojemo},
   title = {Garbage collection and memory efficiency in lazy functional languages},
   type = {Ph.{D}. Thesis},
   school = {Department of Computing Science, Chalmers University},
   year = {1995},
   keywords = {nhc, generational, profiling, storage management}
}

@article{Anonymous96f,
   key = {Anonymous96f},
   title = {Special issue on public key security systems},
   journal = {IEEE Micro},
   month = jun,
   year = {1996},
   keywords = {cryptography}
}

@article{Fagin96,
   author = {R Fagin and M Naor and P Winkler},
   title = {Comparing information without leaking it},
   journal = cacm,
   volume = {39},
   number = {5},
   pages = {77-85},
   month = may,
   year = {1996},
   keywords = {zero-knowledge proofs, security, protocols, cryptography}
}

@article{Feigenbaum96,
   author = {EA Feigenbaum},
   title = {Turing award lecture: how the "what" becomes the "how"},
   journal = cacm,
   volume = {39},
   number = {5},
   pages = {97-104},
   month = may,
   year = {1996},
   keywords = {AI, artificial intelligence, applications, domain-specific}
}

@incollection{Chuang??,
   author = {T-R Chuang and WL Hwang},
   title = {A probabilistic approach to the problem of automatic selection of data representations},
   booktitle = {$|$ICFP96$|$},
   pages = {190-200},
   keywords = {abstract data types, collection, bulk types, queues}
}

@incollection{Okasaki??,
   author = {C Okasaki},
   title = {The role of lazy evaluation in amortized data structures},
   booktitle = {$|$ICFP96$|$},
   pages = {62-72},
   keywords = {data structures, bulk types, collection, queues}
}

@book{Musser96,
   author = {DR Musser and A Saini},
   title = {{STL} Tutorial and Reference Guide},
   publisher = {Addison-Wesley Professional Computing Series},
   year = {1996},
   keywords = {standard template library, C++, polymorphism, collections, book}
}

@article{Berry93,
   author = {D Berry},
   title = {Lessons from the design of a Standard {ML} library},
   journal = jfp,
   volume = {3},
   number = {4},
   pages = {527-552},
   month = oct,
   year = {1993},
   keywords = {standard prelude, collections, naming}
}

@article{Buneman95,
   author = {P Buneman and S Naqvi and V Tannen and L Wong},
   title = {Principles of programming with complex objects and collection types},
   journal = {Theoretical Computer Science},
   volume = {149},
   number = {1},
   month = sep,
   year = {1995},
   keywords = {collection types, sets, bags, lists, monads}
}

@techreport{Tannen94,
   author = {V Tannen},
   title = {Tutorial: languages for collection types},
   type = {University of Pennsylvania},
   year = {1994},
   keywords = {bibliography, sets, bags lists, monads}
}

@incollection{Buneman94,
   author = {P Buneman and L Libkin and D Suciu and V Tannen and L Wong},
   title = {Comprehension syntax},
   booktitle = {SIGMOD Record},
   volume = {23},
   number = {1},
   pages = {87-96},
   month = mar,
   year = {1994},
   keywords = {CPL, bulk types, bags, sets, collections, database, SQL}
}

@incollection{Trinder??a,
   author = {PW Trinder and PL Wadler},
   title = {List comprehensions and the relational calculus},
   booktitle = {$|$Glasgow88$|$},
   pages = {115-123},
   keywords = {monads}
}

@inproceedings{Trinder91,
   author = {PW Trinder},
   title = {Comprehensions: a query notation for DBPLs},
   booktitle = {Proc 3rd International Workshop on Database Programming Languages, Nahplion, Greece},
   pages = {49-62},
   publisher = {Morgan Kaufman},
   month = aug,
   year = {1991},
   keywords = {monads, SQL}
}

@techreport{Maessen96,
   author = {J-W Maessen},
   title = {A short cut to deforestation in parallel},
   type = {Lab for Computer Science, MIT},
   year = {1996},
   keywords = {foldr/build, Boom hierarchy}
}

@incollection{Douence95,
   author = {R Douence and P Fradet},
   title = {Towards a taxonomy of functional -language implementations},
   booktitle = {PLILP'95},
   pages = {27-44},
   publisher = {Springer Verlag LNCS 982},
   year = {1995},
   keywords = {abstract machines, compilation by transformation}
}

@PhdThesis{nilsson:thesis,
  author = 	 "Henrik Nilsson",
  title = 	 "Declarative Debugging for Lazy Functional Languages",
  school = 	 "Department of Computer and Information Science,
                 {Link{\"o}pings universitet}",
  year = 	 1998,
  address =	 "S-581 83, {Link{\"o}ping}, Sweden",
  month =	 may,
  type =	 "{PhD} thesis",
  keywords = "Freja"
}

@article{Nilsson94,
   author = {H Nilsson and P Fritzson},
   title = {Algorithmic debugging for lazy functional languages},
   journal = jfp,
   volume = {4},
   number = {3},
   pages = {337-369},
   month = jul,
   year = {1994}
}

@techreport{alrbrace96b,
   author = {Arvind {\em et al}},
   title = {A comparison of implicitly parallel multithreaded and data-parallel implementations of an ocean model based on the Navier-Stokes equations},
   type = {Lab for Computer Science, MIT},
   year = {1996},
   keywords = {Scientific computation, arrays, applications}
}

@incollection{Watt96,
   author = {DA Watt},
   title = {Why don't language designers use formal methods},
   booktitle = {Keynote address, SEMISH'96},
   year = {1996},
   keywords = {action semantics}
}

@article{Bruce96,
   author = {K Bruce and L Cardelli and G Castagna and Hopkins Objects Group and GT Leavens and B Pierce},
   title = {On binary methods},
   journal = {Theory and practice of object systems},
   volume = {1},
   number = {3},
   year = {1996},
   keywords = {object oriented programming, oop, dynamic dispatch; very good}
}

@article{Brodal96,
   author = {GS Brodal and C Okasaki},
   title = {Optimal purely-functional priority queues},
   journal = jfp,
   volume = {6},
   number = {6},
   month = dec,
   year = {1996},
   keywords = {persistent, recursive, bootstrapped}
}

@article{Wilson96,
   author = {LS Wilson and CA Neth and MJ Rickabaugh},
   title = {Delivering binary object modification tools for program analysis and optimization},
   journal = {Digital Technical Journal},
   volume = {8},
   number = {1},
   pages = {18-31},
   year = {1996},
   keywords = {ATOM, OM, profiling, simulation, measurement, instruction count}
}

@techreport{Appel95a,
   author = {AW Appel},
   title = {How to edit a journal by email},
   type = {$|$DCS$|$, Princeton University},
   month = jul,
   year = {1995},
   keywords = {TOPLAS, database, editor}
}

@techreport{Cardelli96,
   author = {L Cardelli},
   title = {Program fragments, linking, and modularization},
   type = {DEC SRC},
   month = mar,
   year = {1996},
   keywords = {draft; modules}
}

@phdthesis{Mintchev95,
   author = {S Mintchev},
   title = {Machine-supported reasoning about functional language programs and implementations},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, University of Manchester},
   month = oct,
   year = {1995},
   keywords = {theorem proving, abstract machines}
}

@phdthesis{Filinski96,
   author = {A Filinski},
   title = {Controlling effects},
   type = {Ph.{D}. Thesis},
   number = {CMU-CS-96-119},
   month = may,
   year = {1996},
   keywords = {call/cc, monads, nondeterminism, state}
}

@techreport{Reynolds96,
   author = {JC Reynolds},
   title = {Design of the programming language Forsythe},
   type = {CMU-CS-96-146, Carnegie Mellon University},
   month = jun,
   year = {1996},
   keywords = {state, side effect}
}

@incollection{Berry??,
   author = {D Berry and R Milner and DN Turner},
   title = {A semantics for {ML} concurrency primitives},
   booktitle = {$|$POPL92$|$}
}

@techreport{Chakravarty95c,
   author = {M Chakravarty},
   title = {Integrating multithreading into the Spineless Tagless {G}-machine},
   type = {Technical University of Berlin},
   year = {1995},
   keywords = {STG machine, parallel, ingenious}
}

@techreport{Arvind96,
   author = {Arvind and A Caro and J-W Maessen},
   title = {A multithreaded substrate and compilation model for the implicitly parallel language pH},
   type = {CSG Memo 382, MIT Lab for Computer Science},
   month = may,
   year = {1996},
   keywords = {abstract machine, Id, dataflow}
}

@techreport{Synek95,
   author = {D Synek},
   title = {{YAPP} -- Yet Another Pots Program},
   type = {$|$DCS$|$, Chalmers University},
   year = {1995},
   keywords = {concurrency, Erlang, Ericsson, telephone}
}

@techreport{Stroustrup95,
   author = {B Stroustrup},
   title = {Why {C}++ is not just an object-oriented programming language},
   type = {AT\&T Bell Labs},
   year = {1995},
   keywords = {OOP, abstraction, polymorphism, essence of OOP}
}

@techreport{Sargeant96,
   author = {J Sargeant and SJ Hooton and I Watson and C Kirkham},
   title = {United Functions and Objects: key ideas},
   type = {$|$DCS$|$, University of Manchester},
   year = {1996},
   keywords = {UFO, OOP, abstraction, polymorphism}
}

@techreport{Connor96,
   author = {R Connor and G Ghelli and P Manghi},
   title = {Modules and type abstraction in persistent systems},
   type = {School of Mathematical and Computational Sciences, University of St Andrews},
   year = {1996},
   keywords = {modules, functors, SML, Napier, Fibonacci}
}

@incollection{Kilgore89,
   author = {CE Kilgore},
   title = {The Curry connection},
   booktitle = {T\&G},
   month = apr,
   year = {1989},
   keywords = {biography of Haskell Curry}
}

@incollection{Okasaki96,
   author = {C Okasaki},
   editor = {J Launchbury and E Meijer},
   title = {Functional Data Structures},
   booktitle = {Second International Summer School on Advanced Functional Programming Techniques},
   month = aug,
   year = {1996}
}

@incollection{tarditi:til,
   author = {D Tarditi and G Morrisett and P Cheng and C Stone and R Harper and P Lee},
   title = {{TIL}: {A} Type-Directed Optimizing Compiler for {ML}},
   crossref = "pldi96",
   pages =        "181--192"
}

@incollection{Okasaki95a,
   author = {C Okasaki},
   title = {Amortization, lazy evaluation, and persistence: lists with catenation via lazy linking},
   booktitle = {IEEE Symposium on Foundations of Computer Science},
   pages = {646-654},
   month = oct,
   year = {1995},
   keywords = {data structures, algorithms}
}

@phdthesis{Chen94,
   author = {K Chen},
   title = {A parametric extension of Haskell's type classes},
   type = {Ph.{D}. Thesis},
   number = {Department of Computer Science, Yale University},
   year = {1994},
   keywords = {collection classes are the main motivation}
}

@incollection{Freeman??,
   author = {T Freeman and F Pfenning},
   title = {Refinement types for {ML}},
   booktitle = {$|$PLDI91$|$},
   pages = {268-277},
   keywords = {assertions, sub-types, intersection types}
}

@techreport{Stepanov94,
   author = {A Stepanov and M Lee},
   title = {The Standard Template Library},
   type = {Hewlett-Packard Laboratories, Palo Alto},
   month = dec,
   year = {1994},
   keywords = {C++, bulk types, collections, sets, bags, STL}
}

@article{Kamareddine96,
   author = {F Kamareddine and R Nederpelt},
   title = {Canonical typing and Pi-conversion in the Barendregt Cube},
   journal = jfp,
   volume = {6},
   number = {2},
   pages = {245-267},
   month = mar,
   year = {1996},
   keywords = {lambda cube}
}

@inproceedings{coquand:pattern-matching,
  author = "Thierry Coquand",
  title = "Pattern Matching with Dependent Types",
  booktitle = "Proceedings of the Workshop on Types for Proofs and Program",
  address = "Baastad, Sweden", 
  pages = "66--79",
  month = jun,
  year = 1992
}

@article{Coquand88,
   author = {Thierry Coquand and G\'erard Huet},
   title = {The calculus of constructions},
   journal = {Information and Computation},
   volume = {76},
   pages = {95-120},
   year = {1988}
}

@incollection{Barendregt92a,
   author = {Henk Barendregt},
   editor = {Samson Abramsky and DM Gabbay and TSE Maibaum},
   title = {Lambda calculi with types},
   booktitle = {Handbook of Logic in Computer Science, Volume II},
   publisher = {Oxford University Press},
   year = {1992},
   keywords = {lambda cube pure type systems}
}

@phdthesis{Girard72,
   author = {J-Y Girard},
   title = {Interprétation foctionelle et élimination des coupures dans l'arithmétique d'ordre supérieur},
   type = {Ph.{D}. Thesis},
   number = {Université Paris VII},
   year = {1972},
   keywords = {second order lambda F2 Fw}
}

@techreport{Shao96,
   author = {Z Shao},
   title = {The {FLINT} compiler system},
   type = {Presentation at IFIP Working Group},
   number = {2.8},
   year = {1996},
   keywords = {typed intermediate language}
}

@phdthesis{Tarditi96,
   author = {D Tarditi},
   title = {Optimizing {ML}},
   type = {Ph.{D}. Thesis},
   number = {Carnegie Mellon University},
   year = {1996},
   keywords = {TIL}
}

@phdthesis{morrisett-thesis,
   author = {G Morrisett},
   title = {Compiling with types},
   type = {Ph.{D}. Thesis},
   number = {CMU-CS-95-226},
   school = "Carnegie Mellon University",
   month = dec,
   year = {1995},
   keywords = {TIL},
   annote = "Duplicates morrisett:compiling entry"
}

@inproceedings{meijer:mondrian,
   author = {Erik Meijer and Koen Claessen},
   title = {The design and implementation of {Mondrian}},
   crossref = "haskell-workshop-97"
}

@InProceedings{mycroft:polymorphic-recursion,
   author="Alan Mycroft",
   title="Polymorphic Type Schemes and Recursive Definitions",
   booktitle="International Symposium on Programming",
   year="1984",
   volume="167",
   series="LNCS",
   pages="217--228",
   month=apr,
   publisher="Springer-Verlag",
   status="unverified",
}

@incollection{Hu??,
   author = {Z Hu and H Iwasaki and M Takeichi},
   title = {Deriving structural hylomorphisms from recursive definitions},
   booktitle = {$|$ICFP96$|$},
   pages = {73-82},
   keywords = {deforestation, fusion}
}

@phdthesis{Jarvis96,
   author = {SA Jarvis},
   title = {Profiling large-scale lazy functional programs},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, University of Durham},
   year = {1996},
   keywords = {cost centres, stacks}
}

@inproceedings{Morgan95,
   author = {RG Morgan and SA Jarvis},
   editor = {APW Bohm and JT Feo},
   title = {Profiling large-scale lazy functional programs},
   booktitle = {Proceedings of High Performance Functional Computing},
   pages = {222-234},
   publisher = {Lawrence Livermore National Laboratory},
   month = apr,
   year = {1995},
   keywords = {cost centres stacks}
}

@incollection{Jones95c,
   author = {MP Jones},
   title = {Functional programming with overloading and higher-order polymorphism},
   booktitle = {First International Spring School on Advanced Functional Programming Techniques, Båstad, Sweden},
   publisher = {Springer-Verlag LNCS 925},
   month = may,
   year = {1995},
   keywords = {tutorial type classes constructor classes}
}

@phdthesis{Okasaki96a,
   author = {C Okasaki},
   title = {Purely functional data structures},
   type = {Ph.{D}. Thesis},
   number = {CMU-CS-96-177, $|$DCS$|$, Carnegie Mellon University},
   month = sep,
   year = {1996},
   keywords = {lazy vs strict, amortised cost, reasoning about performance, algorithms}
}

@book{okasaki:book,
   author = {C Okasaki},
   title = {Purely functional data structures},
   publisher = cup,
   year = {1998},
   keywords = {lazy vs strict, amortised cost, reasoning about performance, algorithms}
}

@incollection{elliott:fran,
   author = {C Elliott and P Hudak},
   title = {Functional reactive animation},
   crossref = "icfp97",
   pages = "263-273"
}

@incollection{jones:improving,
   author = {MP Jones},
   title = {Simplifying and improving qualified types},
   crossref = "fpca95"
}

@incollection{Odersky??b,
   author = {M Odersky and PL Wadler and M Wehr},
   title = {A second look at overloading},
   booktitle = {$|$FPCA95$|$},
   keywords = {principal types, object oriented}
}

@book{Mitchell96,
   author = {JC Mitchell},
   title = {Foundations for programming languages},
   publisher = {MIT Press},
   year = {1996},
   keywords = {book}
}

@inproceedings{mckinna:pts-formalised,
  author = " James McKinna and Randy Pollack",
  title = "Pure type systems formalized",
  booktitle = "Proc International Conference on Typed Lambda Calculi
                  and Applications, Utrecht",
  year = 1993,
  keywords = {lambda cube}
}

@incollection{Pollack93,
   author = {Randy Pollack and L van\~{}Benthem\~{}Jutting and James McKinna},
   title = {Typechecking in pure type systems},
   booktitle = {Types for Proofs and Programs, Nijmegen, May '93, Selected Papers},
   publisher = {Springer Verlag LNCS 806},
   month = may,
   year = {1993},
   keywords = {PTS}
}

@inproceedings{jutting:checking,
  author = "{LS van B Jutting} and James McKinna and Randy Pollack",
  title = "Checking algorithms for pure type systems",
  booktitle = "Types for proofs and programs: international workshop
                  TYPES'93",
  publisher = springer,
  series = lncs,
  number = 806,
  year = 1993,
  keywords = {lambda cube}
}

@techreport{Peterson97,
   author = {J Peterson and K Hammond and L Augustsson and B Boutel and W Burton and J Fasel and AD Gordon and RJM Hughes and P Hudak and T Johnsson and MP Jones and E Meijer and SL {Peyton~Jones} and A Reid and PL Wadler},
   title = {Haskell 1.4: a non-strict, purely functional language},
   type = {Available at @http://@---@haskell.org@},
   month = apr,
   year = {1997},
   keywords = {Haskell 14 report}
}

@article{Harper93,
   author = {R Harper and JC Mitchell},
   title = {On the type structure of Standard {ML}},
   journal = toplas,
   volume = {15},
   number = {2},
   pages = {211-252},
   month = apr,
   year = {1993},
   keywords = {models, polymorphic lambda calculus, predicative}
}

@incollection{Launchbury??d,
   author = {J Launchbury and R Paterson},
   title = {Parametricity and unboxing with unpointed types},
   booktitle = {$|$ESOP96$|$}
}

@article{Launchbury96,
   author = {J Launchbury and G Baraki},
   title = {Representing Demand by Partial Projections},
   journal = jfp,
   volume = {6},
   number = {4},
   year = {1996},
   keywords = {projection analysis strictness}
}

@article{Moggi91,
   author = {E Moggi},
   title = {Notions of computation and monads},
   journal = {Information and Computation},
   volume = {93},
   pages = {55-92},
   year = {1991}
}

@inproceedings{howard:inductive-types,
   author = {BT Howard},
   title = {Inductive, co-inductive, and pointed types},
   crossref = "icfp96",
   keywords = {Strong normalisation given recursive data types}
}

@techreport{Cockett92,
   author = {R Cockett and T Fukushima},
   title = {About Charity},
   type = {TR 92/480/18, $|$DCS$|$, University of Calgary},
   month = jun,
   year = {1992},
   keywords = {unpointed, category theory}
}

@incollection{Turner95,
   author = {D A Turner},
   title = {Elementary strong functional programming},
   booktitle = {Functional Programming Languages in Education, Nigmegen},
   publisher = {Springer Verlag LNCS 1022},
   month = dec,
   year = {1995},
   keywords = {unpointed, co-inductive, fple96}
}

@phdthesis{Hagino87,
   author = {T Hagino},
   title = {A Categorical Programming Language},
   type = {Ph.{D}. Thesis},
   number = {DCS$|$, University of Edinburgh},
   year = {1987}
}

@incollection{shao:flexible,
   author = {Z Shao},
   title = {Flexible representation analysis},
   crossref = "icfp97",
   pages = "85-98",
   keywords = {intermediate language, types}
}

@techreport{Harper97,
   author = {R Harper and C Stone},
   title = {A type-theoretic semantics for Standard {ML} 1996},
   type = {$|$DCS$|$, Carnegie Mellon University},
   year = {1997},
   keywords = {n}
}

@InProceedings{shao:flint-overview,
  author =	 {Zhong Shao},
  title =	 {An Overview of the {FLINT/ML} Compiler},
  booktitle =	 {Proc. 1997 {ACM} {SIGPLAN} Workshop on Types in
                  Compilation ({TIC}'97)},
  year =	 1997,
  address =	 {Amsterdam, The Netherlands},
  month =	 {June},
  abstract =	 { The FLINT project at Yale aims to build a
                  state-of-the-art systems environment for modern
                  typesafe languages. One important component of the
                  FLINT system is a high-performance type-directed
                  compiler for SML'97 (extended with higher-order
                  modules). The FLINT/ML compiler provides several new
                  capabilities that are not available in other
                  type-based compilers: type-directed compilation is
                  carried over across the higher-order module
                  boundaries; recursive and mutable data objects can
                  use unboxed representations without incurring
                  expensive runtime cost on heavily polymorphic code;
                  parameterized modules (functors) can be selectively
                  specialized, just as normal polymorphic functions;
                  new type representations are used to reduce the cost
                  of type manipulation thus the compilation time. This
                  paper gives an overview of these novel aspects, and
                  a preliminary report on the current status of the
                  implementation. }
}

@inproceedings{Henderson95,
   author = {F Henderson and Z Somogyi and T Conway},
   title = {Compiling logic programs to {C} using {GNU} {C} as a portable assembler},
   booktitle = {Proceedings of the ILPS '95 Postconference Workshop on Sequential Implementation Technologies for Logic Programming Languages, Portland, Oregon},
   month = dec,
   year = {1995},
   keywords = {http://www.cs.mu.oz.au/mercury/papers.html}
}

@article{blume:modules,
   author = {M Blume and AW Appel},
   title = "Hierarchical modularity",
   journal = toplas,
  publisher =    "ACM Press",
  year =         "1999",
  volume =       "21",
  month =        nov,
  number =       "4",
  pages =        "813--847",
  keywords = "separate compilation, make"
}

@incollection{Blume??,
   author = {M Blume and AW Appel},
   title = {Lambda-splitting: a higher-order approach to cross-module optimization},
   booktitle = {$|$ICFP97$|$},
   pages = {112-124},
   keywords = {worker-wrapper}
}

@article{friedman:cons,
   author = {DP Friedman and DS Wise},
   title = {{CONS} should not evaluate its arguments},
   journal = {Automata, Languages, and Programming},
   pages = {257-281},
   month = jul,
   year = {1976}
}

@article{Sabry97,
   author = {A Sabry},
   title = {What is a purely functional language},
   journal = jfp,
   volume = {(to appear)},
   year = {1997},
   keywords = {state monad}
}

@incollection{Sabry??,
   author = {A Sabry and PL Wadler},
   title = {A reflection on call-by-value},
   booktitle = {$|$ICFP96$|$},
   pages = {13-24},
   keywords = {administrative redexes, monads}
}

@incollection{Benton??,
   author = {N Benton and PL Wadler},
   title = {Linear logic, monads and the lambda calculus},
   booktitle = {$|$LICS96$|$}
}

@incollection{Pitts93,
   author = {AM Pitts},
   title = {Relational properties of recursively defined domains},
   booktitle = {8th Annual Symposium on Logic in Computer Science},
   pages = {86-97},
   publisher = {IEEE Computer Society Press},
   year = {1993},
   keywords = {fixpoints, unpointed}
}

@article{Pitts96,
   author = {AM Pitts},
   title = {Relational properties of domains},
   journal = {Information and Computation},
   volume = {127},
   pages = {66-90},
   year = {1996},
   keywords = {unpointed, fixpoints}
}

@incollection{Fraser95,
   author = {C Fraser and D Hanson},
   title = {A retargetable {C} compiler: design and implementation},
   publisher = {Benjamin Cummings},
   year = {1995},
   keywords = {lcc, code generation}
}

@techreport{Liu97,
   author = {A Liu and Stoller},
   title = {Loop optimization for aggregate array computations},
   type = {Indiana University},
   month = mar,
   year = {1997},
   keywords = {http://ftp.cs.indiana.edu/pub/liu/Array-TR97.ps}
}

@techreport{Maranget94,
   author = {L Maranget},
   title = {Two techniques for compiling lazy pattern matching},
   type = {RR 2385, INRIA},
   year = {1994},
   keywords = {spots in-exhaustive patterns}
}

@book{Rogerson97,
   author = {D Rogerson},
   title = {Inside {COM}: Microsoft's Component Object Model},
   publisher = {Microsoft Press},
   year = {1997}
}

@book{Brockschmidt97,
   author = {C Brockschmidt},
   title = {Inside {OLE}},
   publisher = {Microsoft Press},
   year = {1997},
   keywords = {COM, component based programming}
}

@techreport{Brockschidt96,
   author = {C Brockschidt},
   title = {What {OLE} is really about},
   type = {Microsoft Corp},
   month = jul,
   year = {1996},
   keywords = {COM, component based programming, objects}
}

@incollection{Adl-Tabatabai??,
   author = {A-R Adl-Tabatabai and G Langdale and S Lucco and S Wahbe},
   title = {Efficient and language-independent mobile programs},
   booktitle = {$|$ICFP96$|$},
   pages = {127-136},
   keywords = {Omniware, machine independent intermediate, sandbox, just in time compiling}
}

@article{McKenzie95,
   author = {B McKenzie},
   title = {Error repair in shift-reduce parsers},
   journal = toplas,
   volume = {17},
   number = {4},
   pages = {672-689},
   month = jul,
   year = {1995},
   keywords = {parser generators}
}

@techreport{Oliva97,
   author = {D Oliva and A Tolmach},
   title = {From {ML} to Ada(!?!)},
   type = {Department of Computer Science and Engineering, Oregon Graduate Institute (and submitted to Journal of Functional Programming)},
   year = {1997},
   keywords = {foreign language interface, first order functions}
}

@incollection{girard:system-f,
   author = {J-Y Girard},
   editor = {G Huet},
   title = {The System {F} of variable types: fifteen years later},
   booktitle = {Logical Foundations of Functional Programming},
   publisher = {Addison-Wesley},
   year = {1990},
   keywords = {second order lambda calculus}
}

@article{Hannan98,
   author = {J Hannan},
   title = {A type-based escape analysis for functional languages},
   journal = {$|$JFP$|$ (to appear)},
   year = {1998}
}

@techreport{Hannan97,
   author = {J Hannan and P Hicks},
   title = {A lifetime analysis for higher-order languages},
   type = {$|$DCS$|$, Pennsylvania State University},
   year = {1997}
}

@incollection{Hannan??a,
   author = {J Hannan and P Hicks},
   title = {Higher-order uncurrying},
   booktitle = {$|$POPL98$|$}
}

@article{Hannan94,
   author = {J Hannan},
   title = {Operational semantics-directed compilers and machine architectures},
   journal = toplas,
   volume = {16},
   number = {4},
   pages = {1215-1247},
   month = jul,
   year = {1994}
}

@article{Hannan92,
   author = {J Hannan and D Miller},
   title = {From operational semantics to abstract machines},
   journal = {Mathematical Structures in Computer Science},
   volume = {2},
   pages = {415-459},
   publisher = {CUP},
   year = {1992}
}

@article{Hannan93,
   author = {J Hannan},
   title = {Extended natural semantics},
   journal = jfp,
   volume = {3},
   number = {2},
   pages = {123-152},
   month = apr,
   year = {1993}
}

@inproceedings{Wilson95,
   author = {PR Wilson and MS Johnstone and M Neely and D Boles},
   title = {Dynamic storage alloation: a survey and critical review},
   booktitle = {Proc 1995 International Workshop on Memory Management, Kinross, Scotland},
   publisher = {Springer Verlag LNCS},
   year = {1995}
}

@techreport{Sulzmann97,
   author = {M Sulzmann},
   title = {Designing record systems},
   type = {YALEU/DSC/RR-1128, $|$DCS$|$, Yale University},
   month = apr,
   year = {1997},
   keywords = {types}
}

@incollection{sheard:fold-for-all-seasons,
   author = {T Sheard and L Fegaras},
   title = {A fold for all seasons},
   crossref = "fpca93",
   pages = "233--242",
   keywords = {foldr/build, fusion}
}

@techreport{witt:generic-haskell,
  author = "Jan de Wit",
  title = "A technical overview of {Generic Haskell}",
  type = "Master's thesis, {INF-SCR-02-03}",
  institution = "Department of Information and Computing Sciences, Utrecht University",
  year = 2002
}


@incollection{sheard:meta-ml,
   author = {W Taha and T Sheard},
   title = {Multi-stage programming with explicit annotations},
   crossref = "pepm97",
   pages = {203-217},
   keywords = {staged computation, MetaML}
}

@incollection{DeRose88,
   author = {TD DeRose},
   title = {Geometric programming: a coordinate-free approach},
   booktitle = {SIGGRAPH '88 tutorial notes},
   year = {1988},
   keywords = {affine geometry, graphics, matrix transformation, linear algebra}
}

@incollection{sheard:type-directed,
   author = {T Sheard},
   title = {A type-directed, on-line partial evaluator for a polymorphic language},
   crossref = "pepm97",
   pages = {22-35},
   keywords = {staged computation}
}

@article{Anonymous97,
   key = {Anonymous97},
   title = {Special issue on object-oriented application frameworks},
   journal = cacm,
   volume = {40},
   number = {10},
   month = oct,
   year = {1997}
}

@book{Young96,
   author = {TL Young},
   title = {How to be a better project manager},
   publisher = {Kogan Page Limited and the Industrial Society},
   year = {1996},
   keywords = {recommended by Tom Melham: xplains the basics of classical project management in clear and brief terms}
}

@article{Culler96,
   author = {DE Culler and {\em et al}},
   title = {A practical model of parallel computation},
   journal = cacm,
   volume = {39},
   number = {11},
   month = nov,
   year = {1996},
   keywords = {LogP model, BSP}
}

@article{Peleg??,
   author = {A Peleg and S Wilkie and U Weiser},
   title = {Intel {MMX} for multimedia PCs},
   journal = cacm,
   volume = {40},
   number = {1},
   pages = {24-38},
   keywords = {architecture, pentium}
}

@article{Randall??,
   author = {M Randall},
   title = {Talisman: multimedia for the {PC}},
   journal = {IEEE Micro},
   volume = {17},
   number = {2},
   pages = {11-19},
   keywords = {fran, graphics, microsoft}
}

@article{Uht??,
   author = {AK Uht and V Sindagi and S Somanathan},
   title = {Branch effect reduction techniques},
   journal = {IEEE Computer},
   volume = {30},
   number = {5},
   pages = {71-81},
   keywords = {survey, branch prediction, architecture}
}

@article{Meyer??,
   author = {B Meyer},
   title = {Practice to perfect: the quality-first model},
   journal = {IEEE Computer},
   volume = {30},
   number = {5},
   pages = {102-106},
   keywords = {software engineering, clean room}
}

@article{Anonymous??f,
   key = {Anonymous??f},
   title = {The debugging scandal and what to do about it (special issue)},
   journal = cacm,
   volume = {40},
   number = {4},
   keywords = {software engineering}
}

@article{Taivalsaari??,
   author = {A Taivalsaari},
   title = {On the notion of inheritance},
   journal = {ACM Computing Surveys},
   volume = {28},
   number = {3},
   keywords = {object oriented types}
}

@article{wadler:declare-an-imperative,
   author = {PL Wadler},
   title = {How to declare an imperative},
   journal = {ACM Computing Surveys},
   volume = {29},
   number = {3},
   year = 1997,
   publisher = "ACM",
   keywords = {monads, state, input/output, I/O}
}

@article{Pettorossi??,
   author = {A Pettorossi and M Proietti},
   title = {Rules and strategies for transforming functional and logic programs},
   journal = {ACM Computing Surveys},
   volume = {28},
   number = {2},
   keywords = {program transformation}
}

@article{Cusumano??,
   author = {MA Cusumano and RW Selby},
   title = {How Microsoft builds software},
   journal = cacm,
   volume = {40},
   number = {6},
   pages = {53-61},
   keywords = {software engineering}
}

@article{Adve??,
   author = {SV Adve and K Gharachorloo},
   title = {Shared memory consistency models: a tutorial},
   journal = {IEEE Computer},
   volume = {29},
   number = {2},
   pages = {66-77},
   keywords = {architecture, concurrency, race hazards, deadlocks}
}

@article{Meyer??a,
   author = {B Meyer},
   title = {Teaching object technology},
   journal = {IEEE Computer},
   volume = {29},
   number = {2},
   pages = {117},
   keywords = {object oriented programming oop}
}

@techreport{mosberger,
  author= "D Mosberger",
  title = "Memory Consistency Models",
  institution = "Department of Computer Science, Univerity of Arizona",
  year = 1993
}

@techreport{Hudson91,
   author = {RL Hudson and JEB Moss and A Diwan},
   title = {A language-independent garbage collector toolkit},
   type = {COINS TR 91-47, Department of Computer and Information Science, University of Massachusetts, Amherst},
   month = sep,
   year = {1991}
}

@techreport{Dybvig94,
   author = {RK Dybvig and D Eby and C Bruggeman},
   title = {Don't stop the {BIBOP}: flexible and efficient storage management for dynamically-typed languages},
   type = {TR 400, $|$DCS$|$, Indiana University},
   month = mar,
   year = {1994},
   keywords = {garbage collector}
}

@techreport{Smith97,
   author = {F Smith and G Morrisett},
   title = {Mostly-copying collection: a viable alternative to conservative mark-sweep},
   type = {$|$DCS$|$, Cornell University},
   month = nov,
   year = {1997},
   keywords = {garbage collection}
}

@article{ONeill97,
   author = {ME O'Neill and FW Burton},
   title = {A new method for functional arrays},
   journal = jfp,
   volume = {7},
   number = {5},
   pages = {487-514},
   month = sep,
   year = {1997},
   keywords = {bulk types, data structures, algorithms}
}

@techreport{Sullivan??,
   author = {KJ Sullivan and M Marchukov and J Socha},
   title = {Engineering foundations of component standards: some compositionality problems in Microsoft's {COM}},
   type = {$|$DCS$|$, University of Virginia},
   keywords = {Submitted to IEEE Trans Software Engineering}
}

@article{Wentworth90a,
   author = {EP Wentworth},
   title = {Pitfalls of Conservative Garbage Collection},
   journal = spe,
   volume = {20},
   number = {7},
   pages = {719--727},
   publisher = {Wiley},
   year = {1990}
}

@incollection{Barrett96,
   author = {DJ Barrett and A Kaplan and JC Wileden},
   title = {Automated support for seamless interoperability in polylingual software systems},
   booktitle = {Proce 4th Symposium on Foundations of Software Engineering, San Francisco},
   month = oct,
   year = {1996},
   keywords = {persistence, database, mixed language}
}

@inproceedings{Kaplan96,
   author = {A Kaplan and JC Wileden},
   title = {Towards painless polylingual persistence},
   booktitle = {Proc 7th Intl Workshop on Persistent Object Systems, Cape May},
   month = may,
   year = {1996},
   keywords = {persistence, database, mixed language}
}

@techreport{Roberts89,
   author = {ES Roberts},
   title = {Implementing exceptions in {C}},
   type = {DEC SRC Report},
   number = {40},
   month = mar,
   year = {1989},
   keywords = {catch and throw via C macros and setjmp}
}

@techreport{Wansbrough95,
   author = {K Wansbrough},
   title = {Tracing lazy functional languages},
   type = {Project report, University of Auckland},
   month = oct,
   year = {1995},
   keywords = {debugging}
}

@techreport{Kennedy96,
   author = {AJ Kennedy},
   title = {Type inference and equational theories},
   type = {LIX/RR/96/09, LIX, Ecole Polytechnique, France},
   month = sep,
   year = {1996},
   keywords = {records, dimensions, type abbreviations}
}

@inproceedings{Graham96,
   author = {TCN Graham and T Urnes},
   title = {Linguistic support for the evolutionaly design of software architectures},
   booktitle = {Proc International Conference on Software Engineering},
   month = mar,
   year = {1996},
   keywords = {GUIs, functional languages, Clock, constraints, Fran}
}

@techreport{Shao97,
   author = {Z Shao},
   title = {Typed cross-module compilation},
   type = {YALEU/DCS/TR-1126, Yale University},
   month = jul,
   year = {1997},
   keywords = {Translating ML modules into Fw}
}

@techreport{Douence??,
   author = {R Douence and P Fradet},
   title = {A systematic study of functional language implementations},
   type = {INRIA/IRISA (to appear in TOPLAS)},
   keywords = {abstract machines, STG machine, monads, CPS; interesting}
}

@techreport{Angus96,
   author = {C Angus},
   title = {Numerical software development in functional languages},
   type = {Department of Computing Science, University of Newcastle on Tyne},
   month = aug,
   year = {1996}
}

@incollection{hayes:finalisation,
   author = {B Hayes},
   title = {Finalization in the collector interface},
   crossref =  "iwmm92",
   pages = {277-298},
   keywords = {storage manager, garbage, foreign objects}
}

@incollection{Dybvig??,
   author = {RK Dybvig and C Bruggeman and D Elby},
   title = {Guardians in a generation-based garbage collector},
   booktitle = {$|$PLDI93$|$},
   pages = {207-216},
   keywords = {finalization, manager}
}

@incollection{Johnsson??a,
   author = {T Johnsson},
   title = {Fold-unfold transformations on state monadic interpreters},
   booktitle = {$|$Glasgow94$|$},
   pages = {127-140}
}

@incollection{MacQueen??a,
   author = {D MacQueen},
   title = {Modules for Standard {ML}},
   crossref = "lfp84",
   pages = {198-207},
   keywords = {modules}
}

@article{Liskov79,
   author = {BH Liskov and A Snyder},
   title = {Exception handling in {CLU}},
   journal = {IEEE Transactions on Software Engineering},
   volume = {SE-5},
   number = {6},
   pages = {546-558},
   month = nov,
   year = {1979},
   keywords = {branch table method, handler table, nice paper}
}

@techreport{Mountjoy98,
   author = {J Mountjoy},
   title = {Proving a single-argument {STG} machine correct},
   type = {$|$DCS$|$, Univerrsity of Amsterdam},
   month = mar,
   year = {1998},
   keywords = {draft, abstract machine, big step, operational semantics}
}

@incollection{Mogenson??,
   author = {TE Mogenson},
   title = {Types for 0, 1, or many uses},
   booktitle = {$|$Glasgow97$|$},
   keywords = {linear types, once upon a type}
}

@article{Wong95,
   author = {L Wong},
   title = {An introduction to Remy's fast polymorphic record projection},
   journal = {ACM SIGMOD Record},
   volume = {24},
   number = {3},
   pages = {34-39},
   month = sep,
   year = {1995},
   keywords = {compiler, types, records}
}

@inproceedings{Suciu95,
   author = {D Suciu and L Wong},
   title = {On Two Forms of Structural Recursion},
   booktitle = {Proceedings of 5th International Conference on Database Theory, Prague},
   pages = {111-124},
   month = jan,
   year = {1995},
   keywords = {bulk types, fold better than union-based fold}
}

@inproceedings{Halstead96,
   author = {R Halstead},
   editor = {T Ito and R Halstead and C Queinnec},
   title = {Understanding the performance of parallel symbolic programs},
   booktitle = {Parallel Symbolic Languages and Systems (Workshop Proceedings)},
   publisher = {LNCS 1068, Springer-Verlag},
   month = apr,
   year = {1996},
   keywords = {profiling, vista}
}

@incollection{Halstead94,
   author = {R Halstead},
   editor = {T Ito and A Yonezawa},
   title = {Self-describing files + smart modules = parallel program visualization},
   booktitle = {Theory and Practice of Parallel Programming},
   pages = {253-283},
   publisher = {LNCS 907, Springer Verlag},
   month = nov,
   year = {1994}
}

@techreport{Chung??,
   author = {PE Chung and Y Huang and S Yajnik and D Liang and JC Shih and C-Y Wang and Y-M Wang},
   title = {{DCOM} and {CORBA} side by side, step by step, and layer by layer},
   type = {http:///www.bell-labs.com/\~{}emerald/dcom\_corba/Paper.html}
}

@techreport{Wong96,
   author = {L Wong},
   title = {The Kleisli/{CPL} extensible query optimiser},
   type = {Institute of System Science, Singapore},
   month = apr,
   year = {1996},
   keywords = {database, query, transformation, monads, comprehensions, filter promotion etc}
}

@techreport{Wadler97,
   author = {PL Wadler},
   title = {A prettier printer},
   type = {Bell Labs, Lucent Technologies},
   month = apr,
   year = {1997},
   keywords = {documents, pretty printer, hughes}
}

@incollection{wadler:prettier,
  author = {Philip Wadler},
  title = {A prettier printer},
  booktitle = {The Fun of Programming: Essays in Honor of Richard Bird},
  editors = {Jeremy Gibbons and Oege de Moor},
  publisher = {Palgrave},
  year = 2003
}

@incollection{Mogensen??,
   author = {T Mogensen},
   title = {Types for 0, 1 or many uses},
   booktitle = {$|$IFL97$|$},
   keywords = {linear types}
}

@article{Schilling98,
   author = {JL Schilling},
   title = {Optimizing away {C}++ exceptions},
   journal = {SIGPLAN Notices},
   volume = {33},
   number = {8},
   month = aug,
   year = {1998}
}

@incollection{laufer-existential,
  author = {K Läufer and M Odersky},
  title = "An extension of {ML} with first-class abstract types",
  booktitle = "Workshop on ML and its Applications",
  year = 1992
}

@inproceedings{leijen:database,
  author = "D Leijen and E Meijer",
  title = "Domain specific embedded compilers",
  booktitle = "Proc 2nd conference on Domain-Specific Languages (DSL'99)",
  pages = "109-122",
  keywords = "database SQL ODBC phantom types, HaskellDB",
  year = 1999
}

@article{zenger:indexed,
  title = "Indexed types",
  author = "Christoph Zenger",
  journal = "Theoretical Computer Science",
  year = 1997, 
  pages = "147-165"
}

@inproceedings{odersky:coloured,
  author = "Martin Odersky and Matthias Zenger and Christoph Zenger",
  title = "Colored Local Type Inference",
  crossref = "popl01"
}

@InProceedings{esh-scheme,
  author = 	 {John R. Rose and Hans Muller},
  title = 	 {{Integrating the Scheme and C Languages}},
  crossref = 	 "lfp92",
  pages =	 {247-259}
}

@Unpublished{sml-nj-ffi,
  author = 	 {Lorenz Huelsbergen},
  title = 	 {{A Portable C Interface for Standard ML of New Jersey}},
  note = 	 {AT\&T Bell Laboratories},
  year =	 {1996},
  month =	 {January}
}

@Manual{ocaml-ffi,
  title = 	 {Interfacing C with Objective Caml},
  author =	 {Xavier Leroy},
  organization = {INRIA, Rocquencourt, France},
  note = {\url{http://caml.inria.fr/ocaml/htmlman/}}
}

@Manual{nhc-ffi,
  title = 	 {{Calling Haskell from C using GreenCard}},
  author =	 {Malcolm Wallace},
  institution =  {York Functional Programming Group, University of York},
  note = {\url{http://www.cs.york.ac.uk/fp/nhc/CcallingHaskell.html}} 
}

@InProceedings{component-pascal-com,
  author = 	 {Dominik Gruntz and Beat Heeb},
  title = 	 {{Direct-To-COM Compiler Provides Garbage Collection
                  for COM Objects}},
  booktitle = 	 {Proceedings of the 2nd Component User's Conference (CUC)},
  year =	 {1997},
  address =	 {Munich, Germany},
  month =	 {July},
  note =	 {Available on-line from \url{http://www.oberon.ch/resources/com/dtc_cuc_paper/index.html}}
}


@Misc{ms-java,
  author =	 {{Microsoft Corporation}},
  title =	 {{Visual J++}},
  note =	 {\url{http://www.microsoft.com/java/}}
}

@Article{dylan-com,
  author = 	 {DN Gray and J Hotchkiss and S LaForge
                  and Andrew Shalit and Toby Weinberg},
  title = 	 {{COM simplified: Modern Languages and Microsoft's
                  Component Object Model}},
  journal = 	 {Communications of the ACM},
  year = 	 {1998},
  month =	 {May}
}

@book{szyperski-book,
  author = "C Szyperski",
  title = "Component Software",
  publisher = aw,
  year = 1998
}

@misc{bigloo-manual,
   author = "M Serrano",
   title = "{Bigloo User's Manual}", 
   institution = "INRIA-Rocquencourt", 
   year = 1999,
   note = "\url{http://kaolin.unice.fr/~serrano/bigloo/bigloo.html}"
}

@inproceedings{mercury-corba,
  author = {D Jeffery and T Dowd and Z Somogyi},
  title = "{MCORBA: a CORBA binding for Mercury}",
  crossref = "padl99",
  pages = "211-227"
}

@Book{box-essential-com,
  author = 	 {Don Box},
  title = 	 {Essential {COM}},
  publisher = 	 {Addison Wesley},
  year = 	 {1998},
  note =	 {ISBN: 0-201-63446-5}
}


% ------------------- Norman Ramsey's bibliography -----------------------------
%                            roughly Jan 1999
                       
@book{aho:compilers,
  where="On my shelf",
  author="Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman",
  title="Compilers: Principles, Techniques, and Tools",
  keywords="dragon dragon2",
  publisher="Addison-Wesley",
  year="1986"}

@article{feldman:make,
  pages="255-265",
  where="on file under feldman cs596b",
  author="Stuart I. Feldman",
  title="Make---A Program for Maintaining Computer Programs",
  keywords="make",
  journal="Software---Practice and Experience",
  year="1979",
  volume="9"}

@book{sedgewick:algorithms,
  author="Robert Sedgewick",
  title="Algorithms",
  publisher="Addison-Wesley",
  edition="Second",
  year="1988"}

@book{kernighan:software-pascal,
  author="Brian W. Kernighan and P. J. Plauger",
  title="Software tools in {P}ascal",
  publisher="Addison-Wesley",
  year="1981"}

@book{kernighan:software,
  author="Brian W. Kernighan and P. J. Plauger",
  title="Software tools",
  publisher="Addison-Wesley",
  year="1976"}


@article{amble:ordered,
  month="May",
  pages="135--142",
  author="Amble and Knuth",
  title="Ordered Hash Tables",
  annote="Mentioned in
Bentley's first column about literate programming; used in Knuth's
solution and also used as an example of an abstract data type
in Gries's literate programming column.",
  journal="The Computer Journal",
  year="1974",
  volume="17"}

@book{bentley:more-pearls,
  author="Jon Bentley",
  title="More Programming Pearls: Confessions of a Coder",
  publisher="Addison-Wesley",
  address="Reading, MA",
  year="1988"}

@article{myers:row,
  month=jan,
  pages="33--56",
  number="1",
  author="Eugene W. Myers and Webb Miller",
  title="Row Replacement Algorithms for Screen Editors",
  keywords="curses",
  journal=toplas,
  year="1989",
  volume="11"}

@article{miller:simple,
  month="July",
  pages="597--612",
  number="7",
  author="Webb Miller and Eugene W. Myers",
  title="A Simple Row-replacement Method",
  keywords="curses editors",
  journal=spe,
  year="1988",
  volume="18"}

@manual{xilinx:programmable,
  organization="{Xilinx, Inc.}",
  key="Xilinx",
  title="The Programmable Gate Array Data Book",
  year="1988"}

@article{pease:reaching,
  month="April",
  pages="228--234",
  where="on file in reprints",
  number="2",
  author="M. Pease and R. Shostak and Leslie Lamport",
  title="Reaching Agreement in the Presence of Faults",
  keywords="byzantine agreement generals fault tolerance",
  annote="The classic paper on byzantine agreement.",
  journal=jacm,
  year="1980",
  volume="22"}

@article{waite:cost,
  month="May",
  pages="473--488",
  where="filed with reprints",
  number="5",
  author="William M. Waite",
  title="The Cost of Lexical Analysis",
  annote="Fast hand-coded analyzers
like the one used in lcc.",
  journal=spe,
  year="1986",
  volume="16"}

@techreport{shaw:improving,
  month="March",
  where="filed with reprints",
  number="CSL-TR-87-323",
  author="Robert A. Shaw",
  title="Improving Garbage Collector Performance in Virtual Memory",
  year="1987",
  institution="Stanford University Computer Systems Laboratory"}

@techreport{spafford:internet,
  month=nov,
  where="filed with reprints",
  number="CSD-TR-823",
  author="Eugene H. Spafford",
  title="The Internet Worm Program: An Analysis",
  year="1988",
  institution="Purdue Department of Computer Sciences"}

@unpublished{gansner:dag,
  month="June",
  author="E. R. Gansner and S. C. North and K. P. Vo",
  title="{DAG}---A Program that Draws Directed Graphs",
  note="AT\&T Bell Laboratories manuscript.",
  year="1989"}

@article{bratley:self,
  month=dec,
  pages="397--400",
  where="file dwith reprints",
  number="4",
  author="Paul Bratley and Jean Millo",
  title="Self-Reproducing Programs",
  keywords="computer recreations",
  annote="Shows snobol, fortran, lisp,
algol, and generic.",
  journal=spe,
  year="1972",
  volume="2"}

@article{birrell:implementing,
  month=feb,
  pages="39--59",
  where="on file with reprints",
  number="1",
  author="Andrew D. Birrell and Bruce Jay Nelson",
  title="Implementing Remote Procedure Calls",
  keywords="RPC",
  journal="ACM Transactions on Computer Systems",
  year="1984",
  volume="2"}

@article{atkinson:idl,
  pages="671--684",
  where="with reprints",
  author="M. P. Atkinson",
  title="{IDL}: A Machine-independent Data Language",
  journal=spe,
  year="1977",
  volume="7"}

@book{kernighan:unix,
  author="Brian W. Kernighan and Rob Pike",
  title="The {UNIX} Programming Environment",
  publisher="Prentice-Hall", address="Englewood Cliffs, NJ",
  year="1984"}

@TechReport{c--:manual,
 author = "F Reig and SL {Peyton Jones}",
 title = "{The {\tt C--} manual}",
 institution = "Department of Computing Science, University of Glasgow",
 year = 1998
}

@techreport{johnson:yacc,
  address="AT\&T Bell Laboratories, Murray Hill, New Jersey",
  number="32",
  author="Steve C. Johnson",
  title="Yacc---Yet Another Compiler Compiler",
  year="1975",
  institution="Computer Science"}

@article{parnas:rational,
  month=feb,
  pages="251--257",
  where="file with reprints",
  number="2",
  author="David Lorge Parnas and Paul C. Clements",
  title="A Rational Design Process: How and Why to Fake It",
  keywords="software engineering",
  annote="Beginning and end good,
middle filled with software engineeringspeak.  Outlines goals that 
every literate programmer should have.",
  journal=ieeetose,
  year="1986",
  volume="SE-12"}

@article{harbison:modula-3,
  month=nov,
  pages="385--389",
  where="filed with reprints",
  author="Sam Harbison",
  title="Modula-3",
  annote="a totally simple-minded
intro to Modula-3.  Just what you'd expect from an intro in Byte.",
  journal="Byte",
  year="1990"}

@inproceedings{denning:concerning,
  month=oct,
  address="Washington, DC",
  where="on file with reprints",
  author="Dorothy E. Denning",
  title="Concerning Hackers Who Break into Computer Systems",
  booktitle="13th National Computer Security Conference",
  year="1990"}

@techreport{fraser:code:tr,
  month="July",
  where="filed with reprints",
  number="CS-TR-270-90",
  author="Christopher W. Fraser and David R. Hanson",
  title="A Code Generation Interface for {ANSI} {C}",
  keywords="lcc back end",
  year="1990",
  institution="Princeton University Department of Computer Science"}

@unpublished{kung:useful,
  month=oct,
  author="H. T. Kung",
  title="Useful Things to Know about Ph.D. Thesis Research",
  note="Outline of talk given for ``What is Research'' immigration course, Computer Science Department, Carnegie Mellon University",
  year="1987"}

@unpublished{presotto:plan9,
  author="David Leo Presotto",
  title="Plan 9 from {Bell} {Labs}---The Network",
  note="Filed under Presotto."}

@unpublished{wurmser:adding,
  month=jan,
  author="Chrys Wurmser",
  title="Adding Strategy to a {Scrabble} Playing Program",
  note="Junior independent work, Princeton University.",
  year="1990"}

@article{cormack:micro,
  author="Gordon V. Cormack",
  title="A Micro-Kernel for Concurrency in {C}",
  journal=SPE,
  volume=18, number=5, month=may, year=1988, pages="485-491"
}

@inproceedings{appel:sml87,
Author = "Andrew W. Appel and David B. MacQueen",
Title = "A {S}tandard {ML} Compiler",
BookTitle = "Functional Programming Languages and Computer Architecture (LNCS 27
4)",
Editor = "Gilles Kahn",
Publisher = "Springer-Verlag",address="New York",
Year = 1987,
Pages = "301-24"
}

@inproceedings{appel:sml91,
Title = "{S}tandard {ML} of {N}ew {J}ersey",
Author = "Andrew W. Appel and David B. MacQueen",
Booktitle = "Third Int'l Symp. on Prog. Lang. Implementation and Logic Programming",
Editor="Martin Wirsing",
Publisher="Springer-Verlag",address="New York",
Month = "August",
Year = "1991"
}
@book{nelson:systems,
  address="Englewood Cliffs, NJ",
  title="Systems Programming with {Modula-3}",
  publisher="Prentice Hall",
  editor="Greg Nelson",
  year="1991"}

@phdthesis{staelin:high,
  month="August",
  author="Carl Hudson Staelin",
  title="High Performance File System Design",
  school="Princeton University Department of Computer Science",
  year="1991"}

@book{dahl:structured,
  author="Ole-Johan Dahl and Edsger W. Dijkstra and C. A. R. Hoare",
  title="Structured Programming",
  address="London and New York",
  publisher="Academic Press",
  year="1972"}

@techreport{hudak:report,
        author = "Paul Hudak and Wadler (editors), Philip",
        title = "Report on the Programming Language {H}askell, A Non-strict
            Purely Functional Language ({V}ersion 1.0)",
        institution = "Yale University, Department of Computer Science",
        month = apr,
        year = 1990,
        number = "YALEU/DCS/RR777"
}

@inproceedings{turner:miranda,
        author = "D A Turner",
        title = "{Miranda}: A Non-strict Functional Language with
              Polymorphic Types",
        crossref = "fpca85",
        pages = "1-16",
    note = "This and other materials on Miranda are available at \url{http://miranda.org.uk}"
}

@article{turner:overview,
        author = "David A. Turner",
        title = "An Overview of {Miranda}",
        journal = SIGPLAN,
        volume = 21,
        number = 12,
        year = 1986,
        month = dec,
        pages = "158-166",
   keywords = {ZF expressions, abstract data types, polymorphism, separate compilation}
}

@book{lamport:latex,
  author="Leslie Lamport",
  title="{\LaTeX}: A Document Preparation System",
  publisher="Addison-Wesley",
  year="1986"}

@manual{sparc:architecture,
  where="Hanson's office",
  organization="{SPARC International}",
  key="{SPARC}",
  title="The {SPARC} Architecture Manual, Version~8",
  address="Englewood Cliffs, NJ",
  publisher="Prentice Hall",
  year="1992"}

@article{weiser:program,
  month="July",
  journal=ieeetose,
  pages="352--357",
  where="filed with reprints",
  number="4",
  author="Mark Weiser",
  title="Program Slicing",
  year="1984",
  volume="SE-10"}

@article{fraser:retargetable,
  author="Christopher W. Fraser and David R. Hanson",
  title="A Retargetable Compiler for {ANSI C}", pages="29--43",
  journal=SIGPLAN, volume=26, number=10, month=oct, year=1991
}
@book{holzmann:design,
  where="On my bookshelf",
  author="Gerard J. Holzmann",
  title="Design and Validation of Computer Protocols",
  publisher="Prentice Hall",
  address="Englewood Cliffs, NJ",
  annote="Prolix but useful description
of the history and elements of protocols, including error rates and error
detection and correction, flow control and windowing protocols.
Most useful part is on specification and validation of protocols, for which
Holzmann defines a language, PROMELA, and tools that validate protocols to
be free of deadlock.  The tools can also find unreachable states.
I have found the tools quite useful and worthwhile even for the design of
very simple protocols.",
  year="1991",
  keywords="spin"}

@misc{ellis:vulcan,
  author="John R. Ellis",
  note="Private communication.",
  year="1991"}

@book{kane:mips,
  where="my shelf",
  author="Gerry Kane",
  title="{MIPS} {RISC} Architecture",
  publisher="Prentice Hall", address="Englewood Cliffs, NJ",
  year="1988"}

@techreport{stallman:gdb,
  author="Richard M. Stallman and Roland H. Pesch",
  title="Using {GDB}: A Guide to the {GNU} Source-Level Debugger, {GDB} Version 4.0",
  institution="Free Software Foundation",
  address="Cambridge, MA", mon=jul, year=1991
}
@article{fraser:code,
  author="Christopher W. Fraser and David R. Hanson",
  title="A Code Generation Interface for {ANSI} {C}",
  journal=SPE, volume=21, number=9, month=sep, year=1991, pages="963-988"
}

@article{swinehart:structure,
  month="July",
  pages="230--244",
  number="7",
  author="Daniel. C. Swinehart and Polle T. Zellweger and Robert. B. Hagmann",
  title="The Structure of {Cedar}",
  annote="Describes the Cedar debugger.",
  journal="Proceedings of the ACM Symposium on Language Issues in Programming, SIGPLAN Notices",
  year="1985",
  volume="20"}

@article{swinehart:structural,
  month=oct,
  pages="419--490",
  number="4",
  author="Daniel. C. Swinehart and Polle T. Zellweger and Richard J. Beach and Robert. B. Hagmann",
  title="A Structural View of the {Cedar} Programming Environment",
  annote="Sections 6.4 and 11.1.4 describe the Cedar abstract machine and how it is 
used to support debugging.",
  journal=toplas,
  year="1986",
  volume="8"}

@manual{mipsco:assembly,
  title="{MIPS} Assembly Language Programmer's Guide",
  organization="{MIPS} Computer Systems", address="Mountain View, CA",
  key="{MIPS}",
  month=may, year="1989"}

@article{bell:threaded,
  month=jun,
  pages="370--372",
  where="filed with reprints",
  number="6",
  author="James R. Bell",
  title="Threaded Code",
  keywords="interpreter interpretation pdp-11",
  annote="A very simple, short statement
of the threaded code method of interpretation, with examples drawn from
the pdp-11 instruction set.",
  journal=cacm,
  year="1973",
  volume="16"}

@article{klint:interpretation,
  pages="963--973",
  where="filed with reprints",
  author="Paul Klint",
  title="Interpretation Techniques",
  keywords="threaded code",
  annote="A short characterization of 
the range of language implementation from interpreted through compiled,
with discussion of different interpretation techniques.  Focus is on
compiling to either high- or low-level intermediate code, rather than
interpretation of source text a la Bourne shell or compilation to
assembly or machine code.  Three techniques for interpretation are 
discussed, ``classical'' interpretation (e.g. bytecodes, case statements)
and direct and indirect threaded code.",
  journal=spe,
  year="1981",
  volume="11"}

@book{hoare:essays,
  where="princeton engineering library",
  author="C. A. R. Hoare",
  title="Essays in Computing Science",
  publisher="Prentice Hall",
  annote="A collection of Hoare's best
papers.  Mostly formal stuff, including program proving, proof of correctness
of data representations, communicating sequential processes, and
programs as predicates.  Also includes a smattering of systems things,
including the Turing lecture, the monitors paper, and a couple of lectures
for lay audiences.  Well worth reading.",
  editor="C. B. Jones",
  year="1989"}

@inproceedings{jordan:extensible,
  month=dec,
  pages="66-76",
  where="filed with reprints",
  author="Mick Jordan",
  title="An Extensible Programming Environment for {Modula-3}",
  note="Software Engineering Notes, v15 n6.",
  booktitle="Proc. ACM SIGSOFT Symposium on Software Development Environments",
  year="1990"}

@article{baskett:best,
  month=apr,
  pages="31--32",
  where="filed with reprints",
  number="4",
  author="Forest Baskett",
  title="The Best Simple Code Generation Techniques for {WHILE}, {FOR}, and {DO} Loops",
  annote="Short sweet paper shows
what code even a simple student compiler should generate for loops.
One branch per iteration, and it's possible to move code outside the
loop without paying extra in the case where the loop is iterated zero times.
Should be required reading for anyone who writes a compiler.",
  journal="ACM SIGPLAN Notices",
  year="1978",
  volume="13"}

@article{atkinson:experiences,
  month=jul,
  pages="322--329",
  where="shelved with sigplan notices",
  number="7",
  author="Russ Atkinson and Alan Demers and Carl Hauser and Chnristian Jacobi and Peter Kessler and Mark Weiser",
  title="Experiences Creating a Portable {Cedar}",
  annote="Describes compiler and runtime
techniques used to make Cedar work on PCR.",
  journal="Proceedings of the '89 SIGPLAN Conference on Programming Language Design and Implementation, SIGPLAN Notices",
  year="1989",
  volume="24"}

@article{hoare:optimization,
  Pages = "165--166",
  Year = "1974",
  Author = "C. A. R. Hoare",
  Title = "Optimization of Store Size for Garbage Collection",
  Volume = 2,
  Journal = "Information Processing Letters"
}
@article{campbell:optimal,
  Pages = "37--38",
  Year = "1974",
  Author = "J. A. Campbell",
  Title = "Optimal use of storage in a simple model of garbage collection",
  Volume = 3,
  Number = 2,
  Journal = "Information Processing Letters"
}
@article{aarnborg:optimal,
  Journal = "BIT",
  Pages = "375-81",
  Author = "Stefan Arnborg",
  Title = "Optimal memory management in a system with garbage collection",
  Year = 1974
}
@article{boehm:garbage,
  month=sep,
  pages="807--820",
  where="filed with reprintw",
  number="9",
  author="Hans-Juergen Boehm and Mark Weiser",
  title="Garbage Collection in an Uncooperative Environment",
  keywords="conservative mark and sweep",
  annote="A pleasant paper on a 
conservative mark-and-sweep collector.
Makes a very good case for conservative garbage collection, arguing that
all collectors are really conservative, it's just a question of degree,
and look, Mom, ours does pretty damn good.
\par
Divides memory into 4K chunks.  Each chunk holds mark bits and a collection
of objects all the same size.  chunks are validated by examining a back
pointer onto a valid chunk list (nice trick, ``well known from 
aho, hopcroft, and ullman).
Quick-fit for free objects.
\par
Some practical experience with Russell, plus applications not designed
for GC.  Cute trick using collector to detect storage leaks.",
  journal=spe,
  year="1988",
  volume="18"}

@unpublished{hamming:you,
  month=mar,
  author="Richard W. Hamming",
  title="You and Your Research",
  note="Transcript of a lecture given at Bell Communications Research.  Transcript edited by J. F. Kaiser.",
  annote="Dick Hamming discussing
``Why do so few scientists make significant contributions and so many are forgotten in the long run?''
Lots of advice and exhortation.
Good reading.
Recommended by Brian Kernighan.",
  year="1986"}

@article{fiala:data,
  month=apr,
  pages="490--505",
  where="shelved with CACM",
  number="4",
  author="Edward R. Fiala and Daniel H. Greene",
  title="Data Compression with Finite Windows",
  annote="Nice review of data compression
methods with sweet variations on a finite window algorithm.
Theory section describing the data structures is not for the faint-hearted,
and the empirical data is a bit overwhelming, but they do a good
job summarizing the results and the ideas aren't hard to grasp.",
  journal=cacm,
  year="1989",
  volume="32"}

@manual{adobe:postscript,
  organization="{Adobe Systems Incorporated}",
  key="Adobe",
  title="{PostScript} Language Reference Manual",
  publisher="Addison-Wesley", address="Reading, Ma",
  year="1985"}

@manual{adobe:postscript2,
  organization="{Adobe Systems Incorporated}",
  key="Adobe",
  title="{PostScript} Language Reference Manual",
  edition="Second",
  publisher="Addison-Wesley", address="Reading, Ma",
  year="1990"}

@inproceedings{ousterhout:tcl,
  month=jan,
  pages="133-146",
  where="filed with reprints",
  author="John K. Ousterhout",
  title="Tcl: An Embeddable Command Language",
  booktitle=wusenix, address="Washington, DC",
  annote="describes the tcl language,
a bit about how users use it, and a bit about how applications embed it.
Important part is at the end where he proposes remote evaluation with tcl
as a way of making different tools interact.",
  year="1990"}

@article{weiser:portable,
  month=dec,
  pages="114--122",
  where="Hanson has the proceedings",
  number="5",
  author="Mark Weiser and Alan Demers and Carl Hauser",
  title="The Portable Common Runtime Approach to Interoperability",
  keywords="pcr",
  annote="Introduction to PCR.
Remarkably cheerful about the amount of dirt!",
  journal="Proceedings of the 12th Symposium on Operating Systems Principles, {\em in} Operating Systems Review",
  year="1989",
  volume="23"}

@article{boute:euclidean,
  month=apr,
  pages="127-144",
  where="Shelved with journals",
  number="2",
  author="Raymond T. Boute",
  title="The {Euclidean} Definition of the Functions div and mod",
  keywords="division arithmetic",
  annote="Compares the mathematical properties of three definitions of div and mod,
based on truncation, floor, and Euclid's theorem respectively.
Also compares the advantages and disadvantages for various purposes.
Nice ammunication for the division wars.",
  journal=toplas,
  year="1992",
  volume="14"}

@techreport{hudson:language,
  month=sep,
  address="Amherst, MA 01003",
  where="filed with reprints",
  number="91-47",
  author="Richard L. Hudson and J. Eliot B. Moss and Amer Diwan and Christopher F. Weight",
  title="A Language-Independent Garbage Collector Toolkit",
  annote="Moderately interesting proposal;
we'll see what they actually do.",
  year="1991",
  institution="Department of Computer and Information Science, University of Massachusetts, Amherst"}

@techreport{bartlett:compacting,
  month=feb,
  address="100 Hamilton Avenue, Palo Alto, California 94301",
  where="filed with reprints",
  number="88/2",
  author="Joel F. Bartlett",
  title="Compacting Garbage Collection with Ambiguous Roots",
  keywords="copying garbage collection",
  annote="Straightforward description
of Bartlett's conservative copying collector.  The collector uses a page-based
algorithm and is the collector used in SRC Modula-3 1.6.  ",
  year="1988",
  institution="DEC WRL"}

@techreport{bartlett:mostly,
  month=oct,
  address="100 Hamilton Avenue, Palo Alto, California 94301",
  where="filed with reprints",
  number="TN-12",
  author="Joel F. Bartlett",
  title="Mostly-Copying Garbage Collection Picks Up Generations and {C$++$}",
  annote="Uninteresting addendum to Bartlett's conservative copying collector.",
  year="1989",
  institution="DEC WRL"}

@techreport{spertus:why,
  where="filed with reprints or if gone ask Mary Fernandez",
  author="Ellen Spertus",
  title="Why are There so Few Female Computer Scientists?",
  annote="Mostly depressing; few suggestions for constructive action.  Oh well.",
  year="199?",
  institution="MIT AI Lab"}

@unpublished{fuller:c2ps,
  month=jan,
  author="Jason William Fuller",
  title="{C2PS}: A {C} to {PostScript} Compiler",
  note="Princeton University independent work, supervised by David R. Hanson",
  annote="Nice stuff for one-semester
independent work.  Sports a reusable back end.",
  year="1992"}

@techreport{mishra:consul,
  month=nov,
  address="Tucson, Arizona 85721",
  where="filed with reprints",
  number="91-32",
  author="Shivakant Mishra and Larry L. Peterson and Richard D. Schlicting",
  title="Consul: A Communication Substrate for Fault-Tolerant Programs",
  annote="Interesting ideas about composing
protocols, with some new protocols based on the authors' Psync partial order
protocol.  Reviewed in /u/nr/etc/referee/consul*.",
  year="1991",
  institution="Department of Computer Science, University of Arizona"}

@inproceedings{johnson:postloading,
  pages="325--330",
  where="filed with reprints",
  author="Stephen C. Johnson",
  title="Postloading for Fun and Profit",
  keywords="linkers link-time optimization",
  booktitle=WUSENIX,
  annote="Nice concise description of how to change linkers and a.out formats
to support postlink transformation of executable files.
Applications include profiling, other performance collection,
workarounds for flaky hardwork and software, rewrite binaries for different
targets (old to new and vice versa), optimization, and various one-shots
(e.g. who used floating-point).
Good general handle on what the model of a.out files should be and what
the model of the ``postloader'' should be, with some stuff about what the
engineering issues are.  A bit short on the details.",
  year="1990"}

@inproceedings{sage:frantk,
  title = "{FranTk}: a declarative {GUI} language for {Haskell}",
  author = "Meurig Sage",
  crossref = "icfp00",
  page = "106-117"
}

@techreport{sager:thoth,
  month=oct,
  where="Hanson has a copy",
  number="CS-77-15",
  author="Gary R. Sager",
  title="The Thoth Linking Loader",
  annote="A too brief description of an
interesting tool.  The Thoth loader is a machine-independent and machine-invariant
linking loader.  Not clear what relation to the Hanson and Fraser linker,
but it seemed to be used as part of a working system.",
  year="1977",
  institution="University of Waterloo Computer Science Department"}

@article{woolsey:operations,
  pages="729--737",
  where="filed with reprints",
  author="R. E. D. Woolsey",
  title="Operations Research and Management Science Today, or,",
  note="Photocopy from Jon L. Bentley",
  annote="Interesting criticism of
the practice of Operations Research and Management Science by people who
are too theoretical and have zero practical knowledge.
Applicable to too many computer scientists.",
  journal="Unknown",
  year="1972?"}

@article{liebermann:real-time,
  month=jun,
  pages="419--429",
  where="filed with reprints",
  number="6",
  author="Henry Liebermann and Carl Hewitt",
  title="A Real-Time Garbage Collector Based on the Lifetimes of Objects",
  keywords="generational copying garbage collection",
  annote="Important and oft-cited paper in the history of garbage collection.
Not too hard to read.",
  journal=cacm,
  year="1983",
  volume="26"}

@article{ungar:generation,
  month=may,
  pages="157--167",
  where="filed with reprints",
  author="David Ungar",
  title="Generation Scavenging: A Non-Disruptive High Performance Storage Reclamation Algorithm",
  journal=PSDE,
  volume=19, number=5,
  annote="Early, perhaps original, paper
on generational garbage collection.  Done on Berkeley Smalltalk.  Good reading.",
  year="1984"}

@article{shaw:wulf:80,
  author="Mary Shaw and William A. Wulf",
  title="Towards Relaxing Assumptions in Languages and Their Implementations",
  journal=SIGPLAN,
  volume=15, number=3, month=mar, year=1980, pages="45-61"
}

@unpublished{baudinet:tree,
  Author=		"Marianne Baudinet and David Mac{Q}ueen",
  Title=		"Tree Pattern Matching for {ML} (extended abstract)",
  Year=		"1985",
  Month=		dec,
  Note=		"Unpublished manuscript, AT\&T Bell Laboratories",
  annote="A proposal for heuristics for the ML pattern-matching
problem, with observation that the problem is NP-complete.
These heuristics were eventually implemented in the New Jersey
compiler, but better heuristics are used now."
}

@article{grosch:efficient,
  month=nov,
  pages="1089-1103",
  where="filed with reprints",
  number="11",
  author="J. Grosch",
  title="Efficient Generation of Lexical Analyzers",
  annote="The author observes that most
specifications for lexical analyzers don't need the full generality of regular
expressions (implemented by NFAs), because most of the specifying regular
expressions are constant (implementable by DFAs).  He introduces the notion
of a ``tunnel automaton'' and compiles regular expressions into such
automata.  The resulting lexer generator doesn't need to convert an NFA
to a DFA (requiring subset construction, state minimization, and table
compression), and for typical specifications he can generate a lexical analyzer
quickly and in linear time.",
  journal=SPE,
  year="1989",
  volume="19"}

@article{heuring:automatic,
  month=sep,
  pages="801-808",
  where="filed with reprints",
  number="9",
  author="V. P. Heuring",
  title="Automatic Generation of Fast Lexical Analyzers",
  annote="Takes the Waite technology for
building fast lexical analyzers and attempts to make it available in a lexical-
analyzer generator.  A version of this tool has found its way into the Eli
compiler construction toolkit from Colorado; check for CACM spring 1992.",
  journal=SPE,
  year="1986",
  volume="16"}

@article{moore:forth,
  pages="497-511",
  where="filed with reprints",
  author="C. H. Moore",
  title="{FORTH}: A New Way to Program a Mini-Computer",
  annote="A useful, interactive, reasonably
high-level language in 8K of memory.",
  journal="Astron. Astrophys. Suppl.",
  year="1974",
  volume="15"}

@article{jokinen,
  month=sep,
  pages="839-856",
  where="filed with reprints",
  number="9",
  author="Matti O. Jokinen",
  title="A Language-independent Prettyprinter",
  annote="A stream-oriented prettyprinter
back end available as a CLU library.  Not clear how it compares with the
Oppen or Ellis prettyprinters.",
  journal=SPE,
  year="1989",
  volume="19"}

@unpublished{otoole:collecting,
  month=dec,
  author="James O'Toole",
  title="Collecting Garbage Locally",
  note="MIT area exam, available from the author.",
  annote="The abstract says one should focus on the I/O costs of garbage collection,
and that this focus debunks Appel's claim that heap allocation is superior
to stack allocation.",
  year="1990"}

@article{goldberg:floating-point,
  month=mar,
  pages="5--48",
  where="filed with reprints",
  number="1",
  author="David Goldberg",
  title="What Every Computer Scientist Should Know About Floating-Point Arithmetic",
  annote="Even includes some words about
language design!",
  journal="ACM Computing Surveys",
  year="1991",
  volume="23"}

@article{balachandran:efficient,
  pages="127--140",
  where="filed with reprints",
  number="3",
  author="A. Balachandran and D. M. Dhamdhere and S. Biswas",
  title="Efficient Retargetable Code Generation Using Bottom-Up Tree PAttern Matching",
  annote="Theoretically oriented despite its claims to practicality.
Hard to read.",
  journal="Comput. Lang.",
  year="1990",
  volume="15"}

@inbook{sutherland:technology,
  chapter="18",
  pages="425-447",
  author="Ivan Sutherland",
  title="Technology and Courage",
  note="Book title unknown, but part of the 25th anniversary of the CMU computer science department.",
  publisher="CMU computer science department?",
  annote="From Mark Weiser.  Good, inspiring stuff.",
  year="1990?"}

@techreport{keppel:case,
  address="FR-35, University of Washington, Seattle, WA 98195",
  where="filed with reprints, also for anonymous ftp from cs.washington.edu in pub/pardo/rtcg-case.ps.Z",
  number="91-11-04",
  author="David Keppel and Susan J. Eggers and Robert R. Henry",
  title="A Case for Runtime Code Generation",
  annote="Interesting if preliminary
paper on the generation of code at runtime.  Mentions but does not address
debugging.",
  year="1991",
  institution="Department of Computer Science and Engineering"}

@article{keppel:portable,
  month=apr,
  pages="86-95",
  where="Shelved with other ASPLOS proceedings",
  number="4",
  author="David Keppel",
  title="A Portable Interface for On-The-Fly Instruction Space Modification",
  annote="An interesting paper.  Gives a high-level interface suitable for runtime
code generation, e.g. one can allocate new space, write to it as data,
then execute it.  Claims efficient implementations for a variety of
targets.  Primary issues seem to be coherence (e.g. I-cache) and protection
(e.g. the operating system gets in your way).  Not clear how to apply
the techniques to modifying existing instruction sequences, for planting
breakpoints, for example.  Doesn't support self-modifying code---interface
is more disciplined than that.",
  journal=ASPLOSIV,
  year="1991",
  volume="26"}

@article{wall:experience,
  author="David W. Wall",
  title="Experience with a Software-Defined Machine Architecture",
  journal=TOPLAS, volume=14, number=3, mon=jul, year=1992,
  pages="299-338"
}
@manual{sunos:shared,
  month=jan,
  address="Mountain View, CA",
  title="UNIX Programmer's manual, Sun Release 4.1, Section~1",
  note="The manual page for {\tt ld} describes shared libraries.",
  organization="Sun Microsystems",
  key="Sun",
  year="1990"}

@article{fraser:machine,
  author="Christopher W. Fraser and David R. Hanson",
  title="A Machine-Independent Linker",
  journal=SPE,
  volume=12, number=4, pages="351-366", month=apr, year=1982
}
@inproceedings{pike:name,
  month=sep,
  address="Mont Saint-Michel",
  author="Rob Pike and Dave Presotto and Ken Thompson and Howard Trickey and Phil Winterbottom",
  title="The Use of Name Spaces in {Plan~9}",
  booktitle="SIGOPS European Workshop on Distributed Systems",
  year="1992"}

@inproceedings{killian:processes,
  address="Salt Lake City",
  where="filed with reprints",
  author="T. J. Killian",
  title="Processes as Files",
  booktitle=susenix,
  pages="203-207",
  annote="Introduces /proc.  Pithy and to the point. Provided support for pi.",
  year="1984"}

@article{fraser:spilling,
  author="Christopher W. Fraser and David R. Hanson",
  title="Simple Register Spilling in a Retargetable Compiler",
  journal=SPE, volume=22, number=1, month=jan, year=1992, pages="85-99"
}
@inproceedings{thompson:new-c,
  author="Ken Thompson",
  title="A New {C} Compiler",
  booktitle="Proceedings of the Summer 1990 UKUUG Conference",
  address="London", pages="41-51", month=jul, year=1990,
  annote="Not much fun.",
  where="On file with reprints."
}
@Article{clinger:revised,
  author =      "William D. Clinger and Jonathan Rees",
  title =       "{Revised${}^4$} Report on the Algorithmic Language {S}cheme",
  journal =     "LISP Pointers",
  volume =      "IV",
  number =      3,
  pages =       "1-55",
  month =       "July-September",
  year =        1991
}
@article{liskov:exception,
  month=nov,
  pages="546--558",
  where="filed with reprints",
  number="6",
  author="Barbara H. Liskov and Alan Snyder",
  title="Exception Handling in {CLU}",
  annote="Describes the design and implementation
of CLU's exception mechanism.  Argues for two restrictions:
  1) The exceptions signalled by a procedure must be caught in the immediate
     caller.
  2) Signalling an exception terminates the signalling procedure.
Ada and Modula-3 violate (1), and Mesa violates both.
A distinction is made between exceptions, which are handled in the caller,
and exits, which are handled in the current procedure. 
Two implementations are described, one based on branch tables and one
based on a handler table mapping return pc --> handler.
Neither method incurs any execution overhead in the normal case.",
  journal=ieeetose,
  year="1979",
  volume="SE-5"}

@book{knuth:volume1,
  where="shelved with books",
  author="Donald E. Knuth",
  series="The Art of Computer Programming",
  title="Fundamental Algorithms",
  publisher="Addison-Wesley", address="Reading, MA",
  edition="Second",
  year="1973",
  volume="1"}

@article{redell:pilot,
  month=feb,
  pages="81--92",
  number="2",
  author="David D. Redell and Yogen K. Dalal and Thomas R. Horsley and Hugh C. Lauer and William C. Lynch and Paul R. McJones and Hal G. Murray and Stephen C. Purcell",
  title="Pilot: An Operating System for a Personal Computer",
  annote="selected paper from 7th SOSP",
  journal=cacm,
  year="1980",
  volume="23"}

@article{clinger:read,
  month=jun,
  pages="92--101",
  where="shelved wtih sigplan notices",
  number="6",
  author="William D. Clinger",
  title="How to Read Floating-Point Numbers Accurately",
  annote="David M Gay from the labs has an impelmentation, or something similar.",
  journal="Proceedings of the SIGPLAN'90 Conference on Programming
           Language Design and Implementation, {\em in} SIGPLAN Notices",
  year="1990",
  volume="25"}

@article{steele:print,
  author="Steele, Junior, Guy L. and Jon L. White",
  title="How to Print Floating-Point Numbers Accurately",
  journal="Proceedings of the SIGPLAN'90 Conference on Programming Language Design
           and Implementation, {\em in} SIGPLAN Notices",
  volume=25, number=6, month=jun, year=1990, pages="112-126"
}

@manual{intel:386data,
  key="Intel",
  address="Santa Clara, CA",
  organization="Intel Corporation",
  title="80386 data sheet",
  month=apr, year="1986"}

@techreport{larus:spim,
    author  = "James R. Larus",
    title   = "{SPIM} {S}20: A {MIPS} {R}2000 Simulator",
    institution = "Computer Sciences Department, University of Wisconsin",
    address = "Madison, WI",
    year    = 1990,
    month = "September",
    number = 966
    }

@article{rogers:software,
  month=sep,
  pages="38--50",
  where="shelved with sigplan notices",
  number="9",
  author="Anne Rogers and Kai Li",
  title="Software Support for Speculative Loads",
  journal=ASPLOSV,
  year="1992",
  volume="27"}

@article{kranz:orbit,
  author="David A. Kranz and Richard Kelsey and Jonathan Rees and
	  Paul Hudak and James Philbin and Norman Adams",
  title="{ORBIT}: An Optimizing Compiler for {Scheme}",
  journal="Proceedings of the SIGPLAN'86 Conference on Programming Language Design and
  Implementation, {\em in} SIGPLAN Notices",
  volume=21, number=7, month=jul, year=1986, pages="219-233"
}
 

@article{wulf:bliss,
  author="William A. Wulf and David B. Russell and A. N. Haberman",
  title="Bliss: A Language for Systems Programming",
  journal=CACM,
  volume=14, number=12, pages="780-790", month=dec, year=1971
}

@article(lampson:experience,
  author = "Butler W. Lampson and David D. Redell",
  title = "Experience with Processes and Monitors in {Mesa}",
  journal = cacm,
  volume = 23,
  number = 2,
  month = feb,
  year = 1980,
  pages = "105--117")

@book{kernighan:c:2,
  author="Brian W. Kernighan and Dennis M. Ritchie",
  title="The C Programming Language", edition="Second",
  publisher=prhall, address="Englewood Cliffs, NJ",
  year=1988
}

@incollection{birrell:introduction,
  address="Englewood Cliffs, NJ",
  chapter="4",
  pages="88-118",
  author="Andrew D. Birrell",
  title="An Introduction to Programming with Threads",
  booktitle="Systems Programming with {Modula-3}",
  publisher=prhall,
  annote="The one and only place to read about programming with threads.",
  editor="Greg Nelson",
  keywords = {synchronisation, mutual exclusion, semaphores; good},
  year="1991"}

@unpublished{src:modula-3:2.07,
  month=jun,
  author="Bill Kalsow and Eric Muller",
  title="{SRC} {Modula-3}",
  note="DEC Systems Research Center.  Version~2.07. Available by anonymous {\tt ftp} from Internet host {\tt gatekeeper.dec.com}.",
  year="1992"}

@article{leblang:increasing,
  month="??",
  pages="21-37",
  where="papers on configuration management from stu feldman's course",
  number="??",
  author="David B. Leblang and Chase, Jr, Robert P. and Howard Spilke",
  title="Increasing Productivity with a Parallel Configuration Manager",
  keywords="DSEE",
  journal="???",
  year="??",
  volume="??"}


@inproceedings{leblang:computer,
  author="David B. Leblang and Chase, Junior, Robert P.",
  title="Computer-Aided Software Engineering in a Distributed Workstation Environment",
  pages="104--112", xref=psde}


@article{chow:priority,
  title="The Priority-Based Coloring Approach to Register Allocation",
  author="Fred C. Chow and John L. Hennessy",
  pages="501--536",
  journal=toplas,
  year=1990,
  month=oct,
  volume=12,
  number=4
}

@article{welch:technique,
  author="Terry A. Welch",
  title="A Technique for High-Performance Data Compression",
  where="filed with reprints",
  journal="IEEE Computer",
  volume=17, number=6, month=jun, year=1984, pages="8-19"
}



@article{psde,
  month=may,
  number="5",
  journal=PSDE,
  year="1984",
  volume="19"}

@article{wu:fast,
  month=oct,
  pages="83--91",
  where="shelved with cacm",
  number="10",
  author="Sun Wu and Udi Manber",
  title="Fast Text Searching Allowing Errors",
  journal=cacm,
  annote="basis for the quite wonderful {\tt agrep}",
  year="1992",
  volume="35"}

@manual{sgi:graphics,
  organization="Silicon Graphics, Inc.",
  key="SGI",
  address="Mountain View, CA",
  title="Graphics Library Programming Guide",
  number="Document Number 007-1210-040",
  year="1991"}

@manual{sun:network,
  address="Mountain View, CA",
  title="Network Programming",
  organization="Sun Microsystems",
  key="Sun", 
  number="Part number 800-3850-10, revision~A",
  year="1990"}

@unpublished{ellis:alpha,
  author="John R. Ellis",
  title="Alpha calling sequence",
  note="DEC documents describing their patented Alpha
        calling sequence were not available in November~1992.
        Information about the DEC Alpha calling sequence can be
        obtained from John Ellis, formerly at DEC, now at Xerox PARC.
        Email address  {\tt ellis@parc.xerox.com}.",
  year="1992"}

@book{ellis:c++,
  where="hanson",
  author="Margaret A. Ellis and Bjarne Stroustrup",
  title="The Annotated {C++} Reference Manual",
  publisher="Addison-Wesley",
  address="Reading, MA",
  year="1990"}

@book{griswold:icon,
  author="Ralph E. Griswold and Madge T. Griswold",
  title="The Icon Programming Language", edition="Second",
  publisher=PRHALL, address="Englewood Cliffs, NJ",
  year=1990
}

@manual{digital:vms-calling,
  key="Digital",
  number="Order Number AA-PQY2A-TK",
  month=oct,
  address="Maynard, MA",
  title="Open {VMS} Calling Standard",
  organization="Digital Equipment Corporation",
  year="1992"}

@manual{ansi:c-standard,
  key="ANSI",
  title="American National Standards for Information Systems, 
         Programming Language~C {ANSI} X3.159--1989",
  organization="American National Standard Institute, Inc.",
  address="New York",
  year=1990
}
@unpublished{caseau:efficient,
  author="Yves Caseau",
  title="Efficient Handling of Multiple Inheritance Hierarchies",
  note="Available from the author.",
  annote="Shows that any
multiple inheritance hierarchy (partial order) can be transformed into
a lattice.  Uses a fairly simple `genetic' style top-down method to
encode nodes as bit vectors.  Subsumption (subtyping) can be tested in
constant time using bit operations.  (a <= b iff a^b = a)
Measurements on real big class hierarchies suggest 64 bits will always
be sufficient for this metho
d, where 64 bits weren't enough for other (modulation) method.
Implementation computes lattice and encoding incrementzlly as
new classes are added at the bottom of the lattice.
Improved efficiency of subsumption by 50%.",
  year="1993"}

@book{allison:practical,
  address="Cambridge, England",
  where="MRE library",
  author="Lloyd Allison",
  title="A Practical Introduction to Denotational Semantics",
  publisher="Cambridge University Press",
  annote="A nice, short, sweet introduction
to using denotational semantics to describe programming languages.  Light
on the mathematical foundations (limits itself to discussion of lattices,
complete partial orders, and least fixed points), and strong on examples.
Also strong on showing how to turn denotational definitions into interpreters.
(Interpreters in Algol 68 or Pascal rather than Standard ML, which is a plus
or minus depending on your orientation.)  Covers several interesting
language constructs, also has a chapter on semantics of Prolog!  Unfortunately
does not cover exceptions, but there's enough there to puzzle it out.
\par",
  year="1986"}

@techreport{fernandez:simple,
  month=nov,
  author="Mary {Fer­n\'an­dez}",
  title="Simple and Effective Link-time Optimization of {Modula}-3 Programs",
  year=1994,
  institution=pucs,
  number="CS-TR-474-94"}

@techreport{larus:rewriting:techreport,
  month=mar,
  address="University of Wisconsin--Madison",
  where="anonymous ftp from ftp.cs.wisc.edu",
  number="1083",
  author="James Larus and Thomas Ball",
  title="Rewriting Executable Files to Measure Program Behavior",
  year="1992",
  institution="Computer Sciences"}

@Article{larus:rewriting,
  where="filed with reprints",
      author =       "James R. Larus and Thomas Ball",
      title =        "Rewriting Executable Files to Measure Program Behavior",
      journal =      SPE,
      volume =       "24",
      number =       "2",
      pages =        "197--218",
      month =        feb,
      year =         "1994",
      bibdate =      "Wed Aug 24 15:30:42 1994",
      also = "Wisconsin TR No.~1083, March 1992",
    }


@article{quong:linking,
  title="Linking Programs Incrementally",
  author="Russell W. Quong and Mark A. Linton",
  pages="1--20",
  journal=toplas,
  year=1991,
  month=jan,
  volume=13,
  number=1
}

@article{pettis:profile,
        author = "Karl Pettis and Robert Hansen",
        title = "Profile Guided Code Positioning",
        year = "1990", month=jun, volume=25, number=6,
  journal="ACM SIGPLAN '90 Conference on Programming Language Design
and Implementation, {\em in} SIGPLAN Notices",
}

@book{wirth:algorithms,
  author="Niklaus Wirth",
  title="Algorithms $+$ Data Structures $=$ Programs",
  publisher=PRHALL, address="Englewood Cliffs, NJ",
  year=1976
}



@article{baker:algorithm,
  month=jan,
  pages="98--120",
  where="on file with reprints",
  number="1",
  author="Brenda S. Baker",
  title="An Algoriithm for Structuring Flowgraphs",
  keywords="iscp flowcharts gotos",
  annote="Algorithm used to convert fortran to ratfor.
The paper is somewhat muddled, but one can squeeze some useful juice out of it with effort.
The claim to fame is that it doesn't copy any code, but that means
that it doesn't eliminate all gotos.",
  journal=jacm,
  year="1977",
  volume="24"}

@article{aho:lr,
  month=jun,
  pages="99--124",
  where="on file with reprints",
  number="2",
  author="Alfred V. Aho and Steve C. Johnson",
  title="{LR} Parsing",
  keywords="yacc",
  annote="Fairly clear description
of LR parsing, including SLR (1) and LALR(1) parser construction.  Good section on 
optimizing parsers and the virtues of ambiguous grammars.",
  journal="Computing Surveys",
  year="1974",
  volume="6"}

@article{deremer:efficient,
  title="Efficient Computation of {LALR}(1) Look-Ahead Sets",
  author="Frank DeRemer and Thomas Pennello",
  pages="615--649",
  journal=toplas,
  year=1982,
  month=oct,
  volume=4,
  number=4
}

@book{dijkstra:discipline,
  author="Edsger W. Dijsktra",
  title="A Discipline of Programming",
  publisher="Prentice-Hall",
  address="Englewood Cliffs, NJ",
  year="1976"}

@article{fraser:burg,
  author="Christopher W. Fraser and Robert R. Henry and Todd A. Proebsting",
  title="{BURG}---Fast Optimal Instruction Selection and Tree Parsing",
  journal=SIGPLAN, volume=27, number=4, month=apr, pages="68-76",
  year=1992}

@misc{anonymous,
  author="Anonymous",
  year="19---",
  note="``Authors should avoid citations that make their identities obvious.''"}

@book{brown:writing,
  address="New York",
  where="RRC or NVC library",
  author="Peter J. Brown",
  title="Writing Interactive Compilers and Interpreters",
  publisher="Wiley",
  annote="An interesting book, but dated.
Primarily about how to design and implement your own BASIC-style language.
Notable for a certain tongue-in-cheek attitude and for the excellent
list of deadly sins.  ``The first deadly sin is to code before you think.''",
  year="1979"}

@manual{intel:486,
	title = "{i486} Microprocessor Programmer's Reference Manual",
	year = "1990",
  where="manual shelf",
  organization="Intel Corporation",
  key="Intel"
}


@manual{intel:pentium,
  address="Mount Prospect, IL",
  where="manual shelf",
  organization="Intel Corporation",
  key="Intel",
  series="Pentium Processor User's Manual",
  title="Architecture and Programming Manual",
  year="1993",
  volume="3"}

@inproceedings{ball:optimally:popl,
  author="Thomas Ball and James R. Larus",
  title="Optimally Profiling and Tracing Programs",
  booktitle=popl92, pages="59-70",
  address="Albuquerque, NM", month=jan, year=1992
}

@article{ball:optimally,
  author="Thomas Ball and James R. Larus",
  title="Optimally Profiling and Tracing Programs",
  journal=toplas, volume=16, number=4, month=jul, year=1994,
  pages="1319-1360"
}

@book{bell:computer,
  address="New York",
  author="C. Gordon Bell and Allen Newell",
  title="Computer Structures: Readings and Examples",
  publisher="McGraw-Hill",
  year="1971"}

@phdthesis{wick:automatic,
  month=dec,
  author="John Dryer Wick",
  title="Automatic Generation of Assemblers",
  school="Yale University",
  year="1975"}

@manual{asn.1,
  key="ISO",
  organization="{International Organization for Standardization}",
  title="Information Processing --- Open Systems Interconnection --- Specification of Abstract Syntax Notation One (ASN.1)",
  note="ISO 8824 (CCITT X.208)",
  year="1987"}

@manual{gnu:gas,
  month=mar,
  author="Dean Elsner and Jay Fenlason and others",
  title="Using {\tt as}: the {GNU} Assembler",
  organization="Free Software Foundation",
  year="1993"}

@manual{pure:purify,
  address="Sunnyvale, CA",
  title="Purify User's Guide",
  note="Release 2.1",
  key="Pure",
  organization="Pure Software Inc.",
  year="1993"}

@article{srivastava:practical,
  where="filed with reprints",
  month=mar,
  pages="1--18",
  author="Amitabh Srivastava and David W. Wall",
  title="A Practical System for Intermodule Code Optimization",
  note="Also available as WRL Research Report 92/6, December 1992",
  journal="Journal of Programming Languages",
  annote="The paper that introduces OM",
  year="1993",
  volume="1"}

@ARTICLE{bradlee:marion,
	author = "David Bradlee and Robert Henry and Susan Eggers",
	title = "The {Marion} System for Retargetable Instruction Scheduling",
	journal = "ACM SIGPLAN '91 Conference on Programming Language
                  Design and Implementaion, {\em in} SIGPLAN Notices",
	year = "1991", volume=26, number=6, month=jun, pages="229--240"
}

@article{davidson:code,
  title="Code Selection through Object Code Optimization",
  author="Jack W. Davidson and Christopher W. Fraser",
  where="filed with reprints",
  pages="505--526",
  journal=toplas,
  year=1984,
  month=oct,
  volume=6,
  number=4
}
@book{paulson:ml,
  address="New York",
  author="Laurence C. Paulson",
  title="ML for the working programmer",
  publisher="Cambridge University Press",
  edition="Second",
  year="1996"}

@article{davidson:design,
  author="Jack W. Davidson and Christopher W. Fraser",
  title="The Design and Application of a Retargetable Peephole Optimizer",
  journal=TOPLAS, volume=2, number=2, month=apr, year=1980, pages="191-202"
}
@inproceedings{hastings:purify,
  month=jan,
  pages="125--136",
  where="filed with reprints",
  author="Reed Hastings and Bob Joyce",
  title="Purify: Fast Detection of Memory Leaks and Access Errors",
  booktitle=WUSENIX,
  address="San Francisco, CA",
  year="1992"}

@article{conklin:hypertext,
  month=sep,
  pages="17--41",
  where="file with reprints",
  author="Jeff Conklin",
  title="Hypertext: An Introduction and Survey",
  journal="IEEE Computer",
  year="1987"}

@article{bigelow:hypertext,
  month=mar,
  pages="23-27",
  where="filed with reprints",
  author="James Bigelow",
  title="Hypertext and {CASE}",
  journal="IEEE Software",
  year="1988"}

@unpublished{franz:technological,
  author="Michael Franz",
  title="Technological Steps toward a Software Component Industry",
  note="Unpublished MS; author's address is ETH Zurich.",
  annote="Uses LZ-like dictionary techniques
to represent programs in a machine-indepnednet way.  Result is twice as
compact as CISC code.  Code is generated on the fly by the loader.",
  year="1994"}

@inproceedings{cmelik:shade,
  where="one file with reprints",
  author="Bob Cmelik and David Keppel",
  title="Shade: A Fast Instruction-Set Simulator for Execution Profiling",
  booktitle="Proceedings of the 1994 ACM SIGMETRICS Conference on Measurement and Modeling of Computer Systems",
  url =          "ftp://ftp.cs.washington.edu/pub/pardo/shade.ps.Z",
      month =        may,
      pages =        "128--137",
  annote="Neat way of profiling:
instead of simulating each instruction, {\em translates} basic blocks into
new basic blocks that do what the original did, plus profiling.",
  year="1994"}

@article{franz:case,
  pages="136--147",
  where="on file with reprints",
  author="Michael Franz",
  title="The Case for Universal Symbol Files",
  keywords="compilers symbol tables",
  annote="Proposes a machine-independent,
readable format for the analog of Modula-3 .ix and .mx files.  Seems pretty
lame to me.",
  journal="Structured Programming",
  year="1993",
  volume="14"}

@techreport{cytron:fril,
  month=jul,
  where="on file with reprints",
  author="Ron Cytron and David Shields",
  title="{\sc FrIL}---A Fractal Intermediate Language",
  annote="I don't really understand the
issues or achievements here, but I looked it over pretty quickly.",
  year="1993",
  institution="Washington University of Saint Louis"}

@article{gansner:technique,
  month=mar,
  pages="214-230",
  where="filed with reprints",
  number="3",
  author="Emden R. Gansner and Eleftherios Koutsofios and Stephen C. North and Kiem-Phong Vo",
  title="A Technique for Drawing Directed Graphs",
  annote="Describes how dot works.",
  journal="IEEE Transactions of Software Engineering",
  year="1993",
  volume="19"}

@article{fernandez:garbage,
  author="Mary F. Fern\'andez and David R. Hanson",
  title="Garbage Collection Alternatives for Icon", 
  journal=SPE, volume=22, number=8, pages="659-672", year=1992,
  annote="Pleasant, but disappointing in that it is not possible to 
          test a generational copying collector.",
  where="filed with reprints"
}

@article{ferguson:evolution,
  pages="190-193",
  number="3",
  author="David E. Ferguson",
  title="The Evolution of the Meta-Assembly Program",
  keywords="assembler",
  journal=CACM,
  year="1966",
  volume="9"}

@book{bell:text,
  address="Englewood Cliffs, NJ",
  where="my shelf",
  author="Timothy C. Bell and John G. Cleary and Ian H. Witten",
  title="Text Compression",
  publisher="Prentice Hall",
  year="1990"}

@article{duffy:statistical,
  month=apr,
  pages="544-551",
  where="ask mcintosh",
  number="3",
  author="Diane E. Duffy and Allen A. McIntosh and Mark Rosenstein and Walter Willinger",
  title="Statistical Analysis of {CCSN/SS7} Traffic Data from Working {CCS} Subnetworks",
  journal="IEEE Journal on Selected Areas in Communications",
  year="1994",
  volume="12"}

@inproceedings{douglis:compression,
  author = {Fred Douglis},
  title = {The Compression Cache: Using On-line Compression to Extend Physical Memory},
  booktitle = {Proceedings of 1993 Winter USENIX Conference},
  year = {1993},
  address = {San Diego, CA},
  month = JAN,
  pages = {519--529}
}
@book{harvey:simply,
  author =      "Brian Harvey and Matthew Wright",
  title =       "Simply Scheme: Introducing Computer Science",
  publisher =   "MIT Press",
  year =        "1994",
  address =     "Cambridge, Massachusetts, U.S.A.",
  ISBN=         "0-262-08226-8",
  annote =      "Good introduction to programming"
}
@book{aho:awk,
  address="Reading, MA",
  where="at home",
  author="Alfred V. Aho and Brian W. Kernighan and Peter J. Weinberger",
  title="The {AWK} Programming Language",
  publisher="Addison-Wesley", 
  year="1988"}

@book{fraser:retargetable:book,
  author="Christopher W. Fraser and David R. Hanson",
  title="A Retargetable {C} Compiler: Design and Implementation",
  publisher="Benjamin/Cummings", address="Redwood City, CA",
  year=1995, 
  isbn="0-8053-1670-1",
}

@Article{bernstein:multiplication,
     where = "on file with reprints",
     author =       "Robert L. Bernstein",
     title =        "Multiplication by integer constants",
     journal =      SPE,
     volume =       "16",
     number =       "7",
     pages =        "641--652",
     month =        jul,
     year =         "1986",
   }

@TechReport{keppel:register,
  where="filed with reprints",
     author =       "David Keppel",
     title =        "Register Windows and User-Space Threads on the
                    {SPARC}",
     institution =  "University of Washington",
     number =       "TR 91-08-01",
     year =         "1991",
     abstract =     "Multiple lightweight processes or {\em threads} have
                    multiple stacks, and a thread context switch moves
                    execution from one stack to another. On the SPARC
                    architecture, parts of a thread's stack can be cached
                    in register windows while the thread is running. The
                    cached data must be flushed to memory when the thread
                    is suspended. Doing the flushing both efficiently and
                    correctly can be tricky. This document discusses the
                    implementation of a non-preemptive user-space threads
                    package under SunOS.",
   }

@Article{shackelford:why,
  where="filed with reprints",
     author =       "Russell L. Shackelford and Albert N. Badre",
     title =        "Why Can't Smart Students Solve Simple Programming
                    Problems?",
     journal =      "International Journal of Man-Machine Studies",
     pages =        "985--997",
     volume =       "38",
     number =       "6",
     month =        jun,
     year =         "1993"
   }

@InProceedings{cousot:abstract,
  where="filed with reprints",
     title =        "Abstract Interpretation: {A} Unified Lattice Model for
                    Static Analysis of Programs by Construction or
                    Approximation of Fixpoints",
     author =       "Patrick Cousot and Radhia Cousot",
     pages =        "238--252",
     booktitle =    popl77,
     address =      "Los Angeles, California",
     year =         "1977",
     month =        jan,
     annote = "Very theoretical."
   }

@Article{bier:embedded,
  where="filed with reprints",
     author =       "Eric A. Bier",
     title =        "EmbeddedButtons: Supporting Buttons in Documents.",
     journal =      "{ACM} Transactions on Information Systems",
     volume =       "10",
	month = oct,
     year =         "1992",
     number =       "4",
     pages =        "381",
   }

@article{davidson:peephole,
  where="filed with reprints",
  title="The Design and Application of a Retargetable Peephole Optimizer",
  author="Jack W. Davidson and Christopher W. Fraser",
  journal=toplas,
  year=1980,
  month=apr,
  volume=2,
  number=2,
  pages="191--202"
}

@Article{davidson:selection,
  where="filed with reprints",
     key =          "Davidson \& Fraser",
     author =       "J. W. Davidson and C. W. Fraser",
     title =        "Code Selection through Object Code Optimization",
     journal =      toplas,
     volume =       "6",
     number =       "4",
     month =        oct,
     year =         "1984",
     pages =        "505--526",
     keywords =     "code generation, compilation, optimization, peephole
                    optimization, portability",
     abstract =     "This paper shows how thorough object code optimization
                    has simplified a compiler and made it easy to retarget.
                    The code generator forgoes case analysis and emits
                    naive code that is improved by a retargetable object
                    code optimizer. With this technique, cross-compilers
                    emit code comparable to host-specific compilers",
     bibdate =      "Tue Nov 20 15:31:51 1984",
   }



@InProceedings{rose:integrating,
     author =       "John H. Rose and Hans Muller",
     title =        "Integrating the Scheme and {C} Languages",
     booktitle =    "Proceedings of the 1992 ACM Conference on Lisp and
                    Functional Programming",
     pages =        "247--259",
     address =      "San Francisco, USA",
     month =        jun,
     year =         "1992",
     where = "filed with reprints",
     annote = "Describes {\tt esh}, a Scheme system closely integrated
		  with C.  Does a good job discussing the many
		  compromises.  Also seems to have nice section on
		  related work.  A pleasant paper."
   }

@unpublished{johnson:high-level,
  month=oct,
  author="Stephen C. Johnson",
  title="High-Level Languages, Little Languages, and Software Productivity",
  note="Invited presentation, " # vhllname,
  year="1994"}

@inproceedings{ladd:application,
  month=oct,
  address="Santa Fe, NM",
  pages="169-177",
  where="I have proceedings",
  author="David A. Ladd and J. Christopher Ramming",
  title="Two Application Languages in Software Production",
  keywords="PRL PRL5 application-oriented languages 5ESS",
  booktitle=vhll,
  year="1994"}

@Article{pugh:practical,
     author =       "William Pugh",
     title =        "A Practical Algorithm for Exact Array Dependence Analysis",
     journal =      "Communications of the ACM",
     pages =        "102--114",
     volume =       "35",
     number =       "8",
     month =        aug,
     year =         "1992",
   }

@Book{papadimitriou:combinatorial,
     author =       "Christos H. Papadimitriou and Kenneth Steiglitz",
     title =        "Combinatorial Optimization: Algorithms and Complexity",
     year =         "1982",
     address =      "Englewood Cliffs, NJ",
     publisher =    "Prentice-Hall",
     annotate =     "This textbook covers computational complexity, linear
                    programming and the simplex method, network flows,
                    matching problems, matriods, integer programming,
                    cutting plane algorithms, branch and bound algorithms,
                    dynamic programming, heuristics, and approximation
                    algorithms. The material on cutting planes,
                    approximation algorithms and heuristics is somewhat out
                    of date, but overall, this is a very useful textbook.
                    Unfortunately, the book is out of print.",
   }

@Book{bolsky:korn,
     author =       "Morris Bolsky and David Korn",
     title =        "The Korn Shell Command and Programming Language",
     publisher =    prhall,
     year =         "1989",
     ISBN =         "0-13-516972-0",
     LCCN =         "QA76.73.K67 B64 1989",
     address =      "Englewood Cliffs, NJ",
     annote =         "The authoritative reference \ldots{}.",
     pages =        "xvi + 356",
     bibdate =      "Wed Sep 29 10:51:21 1993",
   }

@Book{booch:object,
     author =       "Grady Booch",
     title =        "Object Oriented Design with Application",
     publisher =    "Benjamin/Cummings",
     address =      "Redwood City",
     year =         "1991",
     ISBN =         "0-8053-0091-0",
   }

@Book{jackson:principles,
     author =       "M. A. Jackson",
     title =        "Principles of Program Design",
     publisher =    "Academic Press",
     address =      "London",
     year =         "1975",
     ISBN =         "0-12-379050-6",
     toc =       "1. Introduction 2. Structures and components 3. Basic
                    design techniques 4. Multiple data structures 5. Errors
                    and inability 6. Backtracking 7. Structure clashes 8.
                    Program inversion 9. Complex inversion 10.
                    Multi-threading 11. Systems and programs 12.
                    Optimization 13. Retrospective",
   }

@Book{wall:perl,
     author =       "Larry Wall and Randal L. Schwartz",
     title =        "Programming Perl",
     publisher =    ORA,
     year =         "1992",
     ISBN =         "0-937175-64-1",
     price =        "US\$29.95",
     pages =        "xxv + 454",
     LCCN =         "QA76.73.P43 W35 1990",
     remark =         "The authoritative guide to {\tt perl}\emdash the
                    programming language for any serious {UNIX} users.",
   }

@Article{rose:formatted,
     author =       "G. A. Rose and J. Welsh",
     title =        "Formatted Programming Languages",
     journal =      SPE,
     volume =       "11",
     number =       "6",
     pages =        "651--669",
     month =        jul,
     year =         "1981",
     keywords =     "programming languages, text formatting, formatted
                    languages, readability, Pascal",
     abstract =     "This paper presents a systematic approach to formatted
                    language design that incorporates formatting within the
                    syntax of programming languages. The approach includes:
                    \begin{enumerate} \item a metasyntax to ensure that
                    program text is foldable, not only to avoid right
                    margin overflow but also to preclude constructs which
                    are visually confusing or ambiguous; \item a set of
                    guidelines for language designers to enhance
                    readability withing the constraints of the metasyntax;
                    and \item a folding algorithm which selectively folds a
                    program text. \end{enumerate} The resulting automatic
                    formatting is consistent with current practice in
                    program and text layout. The effect of this approach is
                    to put programs format decisions in the domain of the
                    language's designer, rather than its several
                    implementors or numerous users, which implies uniformly
                    formatted programs of improved readability and
                    therefore usability.",
   }


@TechReport{lesk:lex,
     author =       "M. E. Lesk and E. Schmidt",
     title =        "Lex --- {A} Lexical Analyzer Generator",
     institution =  "Bell Laboratories",
     type =         "Computer Science Technical Report",
     number =       "39",
     address =      "Murray Hill, NJ",
     year =         "1975",
     keywords =     "misc unix lex",
   }

@inproceedings{kahn:complete
   ,author="Kenneth M. Kahn and Vijay A. Saraswat"
   ,title="Complete Visualizations of Concurrent Programs and their Executions"
   ,year=1990
   ,month ="October"
   ,booktitle="Proceedings of the IEEE Visual Language Workshop"
}

@Article{derman:simple,
      author =       "Emanuel Derman and Christopher {Van Wyk}",
      title =        "A Simple Equation Solver and its Application to Financial Modelling",
      journal =      SPE,
      month =        dec,
      year =         "1984",
      volume =       "14",
      number =       "12",
      pages =        "1169--1181",
      where="filed with reprints"
    }

@TechReport(    garland:guide,
       Author = {Stephen J. Garland and John V. Guttag },
        Title = {A Guide to {LP}, The {L}arch {P}rover},
  Institution = {DEC Systems Research Center},
      Address = {Palo Alto, CA},
         Type = {Report},
       Number = 82,
        Month = dec,
         Year = 1991,
)


@Article{hoffman:programming,
      author =       "Cristoph M. Hoffman and Michael J. O'Donnell",
      title =        "Programming with Equations",
  where="filed with reprints",
      journal =      TOPLAS,
      volume =       "4",
      number =       "1",
      pages =        "83--112",
      month =        jan,
      year =         "1982",
      keywords =     "nonprocedural languages, interpreters, equations,
                     term-rewriting systems",
      abstract =     "Equations provide a convenient notation for defining
                     many computations, for example, for programming
                     language interpreters. This paper illustrates the
                     usefulness of equational programs, describes the
                     problems involved in implementing equational programs,
                     and investigates practical solutions to those problems.
                     The goal of the study is a system to automatically
                     transform a set of equations into an efficient program
                     which exactly implements the logical meaning of the
                     equations. This logical meaning may be defined in terms
                     of the traditional mathematical interpretation of
                     equations, without using advanced computing concepts.",
    }


@InProceedings{burstall:hope,
      author =       "Rod M. Burstall and David B. MacQueen and Donald T.
                     Sannella",
      title =        "{HOPE}: An Experimental Applicative Language",
      booktitle =    "Conference Record of the 1980 LISP Conference",
      year =         "1980",
      pages =        "136--143",
    }
@article{moses:algebraic,
  pages="527--537",
  number="8",
  author="Joel Moses",
  title="Algebraic Simplification: A Guide for the Perplexed",
  where="filed with reprints",
  keywords="equation solving",
  journal=cacm,
  year="1971",
  volume="14"}


@Book(guttag:larch:book,
       Editor = {Guttag, John~V. and Horning, James~J.},
         Note = {With Stephen~J. Garland, Kevin~D. Jones, Andr\'es Modet,
                 and Jeannette~M. Wing},
        Title = {Larch: Languages and Tools for Formal Specification},
    Publisher = {Springer-Verlag},
       Series = {Texts and Monographs in Computer Science},
         Year = 1993
)

@inproceedings{none,
  author="Michael L. Powell",
  title="A Portable Optimizing Compiler for {Modula-2}",
  where="filed with reprints",
  booktitle="Proceedings of the SIGPLAN Symposium on Compiler Construction",
  address="Boston, MA", pages="310-318", month=jun, year=1984
}

@article{hoffman:implementation,
  title="Implementation of an Interpreter for Abstract Equations",
  author="Christoph M. Hoffman and Michael J. O'Donnell and Robert I. Strandh",
  pages="1185-1204",
  journal=spe,
  year=1985,
  month=dec,
  volume=15,
  number=12
}

@InProceedings{Lampso83,
      author =       "B. W. Lampson",
      title =        "Hints for Computer System Design",
      booktitle =    "Proceedings of the 9th ACM Symposium on Operating
                     Systems Principles (SOSP)",
  where="filed with reprints",
      pages =        "33--48",
      address =      "Bretton Woods, NH USA",
      year =         "1983",
      note =         "Published as ACM Operating Systems Review, SIGOPS,
                     volume 17, number 5",
    }

@article{bernstein:producing,
author="Robert L. Bernstein",
title="Producing Good Code for the Case Statement",
  where="filed with reprints",
journal=SPE,
volume=15, number=10, month=oct, year=1985, pages="1021-1024"
}

@article{watson:primitive,
  pages="368-369",
  where="filed with reprints",
  number="????",
  author="E. J. Watson",
  title="Primitive Polynomials (Mod 2)",
  keywords="CRC",
  note="Useful as CRC polynomials",
  journal="????",
  year="1962?",
  volume="????"}

@article{peled:hardware,
  month=feb,
  pages="76-86",
  where="filed with reprints",
  number="1",
  author="Abraham Peled",
  title="On the hardware Implementation of Digital Signal Processors",
  keywords="fast multiplication",
  annote="Shows how to use signed-digit
codes to build fast multipliers (plus lots of other goo).",
  journal="IEEE Transactions on Acoustics, Speech, and Signal Processing",
  year="1976",
  volume="ASSP-24"}

@ARTICLE{knuth:semantics,
        author = "Donald E. Knuth",
        title = "Semantics of context-free languages",
  where="filed with reprints",
        journal = "Mathematical Systems Theory",
        month = "Jun",
        year = "1968",
        pages = "127-145",
        volume = "2",
        number = "2",
        note = "Errata: volume 5, number 1 (1971), 95-96",
        ANNOTE = {Introduces the idea of attribute grammars using
	``Turingol'' as an example. A delightful paper.}
}

@article{auslander:overview,
	author		= "Marc Auslander and Martin Hopkins",
	title		= "An overview of the {PL}.8 compiler",
        where="proceedings shelved with POPL proceedings",
	journal		= cc82 # ", {\em in} " # sigplan,
	volume		= 17,
	number		= 6,
	pages		= "22--31",
	address		= "Boston, MA",
	month		= Jun,
	year		= 1982}


@Article{cardelli:understanding,
      author =       "Luca Cardelli and Peter Wegner",
      title =        "On Understanding Types, Data Abstraction and Polymorphism",
      journal =      "ACM Computing Surveys",
      volume =       "17",
      number =       "4",
      pages =        "471--522",
      year =         "1985",
      keywords =     "functional",
      annnote = {Formal treatments of various different type systems,
      only a few of which seem to be used in practical languages.
      Not as interesting as I had hoped.},
      where = "Available through Cardelli's home page at SRC",
    }

@article{moffat:word-based,
  month=feb,
  pages="185-198",
  where="filed with reprints",
  number="2",
  author="Alistair Moffat",
  title="Word-based Text Compression",
  annote="No surprises.
       Moffat tried Bentley's word-based compression scheme with a bunch of
       better-known coding techniques, not just move-to-front.  Got good compression,
       consumed fewer resources than some character-based compression scheme.
       Best compression using first-order contexts is about 2.2 bits/char.
       Zero-order good for 2.5 bits/char.  Second-order costly, no better.
       Paper very straightforward and somewhat dull reading.",
  journal=spe,
  year="1989",
  volume="19"}

@article{cichelli:minimal,
  author="Richard J. Cichelli",
  title="Minimal Perfect Hash Functions Made Simple",
  where="filed with reprints",
  journal=CACM,
  volume=23, number=1, pages="17-19", month=jan, year=1980
}

@article(Jeffery94,
        Author="Clinton L. Jeffery and Ralph E. Griswold",
        Title="A Framework for Execution Monitoring in Icon",
        Journal="Software: Practice and Experience",
        Volume="24(11)",
        Year=1994,
        Pages="1025-1049"
        )

@article{fernandez:link-time,
  month=jun,
  author="Mary F. Fern\'andez",
  title="Simple and effective link-time optimization of {Modula-3} programs",
  journal=pldi95 # ", {\em in} " # sigplan,
  volume=30, number=6, pages="103-115",
  year="1995"}

@article{larus:eel,
  month=jun, volume=30, number=6, pages="291-300", address="San Diego, CA",
  author="James R. Larus and Eric Schnarr",
  title="{EEL}: machine-independent executable editing",
  journal=pldi95 # insigplan,
  year="1995"}

@inproceedings{george:portable,
  author="Lal George and Florent Guillame and John H. Reppy",
  title="A Portable and Optimizing Back End for the {SML/NJ} Compiler",
  booktitle="5th International Conference on Compiler Construction",
  month=apr, year="1994", pages="83-97"}

@article{srivastava:atom,
  author="Amitabh Srivastava and Alan Eustace",
  title="{ATOM}: A system for building customized program analysis tools",
  volume=29, number=6, address="Orlando, FL",
  journal=pldi94 # insigplan, month=jun, year="1994", pages="196-205"}

@inproceedings{wahbe:efficient,
 author="Robert Wahbe and Steven Lucco and Thomas E. Anderson and Susan L. Graham",
 title="Efficient Software-Based Fault Isolation",
 booktitle="Proceedings of the Fourteenth ACM Symposium on Operating System Principles",
  month=dec, year=1993, pages="203-216"}

@inproceedings{proebsting:detecting,
  month=jan,
  address="Portland, OR",
  pages="280-286",
  author="Todd A. Proebsting and Christopher W. Fraser",
  title="Detecting Pipeline Structural Hazards Quickly",
  booktitle=popl94,
  year="1994"}

@inproceedings{graham:adaptable,
  author="Susan L. Graham and Steven Lucco and Robert Wahbe",
  title="Adaptable Binary Programs",
   booktitle="Proceedings of the 1995 USENIX Technical Conference",
  address="New Orleans, LA",
  pages="315-325",
  month=jan,
  year="1995"}

@Article{knuth:breaking,
      author =       "Donald E. Knuth and Michael F. Plass",
      title =        "Breaking Paragraphs Into Lines",
      where="filed with reprints",
      journal =      spe,
      volume =       "11",
      year =         "1981",
      pages =        "1119--1184",
    }
@article{comer:complexity,
  month=jul,
  pages="428-440",
  where="filed with reprints",
  number="3",
  author="Douglas Comer and Ravi Sethi",
  title="The Complexity of Trie Index Construction",
  keywords="information retrieval, trie indexes, trie size, average search time, complexity, matching problems",
  journal="Journal of the ACM",
  year="1977",
  volume="23"}

@inproceedings{bowdidge:automated,
  author = "Robert W. Bowdidge and William G. Griswold",
  title = "Automated Support for Encapsulating Abstract Data Types",
  where="filed with reprints",
  booktitle = "ACM SIGSOFT '94 Symposium on the Foundations of Software Engineering",
  pages = "97--110",
  year = "1994",
  month = Dec}

@Article{hyafil:constructing,
      author =       "Laurent Hyafil and Ronald L. Rivest",
      title =        "Constructing Optimal Binary Decision Trees is {NP}-Complete",
  where="filed with reprints",
      journal =      "Information Processing Letters",
      volume =       "5",
      year =         "1976",
      month=may,  pages="15--17", number="1",
    }


@article{steele:arithmetic, 
  Author = "Guy L. Steele Jr.",
  Title= "Arithmetic Shifting Considered Harmful",
  where="filed with reprints",
  Journal = "SIGPLAN Notices", volume="12", number="11", year="1977", pages="61-69",
  annote="Long, drawn-out explanation of why arithmetic shift right and division 
          toward zero don't go together."
}

@article{parnas:criteria,
  Author = "David Lorge Parnas",
  Title = "On the Criteria for Decomposing Systems into Modules",
  where="filed with reprints",
  Journal = CACM,
  Volume = "15", number="12", month=dec, year="1972",
  Pages = "1053-1058",
}

@Article{perry94b,
      author =       "Dewayne E. Perry and Nancy A. Staudenmayer and
                     Lawrence G. Votta",
      title =        "People, Organizations, and Process Improvement",
  where="filed with reprints",
      journal =      "IEEE Software",
      year =         "1994",
      volume =       "11",
      number =       "4",
      pages =        "36--45",
      month =        jul,
    }

@article{szymanski:assembling,
  where = "filed with reprints", 
  author          = "Thomas G. Szymanski",
  title           = "Assembling Code for Machines with Span-Dependent Instructions",
  journal         = CACM,
  volume          = 21,
  number          = 4,
  pages           = "300--308",
  month   	= apr,
  year		= 1978}

@article{vanwyk:arithmetic,
  month=jun,
  pages="467-494",
  where="filed with reprints",
  number="6",
  author="Christopher J. {Van Wyk}",
  title="Arithmetic Equality Constraints as {C$++$} Statements",
  keywords="C++ object-oriented programming operator overloading simultaneous equations equation solving",
  annote="Elegant use of overloading to provide a HEQS-like solver to C++ programs.",
  journal=SPE,
  year="1992",
  volume="22"}

@article{cohen:garbage,
  month=sep,
  pages="341-367",
  where="in CS600 Princeton generals' reading list book, also filed with reprints",
  number="3",
  author="Jacques Cohen",
  title="Garbage Collection of Linked Data Structures",
  annote="standard survey on garbage collection",
  journal="Computing Surveys",
  year="1981",
  volume="13"}

@article{borning:programming,
  title="The Programming Language Aspects of {ThingLab}, a
                 Constraint-Oriented Simulation Laboratory",
  author="Alan Borning",
  pages="353--387",
  journal=toplas,
  year=1981,
  month=oct,
  volume=3,
  number=4
}
@phdthesis{sutherland:sketchpad,
  address="Cambridge, MA",
  author="Ivan Sutherland",
  title="Sketchpad: A Man-Machine Graphical Communication System",
  school="MIT",
  year="1963"}

@article{kelsey:tractable,
  pages="315-335",
  where="filed with reprints",
  number="44",
  author="Richard A. Kelsey and Jonathan A. Rees",
  title="A Tractable {Scheme} Implementation",
  keywords="byte-code interpreters, virtual machines, modularity, partial evaluation, Scheme, layered design",
  annote="Recommended by Will Clinger. Basis for work on VScheme (verified).
	Interesting paper but leaves
	much of the story untold.",
  journal=lasc,
  year="1994",
  volume="7"}

@book{ibm:powerpc,
  month=may,
  address="San Francisco, CA",
  where="my shelf",
  title="The {PowerPC} Architecture: A Specification for a New Family of {RISC} Processors",
  publisher="Morgan Kaufman",
  edition="second",
  editor="Cathy May and Ed Silha and Rick Simpson and Hank Warren",
  year="1994"}

@article{fraser:engineering,
  author="Christopher W. Fraser and David R. Hanson and Todd A. Proebsting",
  title="Engineering a Simple, Efficient Code-Generator Generator",
  journal=LOPLAS, volume=1, number=3, month=sep, year=1992, pages="213-226"
}

@inproceedings{horgan:atac,
  month=may,
  pages="2--10",
  author="J. R. Horgan and Saul L. London",
  title="{ATAC}: A Data Flow Coverage and Testing Tool for {C}",
  publisher="IEEE Computer Society Press",
  booktitle="Proceedings of the Symposium on Assessment of Quality Software Development Tools",
  year="1992"}

@article{jones:mix,
  AUTHOR        = "Neil D. Jones and Peter Sestoft and Harald Søndergaard",
  TITLE         = "Mix: A Self-Applicable Partial Evaluator for Experiments
		   in Compiler Generation",
  JOURNAL       = lasc,
  YEAR          = "1989",
  VOLUME        = "2",
  NUMBER        = "1",
  PAGES         = "9-50", 
  ANNOTE = "A comprehensive discussion of partial evaluation, its
applications to generation of compilers and compiler generators, and
of engineering problems is given.  A fully automatic version of the
partial evaluator discussed in \cite{jones:experiment} is
described and results from its use are reported."}

@article{briggs:effective,
 author="Preston Briggs and Keith D. Cooper",
  title="Effective Partial Redundancy Elimination",
  pages="159--170",
  journal=pldi94 # ", {\em in} " # sigplan,
  year=1994,
  month=jun,
  volume=29,
  number=6
}

@manual{sysv-abi,
  address="Englewood Cliffs, NJ",
  title="{System~V} Application Binary Interface",
  note="Unix Press",
  edition="Third",
  organization="Prentice Hall",
  year="1993"}

@manual{sysv-abi-sparc,
  address="Englewood Cliffs, NJ",
  title="{System~V} Application Binary Interface, {SPARC} Architecture Processor Supplement",
  note="Unix Press",
  edition="Third",
  organization="Prentice Hall",
  year="1993"}

@book{gircys:coff,
  month=nov,
  address="Sebastopol, CA",
  where="shelved with architecture manuals",
  author="Gintaras R. Gircys",
  series="Nutshell Handbooks",
  title="Understanding and Using {COFF}",
  publisher="O'Reilly \& Associates",
  year="1988"}

@techreport{appel:re-opening,
  Author = "Andrew W. Appel",
  Title = "Re-opening Closures",
  Number = "CS-TR-079-87",
  Year = 1987,
  Institution = "Princeton University, Dept.\ Comp.\ Sci.",
  Address = "Princeton, NJ"}

@article{jones:assembly,
  month=aug,
  where="filed with reprints",
  number="8",
  author="Douglas W. Jones",
  title="Assembly Language as Object Code",
  journal=SPE,
  year="1983",
  volume=13}

@incollection{wadler:match,
  pages="78-103", chapter="5", title="Efficient Compilation of Pattern-Matching",
  author="Philip Wadler",
  crossref="peyton-jones:implementation",
}

@Article{sites:binary,
      author =       "Richard L. Sites and Anton Chernoff and Matthew B.
                     Kirk and Maurice P. Marks and Scott G. Robinson",
      title =        "Binary Translation",
      journal =      "Communications of the ACM",
      pages =        "69--81",
      volume =       "36",
      number =       "2",
      month =        feb,
      year =         "1993",
    }
@Article{SitesRicha1992a,
      author =       "Richard L. Sites and Anton Chernoff and Matthew B.
                     Kirk and Maurice P. Marks and Scott G. Robinson",
      journal =      "Digital Technical Journal",
      title =        "Binary Translation",
      year =         "1992",
      abstract-url = "http://www.digital.com/info/DTJ/axp-binary.txt.html",
      url =          "ftp://ftp.digital.com/pub/Digital/info/DTJ/axp-binary.ps.Z",
      number =       "4",
      volume =       "4",
    }

@TechReport{engler:vcode:techreport,
  author =   "D. R. Engler",
  title = "{\sc vcode}: a retargetable, extensible, very fast dynamic code gene
ration system",
  year =     "1995",
  institution = "MIT",
  type =     "Technical Memorandum",
  month =    jul,
  number = "MIT/LCS/TM534",
}
@phdthesis{fernandez:retargetable,
  month=nov,
  author="Mary F. Fern\'andez",
  title="A Retargetable Optimizing Linker",
  school="Dept of Computer Science, Princeton University",
  year="1995"}

@article{larus:abstract,
  month=dec,
  pages="1241-1258",
  where="filed with reprints",
  number="12",
  author="James R. Larus",
  title="Abstract Execution: A Technique for Efficiently Tracing Programs",
  keywords="compilers execution profiling run-time performance evaluation optimization data compression",
  journal=spe,
  year="1990",
  volume="20"}

@article{larus:efficient,
  month=may,
  pages="52-61",
  where="filed with reprints",
  author="James R. Larus",
  title="Efficient Program Tracing",
  journal="IEEE Computer",
  year="1993"}

@article{lieberman:prototypical,
  month=nov,
  pages="214-223",
  number="11",
  author="Henry Lieberman",
  title="Using Prototypical Objecgts to Implement Shared Behavior in Object Oriented Systems",
  keywords="delegation",
  annote="Excellent, clear paper on the
delegation style of reuse (as opposed to inheritance).  Very nice examples.",
  journal=OOPSLA86,
  year="1986",
  volume="21"}

@article{jones:finite,
  month=aug,
  pages="19-22",
  where="shelved with notices",
  number="8",
  author="Douglas W. Jones",
  title="How (Not) to Code a Finite State Machine",
  annote="Cute little paper about
what control structure to use to write finite-state machines.
Goto is often best, but there are better structured alternatives
than using a state variable with CASE and WHILE.",
  journal="SIGPLAN Notices",
  year="1988",
  volume="23"}

@inproceedings{danskin:higher,
  author="John Danskin",
  title="Higher Bandwidth {X}",
  booktitle="Second ACM International Conference on Multimedia",
  month=oct, year="1994", pages="89-96",
  address="San Francisco, CA"}

@Article{holzmann:improved,
      author =       "G. J. Holzmann",
      title =        "An Improved Protocol Reachability Analysis Technique",
      journal =      "Software---Practice \& Experience",
      volume =       "18",
      number =       "2",
      pages =        "137--161",
      month =        feb,
      year =         "1988",
    }
@unpublished{hsieh:language,
  author="Wilson C. Hsieh and Marc E. Fiuczynski and Charles Garrett and Stefan Savage and David Becker and Brian N. Bershad",
  title="Language Support for Extensible Operating Systems",
  note="Submitted to the first annual Workshop on Compiler Support for Systems Software.
        See pointer at {\tt http://www.cs.washington.edu/research/projects/spin/www}.",
  year="1995"}

    @article{wirth:ebnf,
     author = {Niklaus Wirth},
     title = {What Can We Do About the Unnecessary Diversity of Notation
        for Syntactic Definitions?},
     journal = cacm,
     volume = 20,
     number = 11,
     month = nov,
     year = 1977,
     pages = {822-823},
    }
@book{hanson:interfaces,
  author="David R. Hanson",
  title="{C} Interfaces and Implementations",
  note="Forthcoming.",
  publisher="Benjamin/Cummings",
  year="1996"}

@inproceedings{engler:tick-c,
  where="filed with reprints",
  month=jan,
  address="St. Petersburg, FL",
  pages="1-13",
  author="Dawson R. Engler and Wilson C. Hsieh and M. Frans Kaashoek",
  title="`C: A Language for High-Level, Efficient, and Machine- Independent Dynamic Code Generation",
  publisher="The Association for Computing Machinery",
  booktitle="23rd Annual ACM Symposium on Principles of Programming Languages",
  organization="The Association for Computing Machinery",
  year="1996"}

@inproceedings{leone:lightweight,
  where="filed with reprints",
  month=jun,
  pages="1-9",
  author="Mark Leone and Peter Lee",
  title="Lightweight Run-Time Code Generation",
  booktitle="ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation",
  organization="ACM",
  year="1994"}

@InProceedings{augustsson:cayenne,
  author =       "Lennart Augustsson",
  title =        "Cayenne --- a language with dependent types",
  crossref = "icfp98",
  pages =        "239--250",
  annote =       "A Haskell variant with dependent types. 27
                 references.",
}

@article{gordon:bisimilarity,
  author =       "Andrew D. Gordon",
  title =        "Bisimilarity as a Theory of Functional Programming",
  journal = tcs,
  volume = 228,
  pages = "5--47",
  year =         "1999",
}

@techreport{colby:modular,
  where="filed with reprints",
  number="CMU-CS-92-123",
  author="Christopher Colby and Peter Lee",
  title="A Modular Implementaion of Partial Evaluation",
  year="1992",
  institution="Carnegie Mellon University"}

@inproceedings{arnold:elf,
  where="filed with reprints",
  month=jun,
  pages="1-9",
  author="James Q. Arnold",
  title="{ELF}: An Object File to Mitigate Mischievous Misoneism",
  booktitle=susenix,
  address =      "Anaheim, CA",
  organization="USENIX",
  year="1990"}

@article{leblanc:debugging,
  where="filed with reprints",
  month=apr,
  pages="471-482",
  number="4",
  author="T. J. LeBlanc and J. M. Mellor-Crummey",
  title="Debugging Parallel Programs with Instant Replay",
  journal="IEEE Transactions On Computers",
  year="1987",
  volume="C-36"}

@article{obagy:operational,
  where="filed with reprints",
  pages="217-239",
  number="4",
  author="Janalee O'Bagy and Kenneth Walker and Ralph E. Griswold",
  title="An Operational Semantics for {Icon}: Implementation of a Procedural Goal-Directed Language",
  journal="Computer Language",
  year="1993",
  volume="18"}

@article{ellis:tools,
  where="filed with reprints",
  pages="873-892",
  author="John R. Ellis and Nathanial Mishkin and Mary-Claire Van Leunen and Steven R. Wood",
  title="{Tools:} An Environment for Time-Shared Computing and Programming",
  journal="Software-Practice and Experience",
  year="1983",
  volume="13"}

@article{cifuentes:decompilation,
  where="filed with reprints",
  month=jul,
  pages="811-829",
  number="7",
  author="Cristina Cifuentes and K. John Gough",
  title="Decompilation of Binary Programs",
  journal="Software---Practice {\&} Experience",
  year="1995",
  volume="25"}

@article{appel:critique,
  journal="Journal of Functional Programming", volume="3", number="4",
  pages="391-430", year="1993",
  where="TR version filed with reprints",
  author="Andrew Appel",
  title="A Critique of Standard ML"
}

@unpublished{north,
  where="filed with reprints",
  month=oct,
  author="Stephen C. North and Eleftherios Koutsofios",
  title="Applications of Graph Visualization",
  note="written at AT&T Bell Laboratories, probably published by now",
  year="1993"}

@inproceedings{sooriamurthi:literate,
  where="filed with reprints",
  pages="1-9",
  keywords="noweb literate programming",
  author="Raja Sooriamurthi",
  title="Literate Engines in Lisp",
  booktitle="Proceedings of the Fifth International Lisp Users and Vendors Conference",
  year="1995"}

@InProceedings{demers:type,
  where="filed with reprints",
      title =        "``{Type}-Completeness'' as a Language Design
                     Principle",
      author =       "Alan J. Demers and James E. Donahue",
      pages =        "234--244",
      booktitle =    popl80,
      address =      "Las Vegas, Nevada",
      year =         "1980",
      month =        jan,
    }

@techreport{leone:deferred,
  where="filed with reprints",
  month=dec,
  author="Mark Leone and Peter Lee",
  title="Deferred Compliation: The Automation of Run-Time Code Generation",
  number="CMU-CS-93-225",
  institution="Carnegie Mellon University",
  year="1993"}

@unpublished{dijkstra:smoothsort,
  where="filed with reprints",
  author="Edsger W. Dijkstra",
  title="Smoothsort, An Alternative for Sorting in Situ",
  note="EWD796a",
  year="1981"}

@article{batory:design,
        author = "Don Batory and Sean O'Malley",
        title = "The Design and Implementation of Hierarchical Software
Systems with Reusable Components",
        journal = tosem,
        volume = 1, number = 4,
        month = oct,
        year = 1992,
        pages = "355--398"
        }

@inproceedings{proebsting:optimizing,
      author =       "Todd A. Proebsting",
      title =        "Optimizing an {ANSI} {C} Interpreter with Superoperators",
      pages =        "322--332",
      booktitle =    popl95,
      address =      "San Francisco, California",
      year =         "1995",
      month =        jan,
    }

@article{hanson:fast,
  author="David R. Hanson",
  title="Fast Allocation and Deallocation of Memory Based on Object Lifetimes",
  journal=SPE,
  volume=20, number=1, month=jan, year=1990, pages="5-12"
}

@manual{4.4bsd-usd,
  address="Sebastopol, CA",
  title="4.4BSD User's Supplementary Documents",
  organization="The USENIX Association",
  publisher="O'Reilly",
  year="1994"}

@inbook{joy:c-shell,
  chapter="4",
  author="William Joy",
  title="An Introduction to the C shell",
  booktitle="4.4BSD User's Supplementary Documents",
  publisher="O'Reilly",
  address="Sebastopol, CA",
  year="1994"}

@article{boehm:ropes,
  where="filed with reprints",
  month=dec,
  pages="1315-1330",
  number="12",
  author="Hans-J. Boehm and Russ Atkinson and Michael Plass",
  title="Ropes: an Alternative to Strings",
  journal="Software---Practice {\&} Experience",
  year="1995",
  volume="25"}

@article{brandis:oberon,
  where="filed with reprints",
  month=dec,
  pages="1331-1366",
  number="12",
  author="Marc Brandis and Regis Crelier and Michael Franz and J. Templ",
  title="The Oberon System Family",
  journal="Software---Practice {\&} Experience",
  year="1995",
  volume="25"}

@article{fraser:analyzing,
  where="filed with reprints",
  month=jun,
  pages="117-121",
  author="Christopher W. Fraser and Eugene W. Myers and Alan L. Wendt",
  title="Analyzing and Compressing Assembly Code",
  journal="Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction" # 
		", {\em in} " # sigplan,
  year="1984",
  volume="19"}

@inproceedings{hoover:generating,
  where="filed with reprints",
  author="Roger Hoover and Kenneth Zadeck",
  title="Generating Machine Specific Optimizing Compilers",
  booktitle=popl96,
  address="St.~Petersburg Beach, FL",
  pages="219-229",
  year="1996"}

@inproceedings{wilson:uniprocessor,
  where="filed with reprints",
  author="Paul R. Wilson",
  title="Uniprocessor Garbage Collection Techniques",
  booktitle="Proceedings of the International Workshop on Memory Management",
  address="St. Malo, France",
  month=sep, year=1992, pages="1-42",
  note="Published as Lecture Notes in Computer Science 637, Springer-Verlag."
}

@inbook{gansner:multi-threaded,
  where="filed with reprints",
  author="Emden R. Gansner and John H. Reppy",
  title="A Multi-threaded Higher-order User Interface Toolkit",
  chapter=4, booktitle="User Interface Software", publisher="Wiley",
  pages="61-80",
  year="1993"}
%%%%  editor="Bass and Dewan", 

@article{brown:supermac,
  where="filed with reprints",
  pages="431-434",
  author="P. J. Brown",
  title="{SUPERMAC}---A Macro Facility that can be Added to Existing Compilers",
  journal="Software---Practice {\&} Experience",
  year="1990",
  volume="10"}

@article{brown:levels,
  where="filed with reprints",
  month=dec,
  pages="1059-1062",
  number="12",
  author="P. J. Brown",
  title="Levels of Language for Portable Software",
  journal="Communications of the ACM",
  year="1972",
  volume="15"}

@article{brown:ml/i,
  where="filed with reprints",
  month=oct,
  pages="618-623",
  number="10",
  author="P. J. Brown",
  title="The ML/I Macro Processor",
  journal="Communications of the ACM",
  year="1967",
  volume="10"}

@article{barber:echonet,
  where="filed with reprints",
  month=sep,
  author="C. Bradford Barber",
  title="Echonet Part 1: A Flexible Programming System",
  keywords="literate programming",
  journal="BYTE",
  pages="356-373",
  year="1983"}

@article{barber:part2,
  where="filed with reprints",
  month=oct,
  author="C. Bradford Barber",
  title="Echonet Part 2: The Compiler",
  journal="BYTE",
  keywords="literate programming",
  pages="384-395",
  year="1983"}

@unpublished{ramsdell:cst,
  where="filed with reprints",
  month="June",
  author="John D. Ramsdell",
  title="CST: C State Transformers",
  note="Draft",
  year="1995"}

@unpublished{hanson:long,
  where="filed with reprints",
  month="1995",
  author="David R. Hanson",
  title="Long Division",
  note="unpublished lecture notes",
  year="1995"}

@article{brinch-hansen:multiple,
  where="filed with reprints",
  month=jun,
  pages="579-601",
  number="6",
  keywords="long division",
  author="Brinch Hansen, Per",
  title="Multiple-length Division Revisited: A Tour of the Minefield",
  journal="Software---Practice {\&} Experience",
  year="1994",
  volume="24"}

@unpublished{hanson:trees,
  where="filed with reprints",
  author="David R. Hanson",
  title="IR Trees",
  note="unpublished lecture notes",
  year="1995"}

@article{boszormenyi:comparison,
  where="filed with reprints",
  pages="15-22",
  author="Laszlo {B{\"o}sz{\"o}rmenyi}",
  title="A Comparison of {Modula-3} and {Oberon-2}",
  journal="Structured Programming",
  year="1993",
  volume="14"}

@article{wirth:what,
  where="filed with reprints",
  month=nov,
  pages="822-823",
  number="11",
  author="Niklaus Wirth",
  title="What Can We Do about the Unnecessary Diversity of Notation for Syntactc Definitions?",
  journal="Communications of the ACM",
  year="1977",
  keywords="EBNF",
  volume="20"}

@article{jeffrey:lists,
  where="filed with reprints",
  month=jun,
  pages="237-245",
  number="2",
  author="Alan Jeffrey",
  title="Lists in {\TeX's} Mouth",
  journal="TUGboat",
  year="1990",
  annote="Cool article showing how to do list processing in the lambda-calculus style,
          all using {\TeX} macros",
  volume="11"}

@unpublished{feldman:maturity,
  where="filed with reprints",
  author="Stuart I. Feldman",
  title="Technological Maturity Scale",
  year=1995,
  }

@article{levy:literate,
  where="filed with reprints",
  pages="67-70",
  month=jan,
  author="Silvio Levy",
  title="Literate Programming and Cweb",
  journal="Computer Language",
  year="1993"}

@article{pausch:lessons,
  where="filed with reprints",
  month=oct,
  pages="320-344",
  number="4",
  author="Randy Pausch and Matthew Conway and Robert Deline",
  title="Lessons Learned from {SUIT}, the Simple User Interface Toolkit",
  journal="ACM Transactions on Information Systems",
  year="1992",
  volume="10"}

@inproceedings{siddall:highly,
  where="filed with reprints",
  month=nov,
  author="Ernest Siddall",
  title="Highly Reliable Systems -- Hardwired or Computerized",
  booktitle="Second IFAC Workshop on Safety and Reliability in Emerging Control Technologies",
  year="1995"}

@techreport{siddall:computer,
  where="filed with reprints",
  month=jun,
  number="33",
  author="Ernest Siddall",
  title="Computer Programming in English",
  journal="none",
  year="1993",
  institution="Institute for Risk"}

@article{land:retinex,
  where="filed with reprints",
  pages="108-128",
  author="Edwin H. Land",
  title="The Retinex Theory of Color Vision",
  journal="Scientific American",
  year="unknown",
}

@techreport{danskin:compression,
  where="filed with reprints",
  month=jan,
  number="CS-TR-441-94",
  author="John Danskin and Pat Hanrahan",
  title="Compression Performance of the Xremote Protocol",
  year="1994",
  institution="Princeton University Department of Computer Science",
}

@techreport{danskin:profiling,
  where="filed with reprints",
  month=jan,
  number="CS-TR-442-94",
  author="John Danskin and Pat Hanrahan",
  title="Profiling the {X} Protocol",
  institution="Princeton University Department of Computer Science",
  year="1994",
}

@unpublished{strichartz:fourier,
  where="filed with reprints",
  author="Robert S. Strichartz",
  title="Fourier Transforms and Distribution Theory: A Survival Kit",
  year="1983", note="Cornell University lecture notes",
}

@article{miller:file,
  where="filed with reprints",
  month=nov,
  pages="1025-1040",
  number="11",
  author="Webb Miller and Eugene W. Myers",
  title="A File Comparison Program",
  journal="Software-Practice and Experience",
  year="1985",
  volume="15"}

@inproceedings{wirth:thirty,
  where="filed with reprints",
  month=oct,
  address="Paderborn Germany",
  author="Niklaus Wirth",
  title="Thirty Years of Programming Languages and Compilers",
  booktitle="International Workshop on Compiler Construction (CC92)",
  year="1992"}

@article{myers:difference,
  where="filed with reprints",
  month=jun,
  pages="251-266",
  author="Eugene W. Myers",
  title="An {$O(ND)$} Difference Algorithm and its Variations",
  journal="Algorithmica",
  year="1985",
  volume="1"}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

@inproceedings{crawford:semantic,
  where="filed with reprints",
  month=apr,
  pages="252-261",
  author="Richard H. Crawford and Ronald A. Olsson and W. Wilson Ho and Christopher E. Wee",
  title="Semantic Issues in the Design of Languages for Debugging",
  booktitle="Proceedings of the 1992 International Conference on Computer Languages",
  year="1992"}

@misc{pike:notes,
  where="filed with reprints",
  author="Rob Pike",
  title="Notes on Programming in C",
  note="Obtained from the author.",
  }

@techreport{pike:newsqueak,
  author="Rob Pike",
  title = "The implementation of {Newsqueak}"
}

@techreport{pike:squeak,
  author="Luca Cardelli and Rob Pike",
  title = "Squeak: a language for communicating with mice"
}


@techreport{baker:program,
  where="filed with reprints",
  month=dec,
  number="75-1271-12",
  author="Brenda S. Baker",
  title="Struct -- A Program which Structures Fortran",
  year="1975"}

@techreport{baker:automatic,
  where="filed with reprints",
  author="Brenda S. Baker",
  title="Automatic Structuring of Programs: Properly Structured Programs and Their Properties",
  year="1979"}

@article{oulsnam:unravelling,
  where="filed with reprints",
  pages="379-387",
  number="3",
  author="G. Oulsnam",
  title="Unravelling Unstructured Programs",
  journal="The Computer Journal",
  year="1982",
  volume="25"}

@article{gabriel:lisp,
  where="filed with reprints",
      author =       "Richard P. Gabriel",
      title =        "{Lisp}: Good News, Bad News, How to Win Big",
      journal =      "AI Expert",
      pages =        "30--39",
      volume =       "6",
      number =       "6",
      month =        jun,
      year =         "1991",
    }

@article{cheriton:thoth,
  where="filed with reprints",
  month=feb,
  pages="105-115",
  number="2",
  author="David R. Cheriton and Michael A. Malcolm and Lawrence S. Melon and Gary R. Sager",
  title="Thoth, a Portable Real-Time Operating System",
  journal="Communications of the ACM",
  year="1979",
  volume="22"}

@inproceedings{engler:exokernel,
  month=dec,
  where="filed with reprints",
  author="Dawson R. Engler and M. Frans Kaashoek and James W. O'Toole Jr",
  title="Exokernel: An Operating System Architecture for Application-Level Resource Management",
  booktitle=sosp95,
  annote="way cool.",
  year="1995"}

@techreport{thacker:alto,
  month=aug,
  address="3333 Coyote Hill Rd, Palo Alto, CA 94304",
  where="shelved with other Xerox TRs next to SRC TRs",
  number="CSL-79-11",
  author="Chuck P. Thacker and Ed M. McCreight and Butler W. Lampson and R. F. Sproull and D. R. Boggs",
  title="Alto: A Perconal Computer",
  year="1979",
  institution="Xerox Palo Alto Research Center"}

@incollection{gardner:matchbox,
  address="New York",
  where="filed with reprints",
  chapter="8",
  keywords="hexapawn games learning",
  pages="90-102",
  author="Martin Gardner",
  title="A Matchbox Game-Learning Machine",
  publisher="Simon and Schuster",
  booktitle="The Unexpected Hanging",
  annote="The original hexpawn article.",
  year="1969"}

@incollection{appel:gc-survey,
  address="Cambridge, MA",
  pages="89-100",
  author="Andrew W. Appel",
  title="Garbage Collection",
  publisher="MIT Press",
  booktitle="Topics in Advanced Language Implementation",
  editor="Peter Lee",
  year="1991"}

@article{appel:garbage,
  month=jun,
  pages="275-279",
  number="4",
  author="Andrew W. Appel",
  title="Garbage Collection can be Faster than Stack Allocation",
  journal="Information Processing Letters",
  year="1987",
  volume="25"}

@techreport{parnas:functional,
  month=sep,
  address="Kingston, Ontario K7L 3N6",
  where="field with reprints",
  number="90-287",
  author="David Lorge Parnas and Jan Madey",
  title="Functional Documentation for Computer Systems Engineering",
  annote="may relate to literate programming",
  year="1990",
  institution="Queen's University"}

@phdthesis{brandis:optimizing,
  author="Marc Michael Brandis",
  title="Optimizing Compilers for Structured Programming Languages",
  school="Swiss Federal Institute of Technology (ETH) Zurich",
  annote="Seemed pretty lame to me.
``Structured'' means no exit, no return.  It's a subset of Oberon-2.
I didn't get any insights I could use.  Lots and lots of generalities
about optimizers.  So what.
\par",
  year="1995"}

@inproceedings{blaze:cryptographic,
  month=nov,
  address="Fairfax, VA",
  where="filed with reprints",
  author="Matt Blaze",
  title="A Cryptographic File System for {Unix}",
  booktitle="First ACM Conference on Communications and Computing Security",
  year="1993"}

@article{boehm:spiral,
  month=may,
  pages="61-72",
  where="filed with reprints",
  author="Barry W. Boehm",
  title="A Spiral Model of Software Development and Enhancement",
  keywords="waterfall software process",
  annote="Recommended by M. Young.
``Risk-based'' alternative to waterfall.  I didn't find it that exciting.",
  journal="IEEE Computer",
  year="1988"}

@article{zobel:adding,
  month=aug,
  pages="891-903",
  where="reprints",
  number="8",
  author="Justin Zobel and Alistair Moffat",
  title="Adding Compression to a Full-Text Retrieval System",
  keywords="data compression; text compression; Huffman coding; word-based model",
  annote="Full-text retrieval of WSJ
database using a `semi-static' word-based compression model.
Space is 30\% of original, and with canonical Huffman coding decompression is fast.
Can actually make query processing faster!",
  journal=spe,
  year="1995",
  volume="25"}

@unpublished{bailey:reusable,
  month=feb,
  author="Mark W. Bailey and Jack W. Davidson",
  title="Reusable Application-Dependent Machine Descriptions",
  note="Presented at WCSSS'96.",
  year="1996"}

@techreport{beeler:hakmem,
  month=feb,
  address="Cambridge, MA",
  where="reprints",
  number="239",
  author="M. Beeler and R. W. Gosper and R. Schroeppel",
  type="AI Memo",
  title="{HAKMEM}",
  year="1972",
  institution="MIT AI Lab"}

@unpublished{appel:quick,
  where="filed with reprints",
  author="Andrew W. Appel",
  title="A Quick and Dirty Introduction to Digital Circuits",
  note="Handwritten MS obtained from the author",
  year="1989"}

@techreport{larus:using,
  month=aug,
  address="Madison, WI",
  where="reprints",
  number="1174",
  author="James R. Larus and Satish Chandra",
  title="Using Tracing and Dynamic Slicing to Tune Compilers",
  year="1993",
  institution="University of Wisconsin Computer Sciences Department"}

@unpublished{cardelli:program,
where="with reprints",
author="Luca Cardelli",
title="Program fragments, linking, and modularization",
institution="Digital Equipment Corporation Systems Research Center",
month=jun, year="1994"}

@article{cattell:automatic,
  where="filed with reprints",
  title="Automatic Derivation of Code Generators from Machine Descriptions",
  author="Richard G. G. Cattell",
  journal=toplas,
  year=1980,
  month=apr,
  volume=2,
  number=2,
  pages="173--190"
}
@inproceedings{vo:incl,
  month=jun,
  address="San Antonio, TX",
  pages="199-208",
  where="reprints",
  author="Kiem-Phong Vo and Yih-Farn Chen",
  title="{Incl}: A Tool to Analyze Include Files",
  booktitle="Proceedings of the 1992 Summer USENIX Technical Conference",
  year="1992"}

@misc{lipton:notech,
  howpublished="Manuscript obtained from the authors.",
  author="Richard J. Lipton and Robert Sedgewick",
  title="{Notech} Typesetting Without Formatting",
  year="1990"}

@article{kistler:disconnected,
  month=feb,
  pages="3-25",
  where="reprints",
  number="1",
  author="James J. Kistler and Mahadev Satyanarayanan",
  title="Disconnected Operation in the {Coda} File System",
  journal=tocs,
  year="1992",
  volume="10"}

@article{satyanarayanan:scalable,
  month=may,
  pages="9-21",
  where="reprints",
  author="Mahadev Satyanarayanan",
  title="Scalable, Secure, and Highly Available Distributed File Access",
  keywords="Coda file system",
  journal="IEEE Computer",
  year="1990"}

@article{satyanarayanan:influence,
  month=jan,
  pages="1-8",
  where="reprints",
  number="1",
  author="Mahadev Satyanarayanan",
  title="The Influence of Scale on Distributed File System Design",
  keywords="Coda",
  journal=ieeetose,
  year="1992",
  volume="18"}

@article{satyanarayanan:coda,
  month=apr,
  pages="447-459",
  where="reprints",
  number="4",
  author="Mahadev Satyanarayanan and James J. Kistler and Puneet Kumar and Maria E. Okasaki and Ellen H. Siegel and David C. Steere",
  title="{Coda}: A Highly Available File System for a Distributed Workstation Environment",
  journal="IEEE Transactions on Computers",
  year="1990",
  volume="39"}

@InProceedings{ganzinger:transforming,
  where="filed with reprints",
      author =       "Harald Ganzinger",
      title =        "Transforming Denotational Semantics into Practical
                     Attribute Grammars",
      booktitle =    "Semantics-Directed Compiler Generation",
      booksubtitle = "Proceedings of a Workshop",
      place =        "Aarhus, Denmark",
      dates =        "January 14--18",
      editor =       "Neil D. Jones",
      series =       "Lecture Notes in Computer Science",
      volume =       "94",
      publisher =    "Springer-Verlag",
      address =      "Berlin",
      year =         "1980",
      pages =        "1--69",
    }
@Article{cardelli:basic,
  where="filed with reprints",
  annote="pragmatics of typechecking, including implementation in old ML 
	using unification by changing mutable pointers",
      author =       "L. Cardelli",
      title =        "Basic Polymorphic Typechecking",
      journal =      scp,
      volume =       "8",
      number =       "2",
      pages =        "147--172",
      year =         "1987",
    }

@article{boehm:mostly,
        author          = "Hans-Juergen Boehm and Alan J. Demers and Scott Shenker",
        title           = "Mostly Parallel Garbage Collection",
        journal         = pldi91 # ", {\em in} " # sigplan,
        volume          = 26,
        number          = 6,
        pages           = "157--164",
        address         = "Toronto, Ontario, Canada",
        month           = jun,
        year            = 1991}

@inproceedings{moffat:empirical,
  month=apr,
  address="Los Alamitos, CA",
  pages="108-117",
  where="reprints",
  author="Alistair Moffat and Neil Sharman and Ian H. Witten and Timothy C. Bell",
  title="An Empirical Evaluation of Coding Methods for Multi-Symbol Alphabets",
  publisher="IEEE Computer Society Press",
  booktitle="Proceedings of the 1993 Data Compression Conference",
  annote="cool paper, recommended by John Danskin",
  editor="James A. Storer and Martin Cohn",
  year="1993"}

@article{knuth:empirical,
  author="Donald E. Knuth",
  title="An Empirical Study of {FORTRAN} Programs",
  journal=SPE,
  volume=1, number=2, month=apr, year=1971, pages="105-133"
}

@article{mcdonald:fsh,
  month=oct,
  pages="685-700",
  where="reprints",
  number="10",
  author="Chris S. McDonald",
  title="{\emph{fsh}}---A Functional Unix Command Interpreter",
  journal=spe,
  year="1987",
  volume="17"}

@article{nelson:simplification,
  month=oct,
  pages="245-257",
  where="reprints",
  number="2",
  author="Greg Nelson and Derek C. Oppen",
  title="Simplification by Cooperating Decision Procedures",
  journal=toplas,
  year="1979",
  volume="1"}

@inproceedings{nelson:simplifier,
  pages="141-150",
  where="reprints",
  author="Greg Nelson and Derek C. Oppen",
  title="A Simplifier Based on Efficient Decision Algorithms",
  booktitle=popl78,
  year="1978"}

@article{fraser:generalized,
  author="Christopher W. Fraser",
  title="A Generalized Text Editor",
  journal=CACM,
  volume=23, number=3, month=mar, year=1980, pages="154-158"
}

@inproceedings{agrawal:fault,
  author =      "Hiralal Agrawal and
                Joseph R. Horgan and
                Saul London and
                W. Eric Wong",
  title =       "Fault Localization Using Execution Slices and Dataflow Tests",
  booktitle =   "Proceedings of the Sixth International Symposium on Software
                Reliability Engineering (ISSRE'95)",
  month =       oct,
  year =        1995,
  pages =       "143--151",
  publisher =   "IEEE Computer Society Press"
}

@inproceedings{proebsting:one-pass,
  month=apr,
  where="reprints",
  author="Todd A. Proebsting and Benjamin R. Whaley",
  title="One-Pass, Optimal Tree Parsing - With Or Without Trees",
  booktitle="CC~'96",
  year="1996"}

@inproceedings{fauth:describing,
  month=mar,
  where="filed with reprints",
  pages="503--507",		  
  author="Andreas Fauth and Johan Van Praet and Markus Freericks",
  title="Describing Instruction Set Processors using {nML}",
  booktitle="The European Design and Test Conference",
  year="1995"}

@inproceedings{cook:functional,
  month=may,
  where="mff",
  author="Todd Cook and Ed Harcourt",
  title="A Functional Specification Language for Instruction Set Architectures",
  pages="11--19",
  booktitle="Proceedings of the 1994 International Conference on
		  Computer Languages",
  year="1994"}

@unpublished{cook:instruction,
  where="with reprints",
  author="Todd Cook and Ed Harcourt",
  title="Instruction Set Architecture Specification",
  note="Submitted to ACM TOCS",
  year="1995"}

@book{sites:alpha,
  where="MH library",
  author="Richard Sites and Richard Witek",
  title="Alpha {AXP} Architecture Reference Manual",
  edition="Second",
  publisher="Digital Press",
  year="1995"}

		  
		  
@incollection{cardelli:typeful,
  month=feb,
  author="Luca Cardelli",
  series="IFIP State of the Art Reports Series",
  title="Typeful Programming",
  note="Also appeared as DEC SRC Research Report 45",
  publisher="Springer-Verlag",
  booktitle="Formal Description of Programming Concepts",
  annote="Long description
of Quest, but introductory material is interesting and general.",
  editor="E. J. Neuhold and M. Paul",
  year="1989"}

@unpublished{braun:retargetability,
  month=may,
  author="Owen C. Braun",
  title="Retargetability Issues in Worst-Case Timing Analysis of Embedded Systems",
  note="Bachelor's thesis, Dept of Computer Science, Princeton University",
  year="1996"}

@book{barbacci:design,
  address="New York, NY",
  where="Bell Labs library",
  author="Mario R. Barbacci and Daniel P. Siewiorek",
  title="The Design and Analysis of Instruction Set Processors",
  keywords="ISPS machine description",
  publisher="McGraw-Hill",
  year="1982"}

@book{fischer:crafting,
        author          = "Charles N. Fischer and LeBlanc, Jr., Richard J.",
        title       = "Crafting a Compiler",
        publisher       = "Benjamin/Cummings",
        address         = "Menlo Park, CA",
        year            = 1988}

@article{burke:practical,
  where="filed with reprints",
title="A Practical Method for {LR} and {LL} Syntactic Error
Diagnosis and Recovery",
author="Michael G. Burke and Gerald A. Fisher",
journal="ACM Transactions on Programming Languages and Systems",
volume ="9", number="2", month="April", year="1987",
pages="164--167"}


@inproceedings{pelegri-llopart:optimal,
        author          = "Eduardo Pelegrí-Llopart and Susan L. Graham",
        title           = "Optimal code generation for expression trees: An application of {BURS} theory",
        booktitle       = popl88,
        pages           = "294--308",
        address         = "San Diego, CA",
        month           = jan,
        year            = 1988}

@article{fraser:language,
  author="Christopher W. Fraser",
  title="A Language for Writing Code Generators",
  journal=pldi89 # insigplan,
  volume=24, number=7, month=jul, year=1989, pages="238-245"
}

@article{aho:code,
  title="Code Generation Using Tree Matching and Dynamic Programming",
  author="Alfred V. Aho and Mahadevan Ganapathi and Steven W. K. Tjiang",
  pages="491--516",
  journal=toplas,
  year=1989,
  month=oct,
  volume=11,
  number=4
}

@article{emmelmann:beg,
author={Helmut Emmelmann and Friedrich-Wilhelm Schr{\"o}er and Rudolf Landwehr},
title="{BEG} --- A Generator for Efficient Back Ends",
journal=pldi89 # insigplan,
volume=24, number=7, month=jul, year=1989, pages="227-237"
}

@article{proebsting:burs,
author="Todd A. Proebsting",
title="Simple and Efficient {BURS} Table Generation",
journal=pldi92 # insigplan,
pages="331-340",
volume=27, number=6, month=jun, year=1992
}

@article{lee:optimizing,
  pages="137-148",
  month=may,
  number="5",
  author="Peter Lee and Mark Leone",
  title="Optimizing {ML} with Run-Time Code Generation",
  keywords="fabius",
  journal=pldi96 # ", {\em in} " # sigplan,
  year="1996",
  volume="31"}

@InProceedings{leone:declarative,
  author =       "Mark Leone and Peter Lee",
  title =        "{A} Declarative Approach to Run-Time Code Generation",
  year =         "1996",
  url =          "http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mleone/papers/declarative-rtcg.ps",
  keywords =     "run-time code generation, dynamic optimization,
                 specialization, partial evaluation",
  month =        feb,
  scope =        "implemen",
  booktitle =    "Workshop on Compiler Support for System Software
                 (WCSSS)",
}

@article{auslander:fast,
  month=may,
  pages="149-159",
  where=".",
  number="5",
  author="Joel Auslander and Matthai Philipose and Craig Chambers and Susan Eggers and Brian Bershad",
  title="Fast, Effective Dynamic Compilation",
  keywords="run-time code generation Modula-3",
  journal=pldi96 # ", {\em in} " # sigplan,
  year="1996",
  volume="31"}

@article{engler:vcode,
  month=may,
  pages="160-170",
  number="5",
  author="Dawson R. Engler",
  title="{VCODE}: a Retargetable, Extensible, Very Fast Dynamic Code Generation System",
  journal=pldi96 # ", {\em in} " # sigplan,
  year="1996",
  volume="31"}

@article{chandra:teapot,
  month=may,
  pages="237-248",
  number="5",
  author="Satish Chandra and Brad Richards and Jim Larus",
  title="{Teapot}: Language Support for Writing Memory Coherence Protocols",
  journal=pldi96 # ", {\em in} " # sigplan,
  year="1996",
  volume="31"}

@inproceedings{bailey:formal,
  month=jan,
  pages="298-310",
  author="Mark W. Bailey and Jack W. Davidson",
  title="A formal model and specification language for procedure calling conventions",
  address="San Francisco, CA",
  booktitle=popl95,
  year="1995"}

@inproceedings{orr:omos,
  month=sep,
  address="Paris, France",
  where="http://www.cs.utah.edu/projects/flux/papers.html",
  author="Douglas B. Orr and Robert W. Mecklenburg",
  title="{OMOS} --- An Object Server for Program Execution",
  note="Also appears as University of Utah Computer Science Department Technical Report UUCS-92-033",
  booktitle="Proc. 2nd International Workshop on Object Orientation in Operating Systems",
  year="1992"}

@inproceedings{orr:fast,
  where="with reprints",
  url="http://www.cs.utah.edu/projects/flux/papers.html",
  author="Douglas B. Orr and John Bonn and Jay Lepreau and Robert Mecklenburg",
  title="Fast and Flexible Shared Libraries",
  booktitle="Proceedings of the Summer 1993 Usenix Conference",
  pages="237-251", address="Cincinnati, OH",
  year="1993"}

@unpublished{chamberlain:bfd,
  month=apr,
  author="Steve Chamberlain",
  title="{LIB} {BFD}, the Binary File Descriptor Library",
  note="Distributed with GNU {\tt binutils}",
  year="1991"}


@phdthesis{davidson:simplifying,
  address="Tucson, AZ",
  author="Jack W. Davidson",
  title="Simplifying Code Generation Through Peephole Optimization",
  school="Dept.\ of Computer Science, University of Arizona",
  year="1981"}

@article{burger:printing,
  month=may,
  pages="108-116",
  number="5",
  author="Robert G. Burger and R. Kent Dybvig",
  title="Printing Floating-Point Numbers Quickly and Accurately,",
  journal=pldi96 # ", {\em in} " # sigplan,
  year="1996",
  volume="31"}

@article{adl-tabatabai:efficient,
  month=may,
  pages="127-136",
  number="5",
  author="Ali-Reza Adl-Tabatabai and Geoff Langdale and Steven Lucco and Robert Wahbe",
  title="Efficient and Language-Independent Mobile Programs",
  journal=pldi96 # ", {\em in} " # sigplan,
  year="1996",
  volume="31"}

@article{andrews:migrating,
        author          = "Kristy Andrews and Duane Sand",
        title           = "Migrating a {CISC} computer family onto {RISC} via object code translation",
        journal       = asplosv,
        volume          = 27,
        number          = 9,
        pages           = "213--222",
        address         = "Boston, MA",
        month           = oct,
        year            = 1992}
@inproceedings{cifuentes:dynamic,
  month=nov,
  address="Monterey, CA",
  author="Cristina Cifuentes and V. Malhotra",
  title="Binary Translation: Static, Dynamic, Retargetable?",
  note="To appear.",
  publisher="IEEE Computer Society",
  booktitle="International Conference on Software Maintenance",
  year="1996"}

@inproceedings{cogswell:timing,
 author="Cogswell, Bryce and Segall, Zary", year=1995,
 title="Timing insensitive binary-to-binary migration across multiprocessor
  architectures",
 booktitle="Proceedings of the Third Workshop on Parallel and Distributed
  Real-Time Systems",
 pages="193--194", 
  address="Santa Barbara, CA", 
  publisher="{IEEE} Computer Society Press"
}

@inproceedings{glanville:compiler,
        author          = "R. Steven Glanville and Susan L. Graham",
        title           = "A new method for compiler code generation",
        booktitle       = popl78,
        pages           = "231--240",
        address         = "Tucson, AZ",
        month           = jan,
        year            = 1978}

@unpublished{schnarr:instruction:old,
  month=feb,
  author="Eric Schnarr and James R. Larus",
  title="Instruction Scheduling and Executable Editing",
  note="Presented at {\em Workshop on Compiler Support for System Software}, Tucson, AZ",
  year="1996"}

@article{kessler:discovering,
  month=jul,
  pages="249-254",
  where="???",
  number="7",
  author="Peter B. Kessler",
  title="Discovering Machine-Specific Code Improvements",
  annote="have not read!",
  journal=sigplan86 # ", {\em in} " # sigplan,
  year="1986",
  volume="21"}

@manual{stallman:gcc,
  month=feb,
  author="Richard M. Stallman",
  title="Using and Porting GNU CC (Version 2.0)",
  organization="Free Software Foundation",
  year="1992"}

@techreport{jagannathan:research,
  month=mar,
  address="4 Independence Way, Princeton, NJ",
  where="altavista",
  number="95-1",
  author="Suresh Jagannathan and James Philbin and Richard Kelsey and Henry Cejtin and Mark Reinhold and Jan Edler and Andrew Wright",
  title="A Research Prospectus for Advanced Software Systems",
  year="1995",
  institution="NEC Research Institute"}

@inproceedings{korn:extensible,
  month=oct,
  address="Santa Fe, NM",
  pages="129-146",
  where="in proceedings",
  author="David G. Korn",
  title="{\tt ksh} --- An Extensible High Level Language",
  publisher="USENIX Assocation",
  booktitle=vhll,
  year="1994"}

@inproceedings{knight:undergraduate,
  month=mar,
  author="John C. Knight and Jane C. Prey and William A. Wulf",
  title="Undergraduate Computer Science Education: A New Curriculum Philosophy and Overview",
  booktitle="25th ACM SIGCSE Technical Symposium On Computer Science Education",
  year="1994"}

@inproceedings{bershad:extensibility,
 title="Extensibility, Safety and Performance in the {SPIN} Operating System",
 author="Brian Bershad and Stefan Savage and Przemyslaw Pardyak and Emin Gun Sirer and David Becker and Marc Fiuczynski and Craig Chambers and Susan Eggers", 
  booktitle="Proceedings of the 15th ACM Symposium on Operating System Principles", 
  address="Copper Mountain, CO",
  pages="267--284",
  month=dec, year="1995"
}


@INPROCEEDINGS{cifuentes:structuring,
  author = "Cristina Cifuentes",
  title = "Structuring Decompiled Graphs",
  booktitle = "Proceedings of the International Conference on Compiler
        Construction",
  editor = "T. {Gyim\'{o}thy}",
  series = "Lecture Notes in Computer Science 1060",
  pages = "91--105",
  month = apr,
  year = 1996,
  address = {Link{\"o}ping, Sweden},
  publisher = "Springer Verlag",
  acceptance = "23 papers accepted out of 57 paper (40\% acceptance rate)"
}

@ARTICLE{cifuentes:interprocedural,
  author = "Cristina Cifuentes",
  title = "Interprocedural Dataflow Decompilation",
  journal = "Journal of Programming Languages",
  year = 1996,
  volume = 4,
  pages = "77--99"
}

@INPROCEEDINGS{cifuentes:environment,
  author = "Cristina Cifuentes",
  title = "An Environment for the Reverse Engineering of Executable Programs",
  booktitle = "Proceedings of the Asia Pacific Software Engineering Conference"
,
  pages = "410--419",
  month = dec,
  year = 1995,
  address = "Brisbane, Australia",
  publisher = "{IEEE} Computer Society Press",
  notes = "50 out of 160 papers were accepted (31\% acceptance rate)"
}

@PHDTHESIS{cifuentes:reverse,
   author = "Cristina Cifuentes",
   title = "Reverse Compilation Techniques",
   school = "Queensland University of Technology",
   type = "{PhD} Dissertation",
   address = "School of Computing Science",
   month = jul,
   year = 1994
}


@book{goldberg:smalltalk,
Author = "Adele Goldberg and David Robson",
Title = "Smalltalk-80:  The Language and Its Implementation",
publisher = "Addison-Wesley",
Address = "Reading, MA",
Year = 1983
}
@article{sheldon:future,
  month=feb,
  author="Kenneth Sheldon and Owen Linderholm and Trevor Marshall",
  title="The Future of Personal Computing?",
  journal="BYTE",
  year="1992"}

@article{bergh:hp3000,
  month=dec,
  author="Arndt Bergh and Keith Keilman and Daniel Magenheimer and James Miller",
  title="{HP3000} Emulation on {HP} {Precision} {Architecture} Computers",
  journal="Hewlett-Packward Journal",
  year="1987"}

@article{may:mimic,
  pages="1--13", volume=22, number=7,
  month=jun,
  where="with reprints",
  author="Cathy May",
  title="{MIMIC}: A Fast {System/370} Simulator",
  journal=iit87 # ", {\em in} " # sigplan,
  year="1987"}

@misc{digital:freeport,
  year=1995,
  author="{Digital Equipment Corporation}", 
  key="Digital",
  howpublished="URL {\tt http://www.nova­link.com/free­port-ex­press}",
  title="Freeport Express",
  note="Freeport Express is Digital's tool for translating SPARC binaries to Alpha binaries."}

@article{appel:axiomatic,
  title="Axiomatic Bootstrapping: A guide for compiler hackers",
  author="Andrew W. Appel",
  journal=toplas, volume="16", number="6", pages="1699-1718", month=nov,
  year="1994"
}


@inproceedings{hughes:pretty-printing,
  where="filed with reprints",
        AUTHOR = {John Hughes},
        TITLE = {{The Design of a Pretty-printing Library}},
        BOOKTITLE = {{Advanced Functional Programming}},
        EDITOR = {J. Jeuring and E. Meijer},
        YEAR = {1995},
        pages = "53-96",
        PUBLISHER = {Springer Verlag, LNCS 925},
}

@article{fleming:lie,
      author =       "Philip J. Fleming and John J. Wallace",
      title =        "How not to lie with statistics: the correct way to
                     summarize benchmark results",
      journal =      cacm,
      volume =       "29",
      number =       "3",
      pages =        "218--221",
      month =        mar,
      year =         "1986",
      cr =           "8701-0015",
      keywords =     "benchmark",
   where="with reprints",
      sjb =          "a ``must read'' if you are presenting benchmark
                     results",
    }
@article{dean:vortex,
  month=oct,
  address="San Jose, CA",
  author="Jeffrey Dean and Greg DeFouw and David Grove and Vassily Litvinov and Craig Chambers",
  title="{Vortex}: An Optimizing Compiler for Object-Oriented Languages",
  journal="OOPSLA~'96 Conference Proceedings" # insigplan,
  volume=31, number=10, pages="83-100",
  year="1996"}

@article{sullivan:reconciling,
  month=jul,
  pages="229-268",
  where="filed with reprints",
  number="3",
  author="Kevin J. Sullivan and David Notkin",
  title="Reconciling Environment Integration and Software Evolution",
  keywords="mediators",
  annote="Nice paper introducing
mediators.  Well chosen toy examples motivate the problem and explain
the solution.  Very well written.  No rules of thumb for designing
abstract behavior types to support mediators.",
  journal=tosem,
  year="1992",
  volume="1"}


@article{cordy:code,
        author          = "James R. Cordy and Richard C. Holt",
  where="filed with reprints",
        title           = "Code generation using an orthogonal model",
        journal         = SPE,
        volume          = 20,
        number          = 3,
        pages           = "301--320",
        month           = mar,
        year            = 1990}

@article{ganapathi:retargetable,
  where="filed with reprints",
author="Mahadevan Ganapathi and Charles N. Fischer and John L. Hennessy",
title="Retargetable Compiler Code Generation",
journal=COMPSUR,
volume=14, number=3, month=dec, year=1983, pages="573-592"
}
@unpublished{proebsting:fast,
  author="Todd A. Proebsting and Scott A. Watterson",
  title="Fast Recursive Descent Parsing",
  note="Reviewed for SPE.",
  annote="Mildly interesting, but an MPU.",
  year="1996"}

@article{morel:global,
        author          = "E. Morel and C. Renvoise",
        title           = "Global optimization by suppression of partial redundancies",
        journal         = CACM,
        volume          = 22,
        number          = 2,
        pages           = "96--103",
  where="filed with reprints",
        month           = feb,
        year            = 1979}

@inproceedings{pratt:distributed,
  month=mar,
  address="Chapel Hill, NC",
  pages="316-330",
  where="with reprints",
  author="Gill A. Pratt and John Nguyen",
  title="Distributed Synchronous Clocking",
  keywords="clock skew",
  booktitle="Proceedings of the Sixteenth Conference on Advanced Research in VLSI",
  annote="Strategy for attacking clock skew---from
Steve Ward",
  year="1995"}

@unpublished{benitez:target,
  author="Manuel E. Benitez and Jack W. Davidson",
  title="Target-specific Global Code Improvement: Principles and Applications",
  note="Unpublished MS available from Professor Davidson.",
  annote="Advocacy for vpo.
Contains a pretty good overview of vpo's structure.",
  year="1995?"}

@techreport{orr:program,
  month=mar,
  address="Salt Lake City, UT",
  where="with reprints",
  number="UUCS-95-016",
  author="Douglas B. Orr and Jay Lepreau and Jeffrey Law",
  title="Program Specialization Using the {OMOS} System",
  keywords="linking loading modules",
  note="Should check and see if this has made it as a conference paper.",
  year="1995",
  institution="Dept of Computer Science, University of Utah"}

@article{presser:linkers,
  author="Leon Presser and John R. White",
  where="filed with reprints",
  title="Linkers and Loaders",
  journal=COMPSUR, volume=4, number=3, pages={149--167}, month=sep, year=1972
}
@inproceedings{ball:efficient,
  month=dec,
  address="Paris, France",
  where="filed with reprints",
  author="Thomas Ball  and James R. Larus",
  title="Efficient Path Profiling",
  booktitle="Proceedings of {MICRO-29}",
  annote="Cool algorithm, a bit heavy,
involves assigning integer states to paths.",
  year="1996"}

@article{mckenzie:error,
  title="Error Repair in Shift-Reduce Parsers",
  journal=toplas, volume=17, number=4, month=jul, year=1995, pages="672-689",
  author="Bruce J. McKenzie and Corey Yeatman and Lorraine {De~Vere}"
}
@article{welsh:implementing,
  month=may,
  pages="18-24",
  where="with reprints",
  author="Matt Welsh",
  title="Implementing Loadable Kernel Modules for {Linux}",
  journal="Dr.~Dobb's Journal",
  year="1995"}

@article{proebsting:goal,
  month=jun,
  pages="???",
  where="with reprints",
  number="6?",
  author="Todd A. Proebsting",
  title="Simple Translation of Goal-Directed Evaluation",
  keywords="Icon Byrd Box Prolog",
  note="To appear???",
  annote="Uses attribute grammars
to generated code for goal-directed evaluation.  Quite pretty.",
  journal=pldi97 # insigplan,
  year="1997",
  volume="32"}

@article{collberg:reverse,
  month="???",
  pages=jun,
  where="with reprints",
  number="6?",
  author="Christian S. Collberg",
  title="Reverse Interpretation $+$ Mutation Analysis $=$ Automatic Retargeting",
  note="to appear",
  journal=pldi97 # insigplan,
  year="1997",
  volume="32"}

@article{kahn:drawings,
  month=aug,
  pages="49-59",
  where="in back issues",
  number="8",
  author="Ken Kahn",
  title="Drawings on Napkins, Video-Game Animation, and Other Ways to Program Computers",
  keywords="ToonTalk Pictorial Janus visual programming parc",
  annote="Cool article focusing on ToonTalk, the animated follow-on to Pictorial Janus.  Cool cool.",
  journal=cacm,
  year="1996",
  volume="39"}

@unpublished{davidson:cvm,
  author="Jack W. Davidson",
  title="The {C} {Virtual} {Machine} Instruction Set Definition",
  note="Filed with reprints."}



@phdthesis{morrisett:compiling,
  month=dec,
  author="Greg Morrisett",
  title="Compiling with Types",
  note="Published as technical report CMU--CS--95--226",
  school="Carnegie Mellon",
  annote="Great thesis.
Well written, cool ideas.
A must read for people interested in the practical application of type systems.",
  year="1995"}

@incollection{horning:what,
  address="New York",
  chapter="5.D",
  pages="525-548",
  author="James J. Horning",
  title="What the Compiler Should Tell the User",
  note="Originally published as LNCS Vol.~21",
  publisher="Springer-Verlag",
  booktitle="Compiler Construction: An Advanced Course",
  editor=" F. L. Bauer and J. Eickel",
  year="1976"}

@incollection{gries:error,
  address="New York",
  chapter="6.C",
  pages="627-638",
  author="David Gries",
  title="Error Recovery and Correction --- An Introduction to the Literature",
  note="Originally published as LNCS Vol.~21",
  publisher="Springer-Verlag",
  booktitle="Compiler Construction: An Advanced Course",
  editor=" F. L. Bauer and J. Eickel",
  year="1976"}

@Article{beaven:explaining,
      author =       "Mike Beaven and Ryan Stansifer",
      title =        "Explaining Type Errors in Polymorphic Languages",
      pages =        "17--30",
      journal =      loplas,
      year =         "1993",
      month =        mar # "--" # dec,
      volume =       "2",
      number =       "1--4",
    }
@techreport{duggan:explaining:tr,
  address="Waterloo, Canada",
  number="CS-94-14",
  author="Dominic Duggan and Frederick Bent",
  title="Explaining Type Inference",
  note="See {\tt http://nuada.uwaterloo.ca/dduggan/papers.html}",
  year="1994",
  institution="University of Waterloo"}

@article{duggan:explaining,
  where="filed with reprints",
  volume="7",
  number="1",
  author="Dominic Duggan and Frederick Bent",
  title="Explaining Type Inference",
  journal=scp,
  year="1996", month=jun}

@inproceedings{wand:finding,
  month=jan,
  pages="38-43",
  author="Mitchell Wand",
  title="Finding the Source of Type Errors",
  booktitle=popl86,
  year="1986"}

@techreport{bernstein:debugging,
  month=oct,
  author="Karen L. Bernstein and Eugene W. Stark",
  title="Debugging Type Errors",
  year="1995",
  institution="State University of New York at Stony Brook, Computer Science Department"}

@InProceedings{johnson:semantic,
  author =       "C. W. Johnson and C. Runciman",
  title =        "Semantic Errors -- Diagnosis and Repair",
  booktitle =    cc82,
  organization = "ACM",
  publisher =    "ACM",
  year =         "1982",
  pages =        "88--97",
  refs =         "7",
  where = "shelved with proceedings",
  sjb =          "The ``filter'' approach is quite straightforward: have
                 multiple levels of severity and verbosity; any message
                 to be output is filtered with regard to these criteria
                 and only those parts that are satisfactory are actually
                 output. The majority of the paper is concerned with
                 DIAPER (Diagnostic Interpreter for Ada program ERrors).
                 Gives an example of the ``scope expert'' which allows
                 the user to probe the program asking where a given
                 identifier is defined and what objects are visible at
                 that point.",
  abstract =     "In compiler technology, semantic error handling has
                 too often used ad hoc techniques and terse messages of
                 fixed content. In contrast, we present general models
                 of diagnosis and repair of semantic errors and
                 illustrate their use in the York Ada Workbench
                 Compiler. The diagnostic model focuses upon the problem
                 of selecting suitable information from which the
                 programmer can locate and correct an error; following a
                 brief discussion of an approach in which {\em filters}
                 are applied to reports, and we give a more extensive
                 account of a new approach using an {\em interactive
                 diagnostic interpreter}. The repair model is based upon
                 the idea of {\em plastic} nodes which are introduced
                 into the compiler's internal representation of a
                 program to replace {\em normal} nodes which are missing
                 or erroneous.",
}

@Article{boccalatte:approach,
  author =       "A. Boccalatte and M. Di. Manzo",
  title =        "An approach to the detection of semantic errors",
  journal =      "The Computer Journal",
  volume =       "23",
  number =       "4",
  pages =        "317--323",
  month =        nov,
  year =         "1980",
  coden =        "CMPJA6",
  ISSN =         "0010-4620",
  mrclass =      "68B10 (68F20 68F25)",
  mrnumber =     "81k:68010",
  bibdate =      "Tue Mar 25 13:51:56 MST 1997",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic)",
  corpsource =   "Istituto di Elettrotecnica, Univ. di Genova, Genova,
                 Italy",
  keywords =     "algorithm; applic.MC; attribute grammars; detection;
                 grammars; immediate identification; LL(1) grammars;
                 semantic errors; syntactic; top-down",
  treatment =    "T Theoretical or Mathematical",
}


@Article{adorni:top-down,
  author =       "G. Adorni and A. Boccalatte and M. {Di Manzo}",
  title =        "Top-Down Semantic Analysis",
  journal =      "The Computer Journal",
  volume =       "27",
  number =       "3",
  pages =        "233--237",
  month =        aug,
  year =         "1984",
  coden =        "CMPJA6",
  ISSN =         "0010-4620",
  mrclass =      "68Q55",
  mrnumber =     "86g:68104",
  bibdate =      "Tue Mar 25 13:51:56 MST 1997",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic); C6150C (Compilers, interpreters
                 and other processors)",
  classification = "721; 723",
  corpsource =   "Istituto di Elettrotecnica, Univ. di Genoa, Genoa,
                 Italy",
  keywords =     "attribute grammars; attribute grammars, eval;
                 attributes; automata theory; computer programming
                 languages --- Theory; grammars; program compilers;
                 programming language; semantic analysis; semantics; top
                 down semantic analysis",
  treatment =    "T Theoretical or Mathematical",
}

@Article{boccalatte:error,
  author =       "A. Boccalatte and M. {Di Manzo} and D. Sciarra",
  title =        "Error Recovery with Attribute Grammars",
  journal =      "The Computer Journal",
  volume =       "25",
  number =       "3",
  pages =        "331--337",
  month =        aug,
  year =         "1982",
  coden =        "CMPJA6",
  ISSN =         "0010-4620",
  bibdate =      "Tue Mar 25 13:51:56 MST 1997",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic); C6150J (Operating systems)",
  classification = "723",
  corpsource =   "Istituto di Elettrotecnica, Genova, Italy",
  keywords =     "attribute; attribute grammars, applic.divers;
                 compilers; computer programming --- Algorithms;
                 computer programming languages; correct; error
                 recovery; grammars; parsing algorithm; program
                 compilers; recovery procedure; semantic errors;
                 sentences; syntactic errors; synthesized attributes;
                 system failure; system recovery",
  treatment =    "P Practical",
}



@InProceedings{koskimies:specification,
  author =       "Kai Koskimies",
  title =        "A specification language for one-pass semantic analysis",
  booktitle =    cc84, 
  volume =       "19(6)",
  xpublisher =    "ACM Press",
  xaddress =      "New York, NY, USA",
  month =        jun,
  series =       "ACM SIG{­}PLAN Notices",
  pages =        "179--189",
  year =         "1984",
  bibdate =      "Wed Aug 17 01:24:45 1994",
  abstract =     "A new language is introduced for the specification of
                 semantic analysis of programming languages. The
                 language is based on the concept of one-class attribute
                 grammars. Various extensions of this basic formalism
                 are incorporated in the language, including disciplined
                 global variables, facilities for symbol processing, and
                 features supporting semantic error detection and
                 recovery. To encourage the writing of declarative
                 specifications the language is nonterminal-oriented, in
                 contrast to the production-oriented languages
                 traditionally used in compiler writing systems.",
  extra =       "We will obtain a new specification language called
                 Lisa for expressing semantics analysis. Lisa has been
                 designed largely from the user's point of view, but
                 only features that can be efficiently implemented have
                 been included. This specification language is currently
                 under implementation as the metalanguage of HLP84, a
                 new Pascal-based compiler writing system designed at
                 the University of Helsinki.",
  keywords =     "languages",
  subject =      "D.2.1 Software, SOFTWARE ENGINEERING,
                 Requirements/Specifications, Languages \\ D.3.1
                 Software, PROGRAMMING LANGUAGES, Formal Definitions and
                 Theory, Semantics \\ F.4.2 Theory of Computation,
                 MATHEMATICAL LOGIC AND FORMAL LANGUAGES, Grammars and
                 Other Rewriting Systems, Grammar types \\ F.4.3 Theory
                 of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Formal Languages, Classes defined by
                 grammars or automata",
}

@article{firth:compilation,
  author =       "J. R. Firth and C. H. Forsyth and I. C. Wand",
  title =        "The Compilation of {Ada}",
  journal =      spe,
  volume =       "26",
  number =       "8",
  pages =        "863--909",
  month =        aug,
  year =         "1996",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  bibdate =      "Tue Oct 29 08:22:24 1996",
  annote = "Lots of stuff about front end, but some interesting claims
	    about code generation and retargetability",
  where="filed with reprints"
}

@inproceedings{parker:isps,
  month=oct,
  address="Long Beach, CA",
  pages="21-27",
  where="field with reprints",
  author="Alice C. Parker and Donald E. Thomas and Stephen Crocker and Roderic G. G. Cattell",
  title="{ISPS}: A Retrospective View",
  publisher="IEEE Computer Society",
  booktitle="Proceedings of the 4th International Symposium on Computer Hardware Description Languages",
  year="1979"}

@incollection{wall:systems,
  where="filed with reprints",
  author =       "David W. Wall",
  booktitle =    "Code Generation - Concepts, Tools, Techniques",
  editor =       "Robert Giegerich and Susan L. Graham",
  publisher =    "Springer-Verlag",
  title =        "Systems for late code modification",
  year =         "1992",
  abstract-url = "http://www.research.digital.com/wrl/techreports/abstracts/92.3.html",
  url =          "ftp://gatekeeper.dec.com/pub/DEC/WRL/research-reports/WRL-TR-92.3.ps",
  pages =        "275--293",
}

@article{srivastava:link-time,
  author =       "Amitabh Srivastava and David W. Wall",
  title =        "Link-Time Optimization of Address Calculation on a
	          64-Bit Architecture",
  where="filed with reprints",
  pages =        "49--60",
  journal =      "SIGPLAN Notices",
  year =         "1994",
  month =        jun,
  volume =       "29",
  number =       "6",
  note =         "{\em Proceedings of the ACM SIGPLAN '94 Conference on
                 Programming Language Design and Implementation}",
}

@article{griswold:evaluation,
author="Ralph E. Griswold",
title="The Evaluation of Expressions in {Icon}",
journal=TOPLAS,
volume=4, number=4, pages="563-584", month=oct, year=1982
}

@inproceedings{bala:efficient,
  author =       "Vasanth Bala and Norman Rubin",
  where="filed with reprints",
  title =        "Efficient Instruction Scheduling Using Finite State
                 Automata",
  booktitle =    "Proceedings of the 28th Annual International Symposium
                 on Microarchitecture",
  address =      "Ann Arbor, Michigan",
  organization = "IEEE Computer Society TC-MICRO and ACM SIGMICRO",
  month =        nov # " 29--" # dec # " 1,",
  year =         "1995",
  pages =        "46--56",
}

@inproceedings{harper:compiling,
  author =       "Robert Harper and Greg Morrisett",
  booktitle =    popl95,
  title =        "Compiling Polymorphism Using Intensional Type Analysis",
  year =         "1995",
  address =      "San Francisco",
  url =          "http://www.cs.cmu.edu/afs/cs/user/jgmorris/web/papers/ip-popl.ps",
  month =        jan,
  scope =        "implemen",
  publisher =    "ACM Press",
  pages =        "130--141",
}

@article{poletto:linear-scan,
  author = "M Poletto and V Sarkar",
  title = "Linear scan register allocation",
  journal = toplas,
  month = sep,
  year = 1999,
  volume = 21,
  issue = 5
}

@article{poletto:tcc,
  month=may,
  pages="109-121",
  where="shelved with sigplan notices",
  number="5",
  author="Massimiliano Poletto and Dawson R. Engler and M. Frans Kaashoek",
  title="{\tt tcc}: A System for Fast, Flexible, and High-Level Dynamic Code Generation",
  keywords="vcode",
  journal=pldi97 # ", \emph{in} " # sigplan,
  year="1997",
  volume="32"}

@Book{spivey:z,
  author =       "J. M. Spivey",
  title =        "The {Z} Notation: A Reference Manual",
  publisher =    "Prentice Hall International Series in Computer Science",
  edition =      "2nd",
  length =       "150",
  year =         "1992",
  ISBN =         "013-978529-9",
  url =          "http://www.blackwell.co.uk/cgi-bin/bb_item?0139785299",
  price =        "\pounds18.99 (\$32.00) paperback",
  annote =       "This is a revised edition of the first widely
                 available reference manual on Z originally published in
                 1989. The book provides a complete and definitive guide
                 to the use of Z in specifying information systems,
                 writing specifications and designing implementations.
                 See also the draft Z standard \cite{Z:Brie92}. \par
                 Contents: Tutorial introduction; Background; The Z
                 language; The mathematical tool-kit; Sequential
                 systems; Syntax summary; Changes from the first
                 edition; Glossary.",
}

@book{goguen:algebraic,
  author =       "Joseph Goguen and Grant Malcolm",
  title =        "Algebraic Semantics of Imperative Programs",
  publisher =    "MIT Press",
  address =      "Cambridge, Mass.",
  year =         "1996",
  ISBN =         "0-262-07172-X",
}

@Book{abramsky:abstract,
  author =       "Samson Abramsky and Chris Hankin",
  title =        "Abstract Interpretation of Declarative Languages",
  publisher =    "Ellis Horwood",
  address =      "Chichester",
  year =         "1987",
}

@unpublished{duke:formal,
  author="Roger Duke and Gordon Rose",
  title="Formal Object-Oriented Specification and Design Using {Object-Z}",
  note="Unpublished manuscript available from the authors, Dept of Computer Science, University of Queensland, Australia",
  year="1995"}

@article{cleaveland:building,
  author =       "J. Craig Cleaveland",
  title =        "Building application generators",
  where="filed with reprints",
  journal =      "IEEE Software",
  volume =       "5",
  number =       "4",
  pages =        "25--33",
  month =        jul,
  year =         "1988",
  coden =        "IESOEG",
  ISSN =         "0740-7459",
  bibdate =      "Sat Jan 25 07:35:26 MST 1997",
  acknowledgement = ack-nhfb,
  classification = "723",
  journalabr =   "IEEE Software",
  keywords =     "application generators; application-generator
                 generators; computer software; computers,
                 microcomputer; customized reusable software;
                 dialogue-code generation system; Software Engineering;
                 software reusability; telecommunication systems ---
                 Computer Applications",
  annote = "A bit on the fluffy side as typical for Software.  Have not read carefully.",
}
@article{ladd:a*,
  month=nov,
  pages="894-901",
  where="filed with reprints",
  number="11",
  author="David A. Ladd and J. Christopher Ramming",
  title="A*: A Language for Implementing Language Processors",
  journal=ieeetose,
  year="1995",
  volume="21"}

@article{lee:reflections,
  month=nov,
  pages="883-893",
  where="Knight has TSE",
  number="11",
  author="Arthur H. Lee and Joseph L. Zachary",
  title="Reflections on Metaprogramming",
  keywords="persistence CLOS metaobject protocol",
  annote="Moderately interesting.
describes an implementation of persistence
using the CLOS metaobject protocol.
Objects are loaded and stored incrementally (might have some slots, not
others).
System didn't work so well because once you left objects there was
no way to do metaprogramming.",
  journal="TSE",
  year="1995",
  volume="21"}

@article{benitez:code,
	author		= "Manuel E. Benitez and Jack W. Davidson",
	title		= "Code generation for streaming: an access/execute mechanism",
	booktitle	= ASPLOSIV,
	pages		= "132--141",
	address		= "Santa Clara, CA",
	month		= apr,
	number = 4, volume = 26,
  where="filed with reprints",
	year		= 1991}

@inproceedings{davidson:aggressive,
  month=apr,
  address="Linkoping, Sweden",
  where="field with reprints",
  author="Jack W. Davidson and Sanjay Jinturkar",
  title="Aggressive Loop Unrolling in a Retargetable, Optimizing Compiler",
  booktitle=cc96,
  year="1996"}





@Article{hughes:why,
  where="filed with reprints",
  author =       "R. John M. Hughes",
  title =        "Why Functional Programming Matters",
  journal =      "The Computer Journal",
  volume =       "32",
  number =       "2",
  pages =        "98--107",
  month =        apr,
  year =         "1989",
  coden =        "CMPJA6",
  ISSN =         "0010-4620",
  bibdate =      "Tue Mar 25 13:51:56 MST 1997",
  abstract =     "In this paper the author shows that two features of
                 functional languages in particular, higher-order
                 functions and lazy evaluation, can contribute greatly
                 to modularity.",
  annote="cool paper.
Makes the case by example for higher-order functions and lazy evaluation,
both as mechanisms for modularization.",
  acknowledgement = ack-nhfb,
  affiliation =  "Dept. of Comput. Sci., Glasgow Univ.",
  affiliationaddress = "Glasgow, Scotl",
  classcodes =   "C6110 (Systems analysis and programming)",
  classification = "723; C6110 (Systems analysis and programming)",
  corpsource =   "Dept. of Comput. Sci., Glasgow Univ., UK",
  keywords =     "algorithms; Alpha-Beta Heuristic; alpha-beta
                 heuristic; Alpha-beta heuristic, Computer Programming;
                 Artificial Intelligence; Computer Programming
                 Languages; Computer Software; Data Processing--Data
                 Structures; Functional languages; Functional Languages;
                 functional languages; Functional Programming;
                 Functional programming; functional programming;
                 functions; higher order modularity examples, Structural
                 software; higher-order; Higher-order functions; Lazy
                 evaluation; lazy evaluation; Lists; lists; Modular
                 Programming; Modules; modules; numerical; Numerical
                 Algorithms; Numerical algorithms; Programming costs;
                 programming costs; structural software; structured
                 programming; Trees; trees",
  thesaurus =    "Functional programming; Structured programming",
  treatment =    "P Practical",
}

@InProceedings{bentley:fast,
  author =       "Jon L. Bentley and Robert Sedgewick",
  title =        "Fast Algorithms for Sorting and Searching Strings",
  editor =       "{ACM}",
  booktitle =    "Proceedings of the Eighth Annual {ACM}-{SIAM}
                 Symposium on Discrete Algorithms, New Orleans,
                 Louisiana, January 5--7, 1997",
  publisher =    "ACM Press",
  address =      "New York, NY 10036, USA",
  year =         "1997",
  ISBN =         "0-89871-390-0",
  pages =        "360--369",
  bibdate =      "Thu Sep 11 17:59:12 1997",
  abstract =     "We present theoretical algorithms for sorting and
                 searching multikey data, and derive from them practical
                 C implementations for applications in which keys are
                 character strings. The sorting algorithm blends
                 Quicksort and radix sort; it is competitive with the
                 best known C sort codes. The searching algorithm blends
                 tries and binary search trees; it is faster than
                 hashing and other commonly used search methods. The
                 basic ideas behind the algorithms date back at least to
                 the 1960s, but their practical utility has been
                 overlooked. We also present extensions to more complex
                 string problems, such as partial-match searching.",
  acknowledgement = ack-nhfb,
  affiliation =  "Bell Lab",
  affiliationaddress = "NJ, USA",
  classification = "723.1; 723; 903.3; 723.1.1; 921.4",
  conference =   "Proceedings of the 1996 8th Annual ACM-SIAM Symposium
                 on Discrete Algorithms",
  journalabr =   "Proc Annu ACM SIAM Symp Discrete Algorithms",
  keywords =     "Sorting; Algorithms; Information retrieval; C
                 (programming language); Structured programming; Trees
                 (mathematics); Quicksort algorithms; Radix sort
                 algorithms; Searching algorithms",
  meetingaddress = "New Orleans, LA, USA",
  meetingdate =  "Jan 5--7 1997",
  meetingdate2 = "01/05--07/97",
  sponsor =      "ACM-SIAM",
}

@Article{ierusalimschy:lua,
  author =       "Roberto Ierusalimschy and Luis H. {De Figueiredo} and
		 Waldemar {Celes Filho}",
  title =        "{Lua} --- an Extensible Extension Language",
  journal =      spe,
  volume =       "26",
  number =       "6",
  pages =        "635--??",
  month =        jun,
  year =         "1996",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  bibdate =      "Tue Oct 29 08:22:24 1996",
  acknowledgement = ack-nhfb,
}

@article{davidson:design-environment,
  where="filed with reprints",
        Title="A design environment for addressing architecture and compiler
                  interactions",
        Author="Davidson, Jack W. and Whalley, David B.",
        Journal="Microprocessors and Microsystems",
        Volume="15",
        Number="9",
        Month="November",
        Year="1991",
        Pages="459-472",
        Keywords="computer architecture"
}

@inproceedings{romer:instrumentation,
  author =       "Ted Romer and Geoff Voelker and Dennis Lee and Alec
                 Wolman and Wayne Wong and Hank Levy and Brian Bershad
                 and J. Bradley Chen",
  title =        "Instrumentation and Optimization of {Win32\slash
                 Intel} Executables Using Etch",
  editor =       "{USENIX}",
  booktitle =    "The {USENIX} Windows {NT} Workshop 1997, August
                 11--13, 1997. Seattle, Washington",
  publisher =    "USENIX",
  address =      "Berkeley, CA, USA",
  month =        aug,
  year =         "1997",
  ISBN =         "1-880446-88-X",
  pages =        "1--7",
  day =          "11--13",
  bibdate =      "Tue Sep 23 06:19:54 1997",
  acknowledgement = ack-nhfb,
}

@inproceedings{schnarr:instruction,
  author =       "Eric Schnarr and James R. Larus",
  title =        "Instruction Scheduling and Executable Editing",
  booktitle =    "Proceedings of the 29th Annual International Symposium
                 on Microarchitecture",
  address =      "Paris, France",
  organization = "IEEE Computer Society TC-MICRO and ACM SIGMICRO",
  month =        dec # " 2--4,",
  year =         "1996",
  pages =        "288--297",
}

@inproceedings{wang:asdl,
  author = "DC Wang and AW Appel and JL Korn and CS Serra",
  title = "The {Zephyr} Abstract Syntax Description Language",
  booktitle =  "Proceedings of the 2nd USENIX Conference on Domain-Specific Languages",
  month = oct,
  year = 1997,
  address = "Santa Barbara, CA",
  pages = "213--227",
  keywords = {ASDL, pickling, persistence, data types}
}

@InProceedings{benitez:advantages,
  author =       "Manuel E. Benitez and Jack W. Davidson",
  title =        "The Advantages of Machine-Dependent Global Optimization",
  booktitle =    "Programming Languages and System Architectures",
  editor =       "Jürg Gutknecht",
  publisher =    "Springer Verlag",
  series =       "Lecture Notes in Computer Science",
  volume =       "782",
  month =        mar,
  year =         "1994",
  pages =        "105--124",
  refs =         "18",
  checked =      "19941103",
  source =       "main library",
  abstract =     "Using an intermediate language is a well-known,
                 effective technique for constructing interpreters and
                 compilers. This paper describes a retargetable,
                 optimizing compilation system centered around the use
                 of two intermediate languages (IL): one relatively high
                 level, the other a low level corresponding to target
                 machine instructions. The high-level IL (HIL) models a
                 stack-based, hypothetical RISC machine. The low-level
                 IL (LIL) models target machines at the instruction-set
                 architecture level. All code improvements are applied
                 to the LIL representation of a program. This is
                 motivated by the observation that most optimizations
                 are machine dependent, and the few that are truly
                 machine independent interact with the machine-dependent
                 ones. This paper describes several
                 ``machine-independent'' code improvements and shows
                 that they are actually machine dependent. To illustrate
                 how code improvement can be applied to a LIL, an
                 algorithm for induction variable elimination is
                 presented. It is demonstrated that this algorithm
                 yields better code than traditional implementations
                 that are applied machine-independently to a high-level
                 representation.",
}

@InProceedings{davidson:retargetable,
        Author  = "Davidson, J. W.",
        Title   = "A Retargetable Instruction Reorganizer",
        Booktitle= "Proceedings of the SIGPLAN '86 Symposium on Compiler Construction",
        Address = "Palo Alto, CA",
        Month   = "June",
        Year    = "1986",
        Pages   = "234-241",
}

@Article{bailey:target,
  author =       "Mark W. Bailey and Jack W. Davidson",
  title =        "Target-Sensitive Construction of Diagnostic Programs
                 for Procedure Calling Sequence Generators",
  journal=pldi96 # ", {\em in} " # sigplan,
  volume =       "31",
  number =       "5",
  pages =        "249--257",
  month =        may,
  year =         "1996",
  coden =        "SINODQ",
  ISSN =         "0362-1340",
}

@Book{thomas:verilog,
  author =       "Donald Thomas and Philip Moorby",
  title =        "The Verilog Hardware Description Language",
  edition="2nd",
  publisher =    "Kluwer Academic Publishers",
  address =      "Norwell, USA",
  year =         "1995",
  ISBN =         "0-7923-9523-9",
  descriptor =   "HDL, Simulation, Verilog, VLSI",
}

@Book{polnitkar:verilog,
  author =       "Samir Polnitkar",
  title =        "Verilog {HDL}",
  publisher =    "Prentice Hall",
  address =      "New York",
  year =         "1996",
  ISBN =         "0-13-451675-3",
  descriptor =   "Synthese, UDP, Zeitablaeufe, Datenfluss, VLSI,
                 Hierarchie",
}

@Book{sternheim:synthesis,
  author =       "Eliezer Sternheim and R. Singh and R. Madhavan and Y.
                 Trivedi",
  title =        "Digital Design and Synthesis with Verilog {HDL}",
  publisher =    "Automata Publishing Company",
  address =      "Saratoga-Sunnyvale",
  year =         "1993",
  descriptor =   "Synthese, Verilog, VLSI",
}

@Book{sternheim:digital,
  author =       "Eliezer Sternheim and R. Singh and Y. Trivedi",
  title =        "Digital Design with Verilog {HDL}",
  publisher =    "Automata Publ. Company",
  address =      "USA",
  year =         "1990",
  ISBN =         "0-9627488-0-3",
  descriptor =   "Hardware-Simulation, VLSI, VLSIBIB",
}


@Book{IB-C922048,
  author =       "D. Perry",
  title =        "{VHDL}",
  publisher =    "McGraw-Hill",
  address =      "New York",
  year =         "1991",
  descriptor =   "HDL, VHDL",
}

@Book{IB-C902002,
  author =       "James R. Armstrong",
  title =        "Chip-Level Modeling with {VHDL}",
  publisher =    "Prentice Hall",
  address =      "New Jersey",
  year =         "1989",
  ISBN =         "0-13-133190-6",
  descriptor =   "Chip-Level, HDL, VHDL, VLSI",
}

@Book{IB-E952037,
  author =       "Ben Cohen",
  title =        "{VHDL} Coding Styles and Methotologies",
  publisher =    "Kluwer Academic Publishers",
  address =      "Norwell",
  year =         "1995",
  ISBN =         "0-7923-9598-0",
  descriptor =   "Benchmarktest, Funktional, Kontrolle, Sprache,
                 Synthese, Treiber, Uebersicht",
  annote =       "VART, VITAL",
}

@Book{IB-E952038,
  author =       "Y. Hsu and K. Tsai and I. Liu and E. Lin",
  title =        "{VHDL} Modeling for Digital Design Synthesis",
  publisher =    "Kluwer Academic Publishers",
  address =      "Norwell",
  year =         "1995",
  ISBN =         "0-7923-9597-2",
  descriptor =   "Algorithmik, FSM, FSMD, RTL/2, Sprache, Struktur,
                 VHDL",
}

@Book{IB-C932042,
  author =       "J. Berge and S. Maginot and A. Fonkoua and J.
                 Rouillard",
  title =        "{VHDL} Designer's Reference",
  publisher =    "Kluwer",
  address =      "Dordrecht",
  year =         "1992",
  descriptor =   "VHDL",
}

@Book{IB-C902077,
  author =       "David R. Coelho",
  title =        "The {VHDL} Handbook",
  publisher =    "Kluwer",
  address =      "Boston/USA",
  year =         "1990",
  ISBN =         "0-7923-9031-8",
  descriptor =   "VHDL, VLSI, VLSIBIB",
}


@Book{IB-C892082,
  editor =       "IEEE",
  title =        "Standard {VHDL} - Language Reference Manual",
  publisher =    "IEEE Computer Society Press",
  address =      "USA",
  year =         "1988",
  ISBN =         "0-8186-",
  descriptor =   "VHDL, VLSI, VLSIBIB",
}

@Book{ArGr93,
  author =       "J. R. Armstrong and F. G. Gray",
  title =        "{S}tructured {L}ogic {D}esign with {VHDL}",
  publisher =    "Prentice Hall",
  year =         "1993",
  key =          "ArGr93",
  keyword =      "textbook",
  owner =        "Uni-Bib: 93A2344",
}

@Book{lipsett:vhdl,
  author =       "R. Lipsett and C. Schaefer and C. Ussery",
  title =        "{VHDL:} Hardware Description and Design",
  publisher =    "Kluwer Academic Publishers",
  year =         "1993",
  edition =      "12",
  keyword =      "textbook",
  owner =        "Info-Bib: B.Lib",
}

@ARTICLE{thompson:alpha,
  author = "T. Thompson",
  title = "An {A}lpha in {PC} Clothing",
  journal = "Byte",
  pages = "195--196",
  month = feb,
  year = 1996
}

@article{griswold:alternative,
author="Ralph E. Griswold and David R. Hanson",
  where="filed with reprints",
title="An Alternative to the Use of Patterns in String Processing",
journal=TOPLAS,
volume=2, number=2, pages="153-172", month=apr, year=1980
}

@techreport{necular:kernel,
  author = "G Necula and P Lee",
  title = "Safe kernel extensions without run-time checking",
  institution = cmu-cs,
  year = 1996,
  keywords = "proof carrying code"
}

@InProceedings{necula:proof,
  title =        "Proof-Carrying Code",
  author =       "George C. Necula",
  pages =        "106--119",
  crossref = "popl97",
  references =   "\cite{JACM::BoyerY1996} \cite{JACM::HarperHP1993}
                 \cite{APAL::MillerNPS1991} \cite{LICS::Pfenning1989}",
}

@article{spinellis:implementing,
  author =       "Diomidis Spinellis",
  title =        "Implementing {Haskell}: Language Implementation as a
                 Tool Building Exercise",
  journal =      "Structured Programming",
  volume =       "14",
  number =       "1",
  pages =        "37--48",
  year =         "1993",
  coden =        "STPGEM",
  ISSN =         "0935-1183",
  url =          "http://kerkis.math.aegean.gr/~dspin/pubs/jrnl/1993-StrProg-Haskell/html/exp.html",
  annote = "really lame paper on using little tools to help build compilers",
  classification = "C6115 (Programming support); C6140D (High level
                 languages); C6150C (Compilers, interpreters and other
                 processors)",
  corpsource =   "Dept. of Comput., Imperial Coll. of Sci., Technol. and
                 Med., London, UK",
  keywords =     "high level languages; program compilers; software
                 tools; structured programming; tool boxes; language
                 implementation; Haskell system; front end;
                 transputer-array; language tools; tree processing
                 function generators; error message management
                 routines",
  treatment =    "P Practical",
}

@article{brown:system,
  author =       "P. J. Brown",
  title =        "``My system gives excellent error messages''---or does it?",
  where="filed with reprints",
  journal =      spe,
  volume =       "12",
  number =       "1",
  pages =        "91--94",
  month =        jan,
  year =         "1982",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  subject =      "D.3.4 Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers \\ D.3.2 Software, PROGRAMMING LANGUAGES,
                 Language Classifications, Pascal",
}

@Article{boehm:economics,
  title =        "Software Engineering Economics",
  author =       "Barry W. Boehm",
  where="filed with reprints",
  journal =      "IEEE Transactions on Software Engineering",
  pages =        "4--21",
  month =        jan,
  year =         "1984",
  volume =       "10",
  number =       "1",
  annote = "Good short description of COCOMO and other cost-estimation techniques"
}

@inproceedings{ davidson:ease,
        Author  = "Davidson, Jack W. and Whalley, David B.",
        Title   = "Ease: An Environment for Architecture Study and Experimentation",
        Booktitle       = "Proceedings of the 1990 ACM Sigmetrics Conference on Measurement and Modeling of Computer Systems",
        Address = "Boulder, CO",
        Month   = "May",
        Year    = "1990",
        Pages   = "259-260",
}

@unpublished{reynolds:theory,
  month=jan,
  where="filed with reprints",
  author="John C. Reynolds",
  title="Where Theory and Practice Meet: POPL Past and Future",
  note="Invited lecture given at the 25th POPL.",
  year="1998"}


@InProceedings{dijkstra:inversion,
  author =       "Edsger W. Dijkstra",
  title =        "Program inversion",
  booktitle =    "Program Construction",
  editor =       "F. L. Bauer and M. Broy",
  publisher =    "Springer Verlag",
  series =       "Lecture Notes in Computer Science",
  volume =       "69",
  year =         "1978",
  pages =        "54--57",
  annote =          "Shows how to derive the inverse of particular
                 program.",
}

@InProceedings{harrison:function,
  author =       "P. G. Harrison",
  title =        "Function Inversion",
  booktitle =    "Partial Evaluation and Mixed Computation",
  editor =       "D. Bjørner and A. P. Ershov and N. D. Jones",
  pages =        "153--166",
  publisher =    "Amsterdam:\ North-Holland",
  year =         "1988",
  annote =       "A method for synthesizing recursive inverse function
                 definitions for certain first order recursive functions
                 is described.",
}

@Article{von-wright:inversion,
  author =       "J. {von Wright}",
  title =        "Program inversion in the refinement calculus",
  journal =      "Information Processing Letters",
  volume =       "37",
  where="filed with reprints",
  number =       "2",
  pages =        "95--100",
  month =        jan,
  year =         "1991",
  coden =        "IFPLAT",
  ISSN =         "0020-0190",
  bibdate =      "Wed Jan 29 09:23:05 MST 1997",
  acknowledgement = ack-nhfb,
  affiliation =  "Swedish Sch of Economics and Business Education",
  affiliationaddress = "Vasa, Finl",
  classification = "723",
  journalabr =   "Inf Process Lett",
  keywords =     "Computer Metatheory; Computer Programming --- Theory;
                 Program Inversion; Programming Theory; Refinement
                 Calculus",
}

                      From Bibliography of "Science of Computer Programming": 


@Article{chen:inversion,
  title =        "Program Inversion: More than Fun!",
  where="filed with reprints",
  author =       "Wei Chen and Jan Tijmen Udding",
  pages =        "1--13",
  journal =      scp,
  month =        nov,
  year =         "1990",
  volume =       "15",
  number =       "1",
}
@book{felleisen:mler,
  month=dec,
  author="Matthias Felleisen and Daniel P. Friedman",
  title="The Little {MLer}",
  publisher="MIT Press",
  year="1997"}

@book{gries:science,
  author="David Gries",
  title="The Science of Programming",
  publisher="Springer-Verlag",
  year="1981"}

@article{linton:macroscopic,
  author =       "M. A. Linton and R. W. Quong",
  title =        "A macroscopic profile of program compilation and
                 linking",
  journal =      "IEEE Transactions on Software Engineering",
  volume =       "15",
  number =       "4",
  pages =        "427--436",
  month =        apr,
  year =         "1989",
  cr =           "9004-316",
  checked =      "19940225",
  keywords =     "compilation, incremental linking, programming
                 environment program size distribution, software
                 development profile.",
  sjb =          "As the reviewer notes, their results show that the
                 compilation time dominates, not the linking time (only
                 20 percent is link time), therefore it is not obvious
                 why linking has been chosen as the area to speed up.",
  abstract =     "To profile the changes made to programs during
                 development and maintenance, we have instrumented the
                 {\em make} utility~\cite{Feldman:spe:1979} that is used
                 to compile and link programs. With minor modifications,
                 we have used {\em make} to find out how much time
                 programmers spend waiting for compiling, and linking,
                 how many modules are compiled each time a program is
                 linked, and the change in size of the compiled modules.
                 Our measurements show that most programs are relinked
                 after only one or two modules are recompiled, and that
                 over 90 percent of all recompilations yield object code
                 that is less than 100 bytes larger in size. We are
                 using these results to guide the design of an
                 incremental programming environment, particularly with
                 respect to an incremental linker.",
  annote = "Early report with measurements that might
            justify work on experimental linking---also on faster compilers!",
}

@InProceedings{spencer:ifdef,
  author =       "Henry Spencer and Geoff Collyer",
  title =        "\#ifdef Considered Harmful or Portability Experience
                 With {C} News",
  where="filed with reprints",
  editor =       "{USENIX Association}",
  booktitle =    "Proceedings of the Summer 1992 {USENIX} Conference:
                 June 8--12, 1992, San Antonio, Texas, {USA}",
  publisher =    "USENIX",
  address =      "Berkeley, CA, USA",
  year =         "1992",
  ISBN =         "1-880446-44-8",
  pages =        "185--198",
  month =        "Summer",
  bibdate =      "Fri Oct 18 07:24:24 MDT 1996",
  affiliation =  "University of Toronto; Software Tool \& Die, Brookline
                 MA",
}

@Article{Dromey:1990:SCA,
  author =       "R. G. Dromey and T. A. Chorvat",
  title =        "Structure Clashes --- An Alternative to Program
                 Inversion",
  where="filed with reprints",
  journal =      "The Computer Journal",
  annote = "Did not read",
  volume =       "33",
  number =       "2",
  pages =        "126--132",
  month =        apr,
  year =         "1990",
  coden =        "CMPJA6",
  ISSN =         "0010-4620",
  bibdate =      "Tue Mar 25 13:51:56 MST 1997",
  acknowledgement = ack-nhfb,
  affiliation =  "Comput. and Inf. Technol., Griffith Univ., Brisbane,
                 Qld., Australia",
  classcodes =   "C6110B (Software engineering techniques); C6120 (File
                 organisation)",
  classification = "C6110B (Software engineering techniques); C6120
                 (File organisation)",
  corpsource =   "Comput. and Inf. Technol., Griffith Univ., Brisbane,
                 Qld., Australia",
  keywords =     "boundary structure clashes; Boundary structure
                 clashes; constructive approach; Constructive approach;
                 data structure; Data structure; data structures;
                 maintain; Maintain; program control; Program control
                 structure; program inversion technique; Program
                 inversion technique; prototypes; Prototypes; software
                 engineering; structure",
  thesaurus =    "Data structures; Software engineering",
  treatment =    "P Practical",
}

@inproceedings{augusteijn:alternative,
  month=jun,
  address="Berlin",
  where="filed with reprints",
  author="Lex Augusteijn",
  title="An Alternative Derivation of a Binary Heap Construction Function",
  keywords="program inversion",
  publisher="Springer-Verlag",
  booktitle="Mathematics of Program Construction",
  annote="have not read",
  editor="R. S. Bird and C. C. Morgan and J. C. P. Woodcock",
  year="1992"}

@inproceedings{chen:formal,
  address="New York, NY",
  pages="398-404",
  where="filed with reprints",
  author="Wei Chen",
  title="A formal approach to program inversion",
  publisher="ACM",
  booktitle="ACM Eighteenth Annual Computer Science Conference",
  year="1990"}

@article{foster:separate,
  author =       "David G. Foster",
  title =        "Separate Compilation in a {Modula-2} Compiler",
  journal =      spe,
  volume =       "16",
  number =       "2",
  pages =        "101--106",
  month =        feb,
  year =         "1986",
  ISSN =         "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  keywords =     "design; languages",
  review =       "ACM CR 8610-0910",
  subject =      "D.3.4 Software, PROGRAMMING LANGUAGES, Processors,
                 Compilers \\ D.3.2 Software, PROGRAMMING LANGUAGES,
                 Language Classifications, Modula-2 \\ D.2.6 Software,
                 SOFTWARE ENGINEERING, Programming Environments \\ D.3.3
                 Software, PROGRAMMING LANGUAGES, Language Constructs,
                 Modules, packages",
  annote = "Not interesting or well written.",
  where="filed with reprints",
}

@InProceedings{henderson:compiling,
  author =       "Fergus Henderson and Thomas Conway and Zoltan
                 Somogyi",
  where="filed with reprints",
  see_also="C--",
  title =        "Compiling logic programs to {C} using {GNU} {C} as a
                 portable assembler",
  booktitle =    "{ILPS'95} Postconference Workshop on Sequential
                 Implementation Technologies for Logic Programming",
  address =      "Portland, Or",
  pages =        "1--15",
  url =          "http://www.cs.mu.oz.au/mercury/papers/mercury_to_c.ps.gz",
  year =         "1995",
}

@InProceedings{Sutor:1987:TIC,
  author =       "R. S. Sutor and R. D. Jenks",
  title =        "The Type Inference and Coercion Facilities in the
                 Scratchpad {II} Interpreter",
  editor =       "Richard L. Wexelblat",
  booktitle =    "Proceedings of the {SIGPLAN} '87 Symposium on
                 Interpreters and Interpretive Techniques, {St. Paul,
                 Minnesota}, {June} 24--26, 1987",
  where="filed with reprints",
  annote="Lame paper.  Not well written, no precise algorithms.  Good examples
          to get ideas about what Scratchpad is, but otherwise useless.",
  publisher =    "ACM Press",
  address =      "New York, NY 10036, USA",
  year =         "1987",
  ISBN =         "0-89791-235-7",
  pages =        "56--63",
  abstract =     "The Scratchpad II system is an abstract datatype
                 programming language, a compiler for the language, a
                 library of packages of polymorphic functions and
                 parameterized abstract datatypes, and an interpreter
                 that provides sophisticated type inference and coercion
                 facilities. Although originally designed for the
                 implementation of symbolic mathematical algorithms,
                 Scratchpad II is a general purpose programming
                 language. This paper discusses aspects of the
                 implementation of the interpreter and how it attempts
                 to provide a user friendly ad relatively weakly typed
                 front end for the strongly typed programming
                 language.",
  checked =      "19940516",
  keywords =     "scratchpad",
  refs =         "8",
}

@TechReport{mcadam:wraps,
  author =       "Bruce J.~McAdam",
  title =        "That about wraps it up --- Using {FIX} to handle
                    errors without exceptions, and other programming
                    tricks",
  institution =  "Laboratory for the Foundations of Computer Science,
                    The University of Edinburgh",
  year =         1997,
  number =       "ECS--LFCS--97--375",
  address =      "James Clerk Maxwell Building, The Kings Buildings,
                    Mayfield Road, Edinburgh, UK",
  month =        nov
}

@article{vo:vmalloc,
  author =       "Kiem-Phong Vo",
  title =        "{Vmalloc}: {A} General and Efficient Memory Allocator",
  where="filed with reprints",
  journal =      "Soft­ware\emdash Prac­tice and Experience",
  volume =       "26",
  number =       "3",
  pages =        "357--374",
  month =        mar,
  year =         "1996",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  acknowledgement = ack-nhfb,
}
 




@article{hudak:conception,
  author =       "Paul Hudak",
  where="filed with reprints",
  title =        "Conception, Evolution, and Application of Functional
                 Programming Languages",
  journal =      "ACM Computing Surveys",
  volume =       "21",
  number =       "3",
  pages =        "359--411",
  month =        sep,
  year =         "1989",
  coden =        "CMSVAN",
  ISSN =         "0360-0300",
  bibdate =      "Wed Dec 18 07:42:17 MST 1996",
  url =          "http://www.acm.org/pubs/toc/Abstracts/0360-0300/72554.html",
  abstract =     "The foundations of functional programming languages
                 are examined from both historical and technical
                 perspectives. Their evolution is traced through several
                 critical periods: early work on lambda calculus and
                 combinatory calculus, Lisp, Iswim, FP, ML, and modern
                 functional languages such as Miranda and Haskell. The
                 fundamental premises on which the functional
                 programming methodology stands are critically analyzed
                 with respect to philosophical, theoretical, and
                 pragmatic concerns. Particular attention is paid to the
                 main features that characterize modern functional
                 languages: higher-order functions, lazy evaluation,
                 equations and pattern matching, strong static typing
                 and type inference, and data abstraction. In addition,
                 current research areas --- such as parallelism,
                 nondeterminism, input\slash output, and state-oriented
                 computations --- are examined with the goal of
                 predicting the future development and application of
                 functional languages.",
  acknowledgement = ack-nhfb,
  affiliation =  "Yale Univ",
  affiliationaddress = "New Haven, CT, USA",
  annote =       "This is the second paper in the special issue which
                 has a section on non-determinism [along with Bal, et
                 al] which begins with a statement which would sound
                 bizarre to non-programmers or those not familiar with
                 the issues of determinacy.",
  classification = "723",
  keywords =     "ag; APL; Categories and Subject Descriptors: D.1.1
                 [Programming Techniques]: Applicative (Functional)
                 Programming; Computer Programming Languages; D.3.2
                 [Programming Languages]: Language classifications -
                 applicative languages; Data Abstraction; data-flow
                 languages; denotative [declarative] language; F.4.1
                 [Mathematical Logic and Formal Languages]: Mathematical
                 Logic - lambda calculus and related systems; FL; FP;
                 Functional Programming Languages; grecommended91;
	         Haskell; higher-order functions; Hope; Iswim; K.2
                 [History of Computing]: software General Terms:
                 Languages; KRC; Lambda Calculus; Lambda Calculus,
                 Additional Key Words and Phrases: Data abstraction;
                 languages; lazy evaluation; Lisp; Miranda; ML;
                 non-procedural languages; referential transparency;
                 SASL; special issue on programming language paradigms;
                 types; very-high-level languages",
  review =       "ACM CR 9006-0486",
  subject =      "{\bf D.1.1}: Software, PROGRAMMING TECHNIQUES,
                 Applicative (Functional) Programming. {\bf F.4.1}:
                 Theory of Computation, MATHEMATICAL LOGIC AND FORMAL
                 LANGUAGES, Mathematical Logic, Lambda calculus and
                 related systems. {\bf F.1.2}: Theory of Computation,
                 COMPUTATION BY ABSTRACT DEVICES, Modes of Computation,
                 Parallelism and concurrency. {\bf D.3.2}: Software,
                 PROGRAMMING LANGUAGES, Language Classifications,
                 Applicative languages.",
}

@article{berk:color-naming,
  author =       "Toby Berk and Lee Brownston and Arie Kaufman",
  title =        "A New Color-Naming System for Graphics Languages",
  where="filed with reprints",
  journal =      "IEEE Computer Graphics and Applications",
  volume =       "2",
  number =       "3",
  pages =        "37--42, 44",
  month =        may,
  year =         "1982",
  coden =        "ICGADZ",
  ISSN =         "0272-1716",
  bibdate =      "Sat Jan 25 06:42:48 MST 1997",
  acknowledgement = ack-nhfb,
  classification = "723",
  journalabr =   "IEEE Comput Graphics Appl",
  keywords =     "color naming systems; computer graphics; computer
                 programming languages; graphic languages; high level
                 languages; I36 color naming systems",
  annote = "Very nice system for color names",
}

@Article{Koehler:1997:CCC,
  author =       "B. Koehler and R. N. Horspool",
  title =        "{CCC}: {A} Caching Compiler for {C}",
  where="filed with reprints",
  journal =      "Soft­ware\emdash Prac­tice and Experience",
  volume =       "27",
  number =       "2",
  pages =        "155--??",
  month =        feb,
  year =         "1997",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  bibdate =      "Sat May 31 12:05:33 MDT 1997",
  acknowledgement = ack-nhfb,
  annote = "lcc-based.  not too exciting.",
}

@Article{Litman:1993:IPH,
  author =       "Andy Litman",
  title =        "An Implementation of Precompiled Headers",
  where="filed with reprints",
  journal =      "Soft­ware\emdash Prac­tice and Experience",
  volume =       "23",
  number =       "3",
  pages =        "341--350",
  month =        mar,
  year =         "1993",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  acknowledgement = ack-nhfb,
  annote="Lengthy.  Important; may be definitive.",
}

@InProceedings{anderson:cryptosystems,
  author =       "Ross Anderson",
  title =        "Why Cryptosystems Fail",
  where="filed with reprints",
  keywords =     "ATM, use of cryptography",
  pages =        "215--227",
  online =       "rja14@cl.cam.ac.uk",
  annote =       "Presents a survey of the failure modes of retail
                 banking systems and shows what the most important
                 thread to secure systems are not cryptoanalytical
                 attacks but caused by implementation errors and
                 management failures.  Fascinating.",
  booktitle =    "1st {ACM} Conference on Computer and Communications
                 Security",
  address =      "Fairfax, Virginia",
  year =         "1993",
  publisher =    "ACM Press",
  month =        nov,
  editor =       "Victoria Ashby",
}

@InProceedings{deutsch:efficient,
  author =       "Peter Deutsch and Alan M. Schiffman",
  title =        "Efficient Implementation of the Smalltalk-80 System",
  where="filed with reprints",
  annote="Early dynamic code generation.  Crisp.",
  booktitle =    popl84,
  organization = "ACM",
  publisher =    "ACM",
  month =        jan,
  year =         "1984",
  pages =        "297--302",
}

@article{cardelli:m3,
  author =       "Luca Cardelli and James Donahue and Lucille Glassman
                 and Mick Jordan and Bill Kalsow and Greg Nelson",
  title =        "{Modula-3} Language Definition",
  journal =      "SIGPLAN Notices",
  volume =       "27",
  number =       "8",
  pages =        "15--42",
  month =        aug,
  year =         "1992",
  keywords =     "PROGLANG, TYPE, MODULE, INTERFACE, MODULA-3",
}

@article{briggs:improvements,
  author="Preston Briggs and Keith D. Cooper and Linda Torczon",
  title="Improvements to Graph Coloring Register Allocation",
  pages="428--455",
  journal=toplas,
  year=1994,
  month=may,
  volume=16,
  number=3
}

@article{george:iterated,
  author =       "Lal George and Andrew W. Appel",
  title =        "Iterated register coalescing",
  journal = toplas,
  volume =       "18",
  number =       "3",
  pages =        "300--324",
  month =        may,
  year =         "1996",
  coden =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Tue Aug 13 11:46:35 MDT 1996",
  url =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/229546.html",
  abstract =     "An important function of any register allocator is to
                 target registers so as to eliminate copy instructions.
                 Graph-coloring register allocation is an elegant
                 approach to this problem. If the source and destination
                 of a move instruction do not interfere, then their
                 nodes can be coalesced in the interference graph.
                 Chaitin's coalescing heuristic could make a graph
                 uncolorable (i.e., introduce spills); Briggs et al.
                 demonstrated a conservative coalescing heuristic that
                 preserves colorability. But Briggs's algorithm is {\em
                 too} conservative and leaves too many move instructions
                 in our programs. We show how to interleave coloring
                 reductions with Briggs's coalescing heuristic, leading
                 to an algorithm that is safe but much more
                 aggressive.",
  keywords =     "algorithms; design; languages; measurement;
                 performance",
  subject =      "{\bf B.5.2}: Hardware, REGISTER-TRANSFER-LEVEL
                 IMPLEMENTATION, Design Aids, Optimization. {\bf I.2.8}:
                 Computing Methodologies, ARTIFICIAL INTELLIGENCE,
                 Problem Solving, Control Methods, and Search, Heuristic
                 methods. {\bf G.2.2}: Mathematics of Computing,
                 DISCRETE MATHEMATICS, Graph Theory, Graph algorithms.
                 {\bf D.3.4}: Software, PROGRAMMING LANGUAGES,
                 Processors, Optimization.",
}

@Article{hauser:handling,
  author =       "John R. Hauser",
  title =        "Handling floating-point exceptions in numeric
                 programs",
  journal =      toplas,
  volume =       "18",
  number =       "2",
  pages =        "139--174",
  month =        mar,
  year =         "1996",
  coden =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Tue Aug 13 11:46:35 MDT 1996",
  url =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/227701.html",
  abstract =     "There are a number of schemes for handling arithmetic
                 exceptions that can be used to improve the speed (or
                 alternatively the reliability) of numeric code.
                 Overflow and underflow are the most troublesome
                 exceptions, and depending on the context in which the
                 exception can occur, they may be addressed either: (1)
                 through a ``brute force'' reevaluation with extended
                 range, (2) by reevaluating using a technique known as
                 {\em scaling}, (3) by substituting an infinity or zero,
                 or (4) in the case of underflow, with gradual
                 underflow. In the first two of these cases, the
                 offending computation is simply reevaluated using a
                 safer but slower method. The latter two cases are
                 cheaper, more automated schemes that ideally are built
                 in as options within the computer system. Other
                 arithmetic exceptions can be handled with similar
                 methods. These and some other techniques are examined
                 with an eye toward determining the support programming
                 languages and computer systems ought to provide for
                 floating-point exception handling. It is argued that
                 the cheapest short-term solution would be to give full
                 support to most of the {\em required} (as opposed to
                 recommended) special features of the IEC/IEEE Standard
                 for Binary Floating-Point Arithmetic. An essential part
                 of this support would include standardized access from
                 high-level languages to the exception flags defined by
                 the standard. Some possibilities outside the IEEE
                 Standard are also considered, and a few thought on
                 possible better-structured support within programming
                 languages are discussed.",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; design; languages; performance;
                 standardization",
  subject =      "{\bf D.3.3}: Software, PROGRAMMING LANGUAGES, Language
                 Constructs and Features, Control structures. {\bf
                 D.3.0}: Software, PROGRAMMING LANGUAGES, General,
                 Standards. {\bf G.1.0}: Mathematics of Computing,
                 NUMERICAL ANALYSIS, General, Computer arithmetic. {\bf
                 G.1.0}: Mathematics of Computing, NUMERICAL ANALYSIS,
                 General, Numerical algorithms.",
}

@article{chase:exn-I,
  author =       "David Chase",
  title =        "Implementation of exception handling, {Part I}",
  journal =      "The Journal of {C} Language Translation",
  volume =       "5",
  number =       "4",
  pages =        "229--240",
  month =        jun,
  year =         "1994",
  ISSN =         "1042-5721",
  bibdate =      "Fri Nov 21 14:40:20 1997",
  acknowledgement = ack-nhfb,
  remark =       "The details of handling exceptions in C++ and similar
                 languages.",
}


@article{chase:exn-II,
  author =       "David Chase",
  title =        "Implementation of Exception Handling, {Part II}:
                 Calling Conventions, Asynchrony, Optimizers, and
                 Debuggers",
  journal =      "The Journal of {C} Language Translation",
  volume =       "6",
  number =       "1",
  pages =        "20--32",
  month =        sep,
  year =         "1994",
  ISSN =         "1042-5721",
  bibdate =      "Fri Nov 21 14:40:20 1997",
  acknowledgement = ack-nhfb,
  remark =       "More on the details of handling exceptions in C++ and
                 similar languages",
}

@article{appel:simple,
  author = "Andrew W. Appel",
  title = "Simple Generational Garbage Collection and Fast Allocation",
  journal = "Software---Practice {\&} Experience",
  year=1989,
  month="February",
  volume="19",
  number="2",
  pages="171--183"}

@Article{goodenough:exception,
  author =       "John B. Goodenough",
  title =        "Exception Handling: Issues and a Proposed Notation",
  journal =      "Communications of the ACM",
  volume =       "18",
  number =       "12",
  pages =        "683--696",
  month =        dec,
  year =         "1975",
  refs =         "26",
  checked =      "19940905",
  keywords =     "multilevel exit, goto statement, error conditions,
                 structured programming, ON conditions, programming
                 languages, exception handling",
  abstract =     "This paper defines exception conditions, discusses the
                 requirements exception handling language features must
                 satisfy, and proposes some new language features for
                 dealing with exceptions in an orderly and reliable way.
                 The proposed language features serve to highlight
                 exception handling issues by showing how deficiencies
                 in current approaches can be remedied.",
  sjb =          "\begin{quote} \ldots. Specifically exceptions are
                 used: \begin{itemize} \item to permit dealing with an
                 operation's impending or actual failure. Two types of
                 failure are of interest: range failure, and domain
                 failure. \item to indicate the significance of a valid
                 result or the circumstances under which it was
                 obtained. \item to permit an invoker to {\em monitor}
                 an operation, e.g. to measure computational progress or
                 to provide additional information and guidance should
                 certain conditions arise. \end{itemize} The value of
                 making this classification of exception uses is the
                 insight it gives into the need for various
                 exception-handling language capabilities. \end{quote}
                 Goes on to describe methods of representing exception
                 handlers: subroutines, labels, status variables,
                 object-oriented exception handlers, handler setup
                 calls, PL/I ON conditions. Describes an extension to
                 PL/I where exception handlers can be attached to
                 individual expressions. Also discusses whether handler
                 blocks/procedures should indicate the exceptions that
                 they deal with and/or raise and what to do with default
                 exception handlers and exception handling
                 hierarchies.",
}

@Article{drew:exception,
  author =       "Steven J. Drew and K. John Gough",
  title =        "Exception handling: expecting the unexpected",
  journal =      "Computer Languages",
  volume =       "20",
  number =       "2",
  pages =        "69--87",
  month =        may,
  year =         "1994",
  coden =        "COLADA",
  ISSN =         "0096-0551",
  bibdate =      "Tue Mar 25 14:04:06 MST 1997",
  affiliation =  "Queensland Univ of Technology",
  affiliationaddress = "Queensland, Aust",
  classcodes =   "C6130 (Data handling techniques); C6140D (High level
                 languages)",
  classification = "723.1; 723.1.1; 723.2; 921.6",
  corpsource =   "Dept. of Comput. Sci., Queensland Univ. of Technol.,
                 Brisbane, Qld., Australia",
  journalabr =   "Comput Lang",
  keywords =     "Codes (symbols); comprehensibility; Computer operating
                 systems; Computer programming languages; Data handling;
                 Data structures; Error correction; exception handling;
                 Exception handling; high level languages; languages;
                 Mathematical models; Object oriented programming;
                 program; Program comprehensibility; Program
                 reliability; Program robustness; programming;
                 programming paradigm; Programming theory; reliability;
                 reviews; robustness",
  treatment =    "G General Review; P Practical",
}

@book{meyer:object,
  author="Bertrand Meyer",
  title="Object-Oriented Software Construction",
  publisher="Prentice Hall International", address="London",
  year=1988
}

@book{meyer:eiffel,
  author="Bertrand Meyer",
  title="{Eiffel}: The Language",
  publisher="Prentice Hall International", address="London",
  year=1992
}

@Article{gehani:exceptional,
  author =       "Narain H. Gehani",
  title =        "Exceptional {C} or {C} with Exceptions",
  journal =      spe,
  volume =       "22",
  number =       "10",
  pages =        "827--848",
  month =        oct,
  year =         "1992",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  acknowledgement = ack-nhfb,
}

@TechReport{reppy:asynchronous,
  bibdate =      "October 14, 1993",
  type =         "Technical Report",
  number =       "TR90-1144",
  title =        "Asynchronous Signals is Standard {ML}",
  year =         "1990",
  month =        aug,
  institution =  "Cornell University, Computer Science Department",
  pages =        "18",
  author =       "John H. Reppy",
  abstract =     "We describe the design, implementation and use of a
                 mechanism for handling asynchronous signals, such as
                 user interrupts, in the New Jersey implementation of
                 standard ML. Providing this kind of mechanism is a
                 necessary requirement for the development of real-world
                 application programs. Our mechanism uses first-class
                 continuations to represent the execution state at the
                 time at which a signal occurs. It has been used to
                 support pre-emptive scheduling in concurrency packages
                 and for forcing break-points in debuggers, as well as
                 for handling user interrupts in the SML/NJ interactive
                 environment.",
  language =     "English",
}

@book{lindholm:java,
  author =       "Tim Lindholm and Frank Yellin",
  title =        "The {Java} Virtual Machine Specification",
  publisher =    "Ad{­d}i{­s}on-Wes{­l}ey",
  address =      "Reading, MA, USA",
  pages =        "xvi + 475",
  month =        jan,
  year =         "1997",
  ISBN =         "0-201-63452-X",
  LCCN =         "QA76.73.J38L56 1997",
  bibdate =      "Thu Aug 21 09:04:52 MDT 1997",
  price =        "US\$36.53",
  series =       "The Java Series",
  url =          "http://www.aw.com/cp/javaseries.html",
  acknowledgement = ack-nhfb,
  dimensions =   "9.20in x 7.36in x 1.03in",
  keywords =     "Internet (Computer network); Java (Computer program
                 language); Java (computer program language);
                 programming languages (electronic computers); systems;
                 virtual computer; Virtual computer systems",
  lccnalt =      "96-015897",
}

@Article{hall:maximizing,
  author =       "Mary W. Hall and Jennifer M. Anderson and Saman P.
                 Amarasinghe and Brian R. Murphy and Shih-Wei Liao and
                 Edouard Bugnion and Monica S. Lam",
  title =        "Maximizing multiprocessor performance with the {SUIF}
                 compiler",
  journal =      "Computer",
  volume =       "29",
  number =       "12",
  pages =        "84",
  month =        dec,
  year =         "1996",
  coden =        "CPTRB4",
  ISSN =         "0018-9162",
  bibdate =      "Mon Jan 6 14:08:32 MST 1997",
  acknowledgement = ack-nhfb,
}

@unpublished{george:mlrisc,
  author="Lal George",
  title="{MLRISC}: Customizable and Reusable Code Generators ",
  note="Unpublished report available from http://www.cs.bell-labs.com/~george/",
  year="1996"}

@inproceedings{franz:beyond,
  month=oct,
  pages="33-38",
  author="Michael Franz",
  editor="S. Lobodzinski and I. Tomek",
  title="Beyond {Java}: An Infrastructure for High-Performance Mobile Code on
        the {World Wide Web}",
  publisher="Association for the Advancement of Computing in Education",
  booktitle="Proceedings of WebNet'97, World Conference of the WWW, Internet, and Intranet",
  year="1997"}

@article{franz:slim,
  author =       "Michael Franz and Thomas Kistler",
  title =        "Slim binaries",
  journal =      "Communications of the ACM",
  volume =       "40",
  number =       "12",
  pages =        "87--94",
  month =        dec,
  year =         "1997",
  coden =        "CACMA2",
  ISSN =         "0001-0782",
  bibdate =      "Wed Dec 3 16:44:17 MST 1997",
  url =          "http://www.acm.org:80/pubs/citations/journals/cacm/1997-40-12/p87-franz/",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; languages; performance",
  subject =      "{\bf D.2.7} Software, SOFTWARE ENGINEERING,
                 Distribution, Maintenance, and Enhancement,
                 Portability. {\bf D.2.2} Software, SOFTWARE
                 ENGINEERING, Design Tools and Techniques, Modules and
                 interfaces. {\bf E.4} Data, CODING AND INFORMATION
                 THEORY, Data compaction and compression. {\bf D.2.7}
                 Software, SOFTWARE ENGINEERING, Distribution,
                 Maintenance, and Enhancement, Extensibility**. {\bf
                 D.3.4} Software, PROGRAMMING LANGUAGES, Processors.",
}

@InProceedings{liskov:argus,
  author =       "Barbara Liskov and Dorothy Curtis and Paul Johnson and
                 Robert Scheifler",
  title =        "Implementation of {Argus}",
  booktitle =    "Proceedings of the 11th ACM Symposium on Operating
                 Systems Principles",
  pages =        "111--122",
  month =        "11",
  year =         "1987",
  note =         "Published in ACM Operating Systems Review Vol.21, No.5",
  abstract =     "Argus is a programming language and system developed
                 to support the construction and execution of
                 distributed programs. This paper describes the
                 implementation of Argus, with particular emphasis on
                 the way we implement atomic actions, because this is
                 where Argus differs most from other implemented
                 systems. The paper also discusses the performance of
                 Argus. The cost of actions is quite reasonable,
                 indicating that action systems like Argus are
                 practical.",
  abstract2 =    "Comment 1 by schlenk, Mon Aug 15 15:12:42 1988 The
                 Argus prototype is implemented on top of UNIX. For each
                 guardian a process is created. Each handler call
                 creates a new thread within this UNIX process. Threads
                 are implemented as a state vector and may be preempted
                 at procedure calls. A new protocol similiar to UDP
                 (called ACP) is used for remote handler calls. Actions
                 are serialized by classifying them as reader or writer
                 and strict two phase locking. Transactions generate new
                 object (guardian) versions in volatile memory, which
                 are written to stable storage whenever the top level
                 transaction commits. This paper shows how systems like
                 Argus can be implemented on top of UNIX without
                 extensive modifications of the kernel. The only kernel
                 support is ACP.",
}

@article{hanson:machine,
  author =       "D. R. Hanson and M. Raghavachari",
  title =        "A Machine-independent Debugger",
  journal =      spe,
  volume =       "26",
  number =       "11",
  pages =        "1277--1299",
  month =        nov,
  year =         "1996",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  bibdate =      "Sat Nov 30 11:44:44 MST 1996",
  acknowledgement = ack-nhfb,
}

@inproceedings{linton:evolution,
  month="June",
  booktitle=susenix, address="Anaheim, CA",
  pages="211--220",
  where="filed with reprints",
  author="Mark A. Linton",
  title="The Evolution of {Dbx}",
  annote="A self-congratulatory and essentially annoying paper.
Lacking in detail where detail would be most useful, e.g.
\begin{quote}
It took three attempts at writing the [name resolution] algorithm before all 
the cases were recognized and handled correctly.  The problem was not so much
getting the implementation correct as understanding all the possible cases.
\end{quote}
and not one more word on {\em that} subject.
Reports on the organization of dbx into different modules.
\par
Another area where more detail would be welcome is in the ``Breakpoints
and tracing'' section, where he mentions that using internal breakpoints
to implement high-level functions (like call/return tracing) required
``a major overhaul of event management.''
An example event representation is given but without enough detail to reuse it.
\par
The self-congratulatory part of the paper talks about the ``stabstring''
hack used to represent source-level type information.
\par
Claims ports to 7~different architectures costing roughly one week per port.
The organization has ``bent'' slightly with each new port, but it has never
needed a major restructuring.
\par
Future directions talk about creating a debugging server for use by
e.g.~an interactive debugger, a performance monitor, and checkpointing.",
  year="1990",
  keywords="debugging"}

@article{homer:independent,
  author =       "William Homer and Richard Schooler",
  title =        "Independent Testing of Compiler Phases Using a Test
                 Case Generator",
  journal =      "Soft­ware\emdash Prac­tice and Experience",
  volume =       "19",
  number =       "1",
  pages =        "53--62",
  month =        jan,
  year =         "1989",
  coden =        "SPEXBL",
  ISSN =         "0038-0644",
  bibdate =      "Sat May 31 13:36:16 MDT 1997",
  acknowledgement = ack-nhfb,
  annote="only mildly interesting",
}

@techreport{leroy:zinc,
title = "The {ZINC} Experiment: an economical implementation of the {ML} language",
author = "Xavier Leroy",
number= "No. 117",
Institution="INRIA",
month="February",
annote="Lots of cool stuff.  Would love to see an up-to-date version.",
year="1990"}

@Article{Richard:1977:RLD,
  author =       "F. Richard and H. F. Ledgard",
  title =        "A reminder for language designers",
  journal =      "ACM SIG{­}PLAN Notices",
  annote = "A series of suggestions for those about to commit language design.
            Quite good, and one of the few places you can find suggestions
            about syntax.",
  volume =       "12",
  number =       "12",
  pages =        "73--82",
  month =        dec,
  year =         "1977",
  coden =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Sat Apr 25 11:46:37 MDT 1998",
  acknowledgement = ack-nhfb,
  classification = "C6140D (High level languages)",
  corpsource =   "Computer and Information Sci. Dept., Univ. of
                 Massachusetts, Amherst, MA, USA",
  keywords =     "design principles; language; procedure oriented
                 languages; UTOPIA 84",
  treatment =    "G General Review; P Practical",
}

@article{landin:next,
  where="filed with reprints",
Author = "P. J. Landin",
Title = "The next 700 programming languages",
Journal = CACM,
Volume =  9,
Number = 3,
Pages =  "157-66",
Year = 1966,
annote="Very interesting article presaging much design of functional languages.
  Referred to me as a source of the offside rule, but also proposed the idea of
  full and core languages, and making each function take exactly one argument,
  which is sometimes a tuple (called a list in the paper, and I've taken slight 
  liberties).  
  Clean ideas and well written, so of more than mere historical interest.",

}

@inproceedings{cockburn:towards,
  author="Andy Cockburn and Neville Churcher",
  where="filed with reprints",
  title="Towards Literate Tools for Novice Programmers",
  booktitle="Australasian Computer Science Education Conference ACSE'97",
  address="Melbourne, Australia",
  month=jul, year="1997", pages="107-116",
  organization="ACM Press",
  annote="Students have built neat tools on top of noweb.",
}

@InCollection{wetherell:trac,
  author =       "Wetherell",
  title =        "Off the Beaten {TRAC}, or... Building a {TRAC}
                 Interpreter",
  booktitle =    "Etudes for Programmers",
  publisher =    "?",
  pages =        "148--158",
  year =         "1975?",
}

@article{mooers:trac,
  author =       "Calvin N. Mooers",
  title =        "{TRAC}, {A} Procedure-Describing Language for the
                 Reactive Typewriter",
  journal =      "Communications of the ACM",
  volume =       "9",
  number =       "3",
  pages =        "215--219",
  month =        mar,
  year =         "1966",
  coden =        "CACMA2",
  ISSN =         "0001-0782",
  bibdate =      "Mon Feb 12 14:33:51 1996",
  where="filed with reprints",
  annote="Of mostly historical interest, especially to users of Freemacs, whose 
          macro language was MINT (MINT Is Not TRAC).  Low-level details, but little
          insight.  Seems to have spawned several other papers, however.",
}


@InCollection{Mooers68,
  author =       "Calvin N. Mooers",
  title =        "How Some Fundamental Problems Are Treated in the
                 Design of the {TRAC} Language",
  booktitle =    "Symbol Manipulation Languages, Techniques",
  publisher =    "North-Holland",
  pages =        "178--190",
  year =         "1968",
}

@techreport{pettersson:simulating,
  author = "M Pettersson",
  title = "Simulating tail calls in {C}",
  institution = "Department of Computer Science, Linkoping University",
  year = "1995"
}

@TechReport{bartlett:scheme,
  author = "Joel F. Bartlett",
  title = "{SCHEME to C}: A Portable {Scheme-to-C} Compiler",
  number = "RR 89/1",
  institution = "DEC WRL",
  year = "1989"
}


@article{czech:optimal,
  author =       "Zbigniew J. Czech and George Havas and Bohdan S.
                 Majewski",
  journal =      "Information Processing Letters",
  title =        "An optimal algorithm for generating minimal perfect
                 hash functions",
  year =         "1992",
  abstract-url = "ftp://ftp.cs.uq.oz.au/pub/TECHREPORTS/department/INDEX",
  url =          "ftp://ftp.cs.uq.oz.au/pub/TECHREPORTS/department/TR0217.ps.Z",
  month =        oct,
  number =       "5",
  pages =        "257--264",
  volume =       "43",
  annote="Disappointing.  Appears to be of mostly theoretical interest.",
}

@Article{pescio:minimal,
  author =       "Carlo Pescio",
  title =        "Algorithm Alley: Minimal Perfect Hashing",
  journal =      "Dr. Dobb's Journal of Software Tools",
  volume =       "21",
  number =       "7",
  pages =        "101--102, 104, 116--117",
  month =        jul,
  year =         "1996",
  coden =        "DDJOEB",
  ISSN =         "1044-789X",
  bibdate =      "Mon Sep 2 09:09:39 MDT 1996",
  acknowledgement = ack-nhfb,
}

@article{appel:runtime,
  author="Andrew W. Appel",
  title="A Runtime System",
  keywords="ml sml-nj",
  annote="Describes the Standard ML of New Jersey runtime system.",
  Journal = lasc,
  Year = "1990",
  Volume = "3",
  Pages = "343-380"}

@MastersThesis{clausen:jvm,
  author = 	"Lars R. Clausen",
  title =	"Intensional and Extensional Aspects of {J}ava byte code",
  school = 	"DAIMI, Department of Computer Science, University of Aarhus",
  address =	"Aarhus, Denmark",
  year = 	1998,
  month = 	May,
  OPTnote =	"{\tt http://shasta.cs.uiuc.edu/\~{}lrclause/masters.ps}",
  keywords = "Compiling proper tail recursion and first-class
                  continuations, JVM"
}

@inproceedings{wakeling:mobile,
  author="D. Wakeling",
  title="Mobile {Haskell}: compiling lazy functional languages
         for the {Java} Virtual Machine",
  crossref = "plilp98"
}

@article{gutknecht:separate,
  author =       "J. Gutknecht",
  title =        "Separate Compilation in {Modula-2}: an Approach to
                 Efficient Symbol Files",
  where="filed with reprints",
  journal =      "IEEE Software",
  volume =       "3",
  number =       "6",
  pages =        "29--38",
  month =        nov,
  year =         "1986",
  coden =        "IESOEG",
  ISSN =         "0740-7459",
  bibdate =      "Sat Jan 25 07:35:26 MST 1997",
  acknowledgement = ack-nhfb,
  affiliationaddress = "Inst for Information, Zurich, Switz",
  classification = "723",
  journalabr =   "IEEE Software",
  keywords =     "artificial intelligence; computer operating systems;
                 computer programming languages --- Modular
                 Construction; computer programs; data processing ---
                 Data Structures; definition modules; knowledge-based

                 problem-solving; Modula-Prolog package; Program
                 Compilers; symbol file blocks",
  annote = "less than fascinating",
}

@techreport{kaashoek:code,
  month="???",
  where="filed with reprints",
  number="???",
  author="Frans KAashoek and Koen Langendoen",
  title="The Code Expander Generator",
  annote="Close to a reference manual, it
describes a two-level descriptoin that is combined by a generator so
a compiler can spray machine code directly into an object file.
The goal is fast compilation.",
  year="???",
  institution="Vrije Universiteit"}

@unpublished{leroy:tutorial98,
  month=jun,
  author="Philip Wadler and Xavier Leroy",
  title="Functional Programming Tutorial Notes",
  note="Given at PLDI '98.",
  year="1998"}

@unpublished{stroustrup:tutorial98,
  month=jun,
  author="Bjarne Stroustrup",
  title="{C$++$} Tutorial Notes ",
  note="Given at PLDI '98.",
  year="1998"}

@inproceedings{armstrong:development,
  author =       "Joe Armstrong",
  title =        "The development of {Erlang}",
  pages =        "196--203",
  crossref = "icfp97",
  annote = "Recommended by Phil Wadler"
}

@article{mitchell:inference,
  author =       "John C. Mitchell",
  title =        "Type Inference with Simple Subtypes",
  journal =      "Journal of Functional Programming",
  year =         "1991",
  volume =       "1",
  number =       "3",
  month =        jul,
  pages =        "245--286",
  annote =       "39 references.",
}

@inproceedings{damas:principal,
Author = "Luis Damas and Robin Milner",
Title = "Principal Type-Schemes for Functional Programs",
Publisher = "ACM Press",address="New York",
BookTitle = popl82,
Pages =  "207-12",
Year = 1982,
keywords = "Main cite for Damas-Milner type inference"
}
@incollection{cardelli:type,
  author="Luca Cardelli",
  where="filed with reprints",
  title="Type Systems",
  booktitle="The Computer Science and Engineering Handbook",
  annote="Excellent summary of what
type systems are about and why.  Includes lots of sample type rules 
for fundamental language types.",
  address="Boca Raton, FL",
  chapter="103",
  pages="2208-2236",
  publisher="CRC Press",
  editor="Allen B. Tucker, Jr.",
  year="1997"}

@article{tanenbaum:jotto,
  pages="397-399",
  where="filed with reprints",
  author="Andrew S. Tanenbaum",
  title="A Heuristic for Playing {Jotto}",
  annote="Minimax strategy bests simple heuristic.",
  journal=spe,
  year="1973",
  volume="3"}

@article{lebling:zork,
  month=apr,
  pages="51-59",
  where="filed with reprints",
  number="4",
  author="P. David Lebling and Marc S. Blank and Timothy A. Anderson",
  title="{Zork}: A Computerized Fantasy Simulation Game",
  keywords="infocom",
  annote="Not very interesting if you're
at all familiar with Zork or the general genre.  What little technical
detail there is, is hard to follow.  You're better off studying Inform.",
  journal="IEEE Computer",
  year="1979",
  volume="12"}

@inproceedings{onder:automatic,
  month=may,
  address="Chicago, IL",
  pages="80-89",
  where="filed with reprints",
  author="Soner {{\"O}nder} and Rajiv Gupta",
  title="Automatic Generation of Microarchitecture Simulators",
  booktitle="               IEEE International Conference on Computer Languages",
  annote="Big, monolithic, and verbose.
They have failed to learn from SLED (where did I go wrong?).  Still,
looks like they generate a very interesting system from the descriptions.",
  editor="               IEEE International Conference on Computer Languages",
  year="1998"}

@article{appel:ssa,
  month=apr,
  pages="17-20",
  where="shelved with notices",
  number="4",
  author="Andrew W. Appel",
  title="{SSA} is Functional Programming",
  annote="Excellent short tutorial on SSA.",
  journal=sigplan,
  year="1998",
  volume="33"}

@inproceedings{alpern:detecting,
  author =       "Bowen Alpern and Mark N. Wegman and F. Kenneth
                 Zadeck",
  title =        "Detecting Equalities of Variables in Programs",
  booktitle =    popl88,
  address =      "San Diego, California",
  month =        jan,
  pages =        "1--11",
  year =         "1988",
  keywords =     "COMPILER, CODE GENERATION, OPTIMIZATION, INTERMEDIATE
                 CODE",
}

@inproceedings{rosen:global,
  author =       "Barry K. Rosen and Mark N. Wegman and F. Kenneth Zadeck",
  title =        "Global Value Numbers and Redundant Computations",
  booktitle =    popl88,
  address =      "San Diego, California",
  month =        jan,
  pages =        "12--27",
  year =         "1988",
  keywords =     "COMPILER, CODE GENERATION, OPTIMIZATION, INTERMEDIATE
                 CODE",
}

@inproceedings{hennessy:exception,
  author =       "John Hennessy",
  title =        "Program Optimization and Exception Handling",
  where="filed with reprints",
  booktitle =    popl81,
  address =      "Williamsburg, Virginia",
  organization = "ACM SIGACT-SIGPLAN",
  publisher =    "ACM Press",
  month =        jan,
  year =         "1981",
  pages =        "200--206",
}

                 composition. Each building block contributes code to
                 support a specific feature, such as numbers,
                 continuations, functions calls, or nondeterminism. The
                 result of composing some number of building blocks is a
                 parser, an interpreter, and a printer that support
                 exactly the expression forms and data types needed for
                 the combined set of features, and no more. The data
                 structures are organized as pseudomonads, a
                 generalization of monads that allows composition.
                 Functional composition of the building blocks implies
                 type composition of the relevant pseudomonads. Our
                 intent was that the Haskell type resolution system
                 ought to be able to deduce the appropriate data types
                 automatically. Unfortunately there is a deficiency in
                 current Haskell implementations related to recursive
                 data types: circularity must be reflected statically in
                 the type definitions. We circumvent this restriction by
                 applying a purpose-built program simplifier that
                 performs partial evaluation and a certain amount of
                 program algebra. We construct a wide variety of
                 interpreters in the style of Wadler (1990, 1992) by
                 starting with the building blocks and a page of
                 boilerplate code, writing three lines of code (one to
                 specify the building blocks and two to (redundantly)
                 specify type compositions), and then applying the
                 simplifier. The resulting code is acceptable Haskell
                 code. We have tested a dozen different interpreters
                 with various combinations of features. We discuss the
                 overall code structuring strategy, exhibit several
                 building blocks, briefly describe the partial
                 evaluator, and present a number of automatically
                 generated interpreters.",
  acknowledgement = ack-nhfb,
  affiliation =  "Thinking Machines Corp., Cambridge, MA, USA",
  classification = "C4210 (Formal logic); C6120 (File organisation);
                 C6150C (Compilers, interpreters and other processors)",
  keywords =     "Boiler-plate code; Building blocks; Continuations;
                 Data structures; Data types; Expression forms;
                 Functional composition; Functions calls; Haskell;
                 Interpreter building; Lisp-like languages; Monad
                 composition; Nondeterminism; Numbers; Parser; Partial
                 evaluation; Printer; Program algebra; Pseudomonads;
                 Purpose-built program simplifier; Recursive data types;
                 Type composition",
  thesaurus =    "Data structures; Partial evaluation [compilers];
                 Process algebra; Program interpreters",
}

@incollection{wadler:monads-for-fp,
  author =       "P. Wadler",
  title =        "Monads for functional programming",
  booktitle = "Advanced Functional Programming",
  editor = "J Jeuring and E Meijer",
  publisher = springer,
  series =      lncs,
  volume =       "925",
  year =         "1995",
  ISSN =         "0302-9743",
}


@Article{moggi:notions,
  author =       "Eugenio Moggi",
  title =        "Notions of Computation and Monads",
  where="filed with reprints",
  journal =      "Information and Computation",
  year =         "1991",
  volume =       "93",
  number =       "1",
  pages =        "55--92",
  annote =         "Proposes using the category-theoretic notion of {\em
                 monad} as a means of parametrizing programming-language
                 semantics by a notion of value-producing computation.
                 This proposal has been widely taken up in research on
                 adding state constructs to functional programming
                 languages.",
  abstract-url = "http://theory.doc.ic.ac.uk:80/tfm/papers/MoggiE/",
  url =          "http://theory.doc.ic.ac.uk:80/tfm/papers/MoggiE/ic91.ps.gz",
}

@inproceedings{detlefs:debugging,
  title =        "Debugging Storage Management Problems in
                 Garbage-Collected Environments",
  author =       "David L. Detlefs and Bill Kalsow",
  where="filed with reprints",
  annote="motivates and describes the storage debugging stuff from SRC Modula-3",
  month =        jun,
  publisher =    "USENIX Association",
  year =         "1995",
  url =          "ftp://gatekeeper.dec.com/pub/misc/detlefs/detlefs-coots95.ps",
  abstract =     "Garbage collection does not solve all storage
                 management problems; programs allocate too much
                 garbage, requiring excess collection, and may retain
                 too much storage, causing heaps to grow too large. This
                 paper discusses these problems and presents tools
                 implemented in the SRC Modula-3 system that help solve
                 them.",
  booktitle =    "Proceedings of the {USENIX} Conference on
                 Object-Oriented Technologies ({COOTS})",
  publisher =    "USENIX",
  address =      "Berkeley, CA, USA",
  ISBN =         "1-880446-71-5",
  pages =        "69--82",
  day =          "26--29",
  affiliation =  "Digital Equipment Corporation, Systems Research
                 Center",
  keywords =     "object-oriented technologies; COOTS; USENIX",
  searchkey =    "su:usenix",
}

@book{appel:modern-java,
  author =       "Andrew W. Appel",
  title =        "Modern Compiler Implementation in {Java}",
  publisher =    "Cambridge University Press",
  address =      "Cambridge, UK",
  pages =        "x + 548",
  month =        jan,
  year =         "1998",
  ISBN =         "0-521-58388-8",
  LCCN =         "QA76.73.J38A65 1998",
  bibdate =      "Wed Jun 17 22:05:06 MDT 1998",
  price =        "US\$55",
  url =          "http://193.60.94.193/scripts/webbook.asp?isbn=0521583888",
  publisher-url = "http://www.cup.org",
}

@book{appel:modern,
  author =       "Andrew W. Appel",
  title =        "Modern Compiler Implementation",
  publisher =    "Cambridge University Press",
  address =      "Cambridge, UK",
  year =         "1998",
  note = "Available in three editions: C, Java, and ML",

}

@Article{kelsey:revised,
  author =       "Richard Kelsey and William Clinger and Jonathan Rees",
  title =        "Revised$^5$ Report on the Algorithmic Language {Scheme}",
  journal =      sigplan,
  volume =       "33",
  number =       "9",
  pages =        "26--76",
  month =        sep,
  year =         "1998",
  coden =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Tue Sep 15 17:01:28 1998",
  xxx =         "With H. Abelson, N. I. {Adams, IV}, D. H. Bartley, G.
                 Brooks, R. K. Dybvig, D. P. Friedman, R. Halstead, C.
                 Hanson, C. T. Haynes, E. Kohlbecker, D. Oxley, K. M.
                 Pitman, G. J. Rozas, G. L. {Steele Jr.}, G. J.
                 Sussman, and M. Wand.",
  acknowledgement = ack-nhfb,
}

Article{Anonymous:1997:LAD,
  author =       "Anonymous",
  title =        "{Linux} Apprentice: {DDD} --- Database Display
                 Debugger",
  journal =      "Linux Journal",
  volume =       "42",
  pages =        "??--??",
  month =        oct,
  year =         "1997",
  coden =        "LIJOFX",
  ISSN =         "1075-3583",
  bibdate =      "Fri Oct 9 08:35:26 MDT 1998",
  acknowledgement = ack-nhfb,
}

@Article{zeller:ddd,
  author =       "Andreas Zeller and Dorothea Lütkehaus",
  journal =      sigplan,
  title =        "{DDD} --- {A} Free Graphical Front-End for {UNIX} Debuggers",
  year =         "1995",
  abstract-url = "http://www.cs.tu-bs.de/softech/papers/tr-95-07_e.html",
  url =          "ftp://ftp.ips.cs.tu-bs.de/pub/local/softech/papers/tr-95-07.ps.gz",
  keywords =     "Software Engineering, Debugging Aids, Diagnostics,
                 User Interfaces; graphical user interface to GDB and
                 DBX",
  month =        dec,
  number =       "12",
  volume =       "30",
}

@article{bates:debugging,
  title =        "Debugging Heterogeneous Distributed Systems Using
                 Event-Based Models of Behavior",
  author =       "Peter C. Bates",
  journal =      "ACM Transactions on Computer Systems",
  pages =        "1--31",
  month =        feb,
  year =         "1995",
  volume =       "13",
  number =       "1",
}

@Article{garcia-molina:debugging,
  author =       "Hector Garcia-Molina and Germano, Jr., Frank and Walter H.
                 Kohler",
  title =        "Debugging a Distributed Computing System",
  journal =      "IEEE Transactions on Software Engineering",
  volume =       "SE-10",
  number =       "2",
  month =        mar,
  year =         "1984",
  pages =        "210--219",
  keywords =     "Bottom-up debugging; debugging; distributed computing
                 system; monitoring; tracing; two-phase debugging",
  abstract =     "In this paper we discuss the issues involved in
                 debugging a distributed computing system. We describe
                 the major differences between debugging a distributed
                 system and debugging a sequential program. We suggest a
                 methodology for distributed debugging, and we propose
                 various tools or aids.",
  bibdate =      "Thu Feb 28 15:14:29 1985",
}

@article{cuny:ariadne,
  author =       "Janice E. Cuny and George Forman and Alfred Hough and
                 Joydip Kundu and Calvin Lin and Lawrence Snyder",
  title =        "The {Ariadne} Debugger: Scalable Application of
                 Event-Based Abstraction",
  pages =        "85--95",
  ISBN =         "0-89791-633-6",
  editor =       "Barton P. Miller and Charles McDowell",
  journal =    "Proceedings of the ACM/ONR Workshop on Parallel and
                 Distributed Debugging, \emph{in} " # sigplan,
  month =        dec,
  volume =       "28", number=12, 
  publisher =    "ACM Press",
  address =      "New York, NY, USA",
  year =         "1993",
}

@inproceedings{cheng:portable,
  author =       "Doreen Cheng and Robert Hood",
  title =        "A portable debugger for parallel and distributed
                 programs",
  where="filed with reprints",
  editor =       "{IEEE}",
  booktitle =    "Proceedings of Supercomputing '94",
  publisher =    "IEEE Computer Society Press",
  address =      "Silver Spring, MD",
  ISBN =         "0-8186-6607-2, 0-8186-6605-6, 0-8186-6606-4",
  ISSN =         "1063-9535",
  series =       "Supercomputing",
  pages =        "723--732",
  year =         "1994",
  bibdate =      "Sun Dec 22 10:20:45 MST 1996",
  acknowledgement = ack-nhfb,
  affiliation =  "Comput. Sci. Corp., NASA Ames Res. Center, Moffett
                 Field, CA, USA",
  classification = "C5620L (Local area networks); C6110P (Parallel
                 programming); C6150G (Diagnostic, testing, debugging
                 and evaluating systems); C6150N (Distributed systems
                 software)",
  keywords =     "Client portability; Client server interaction; Client
                 server model; Debugger code; Distributed programs;
                 Message passing implementations; Message passing
                 library; Message passing programs; MPI programs;
                 Parallel programs; Portable debugger; Process
                 abstractions; PVM; Server components; Tool generated
                 code; User interface",
  thesaurus =    "Client-server systems; Message passing; Parallel
                 programming; Program debugging; Software portability",
}

@inproceedings{hood:accomodating,
  author =       "Robert Hood and Doreen Cheng",
  title =        "Accomodating Heterogeneity in a Debugger - {A}
                 Client-Server Approach",
  where="filed with reprints",
  pages =        "252--253",
  ISBN =         "0-8186-6935-7",
  editor =       "Hesham El-Rewini and Bruce D. Shriver",
  booktitle =    "Proceedings of the 28th Annual Hawaii International
                 Conference on System Sciences. Volume 2: Software
                 Technology",
  month =        jan,
  publisher =    "IEEE Computer Society Press",
  address =      "Los Alamitos, CA, USA",
  year =         "1995",
}

@inproceedings{hood:p2d2,
  month=may,
  address="New York, NY",
  where="in online archive and with reprints",
  author="Robert Hood",
  title="The {\emph{p2d2}} Project: Building a Portable Distributed Debugger",
  publisher="ACM",
  booktitle="SIGMETRICS Symposium on Parallel and Distributed Tools",
  year="1996"}


@article{may:panorama,
  author =       "John May and Francine Berman",
  title =        "Panorama: {A} Portable, Extensible Parallel Debugger",
  pages =        "96--106",
  ISBN =         "0-89791-633-6",
  editor =       "Barton P. Miller and Charles McDowell",
  journal =    "Proceedings of the ACM/ONR Workshop on Parallel and
                 Distributed Debugging, \emph{in} " # sigplan,
  month =        dec,
  volume =       "28", number=12, 
  publisher =    "ACM Press",
  address =      "New York, NY, USA",
  year =         "1993",
}

@inproceedings{pollock:debugging,
  author =       "Lori L. Pollock and Mary Bivens and Mary Lou Soffa",
  where="filed with reprints",
  booktitle =    "International Symposium on Software Testing and Analysis",
  title =        "Debugging Optimized Code Via Tailoring",
  year =         "1994",
  url =          "ftp://www.eecis.udel.edu/pub/people/pollock/debugopt.ps",
  month =        aug,
}

@article{copperman:debugging,
  author =       "Max Copperman",
  title =        "Debugging Optimized Code Without Being Misled",
  journal = toplas,
  volume =       "16",
  number =       "3",
  pages =        "387--427",
  month =        may,
  year =         "1994",
  coden =        "ATPSDT",
  ISSN =         "0164-0925",
  bibdate =      "Fri Jan 5 07:58:42 MST 1996",
  url =          "http://www.acm.org/pubs/toc/Abstracts/0164-0925/177517.html",
  abstract =     "Correct optimization can change the behavior of an
                 incorrect program; therefore at times it is necessary
                 to debug optimized code. However, optimizing compilers
                 produce code that impedes source-level debugging.\par
                 Optimization can cause an inconsistency between where
                 the user expects a breakpoint to be located and the
                 breakpoint's actual location. This article describes a
                 mapping between statements and breakpoint locations
                 that ameliorates this problem. The mapping enables
                 debugger behavior on optimized code that approximates
                 debugger behavior on unoptimized code sufficiently
                 closely for the user to use traditional debugging
                 strategies.\par Optimization can also cause the value
                 of a variable to be {\em noncurrent}---to differ from
                 the value that would be predicted by a close reading of
                 the source code. This article presents a method of
                 determining when this has occurred, and shows how a
                 debugger can describe the relevant effects of
                 optimization. The determination method is more general
                 than previously published methods; it handles global
                 optimization and many flow graph transformations, and
                 it is not tightly coupled to optimizations performed by
                 a particular compiler. Necessary compiler support is
                 also described.",
  acknowledgement = ack-nhfb # " and " # ack-pb,
  keywords =     "performance; verification",
  subject =      "{\bf D.2.5}: Software, SOFTWARE ENGINEERING, Testing
                 and Debugging, Debugging aids. {\bf D.2.6}: Software,
                 SOFTWARE ENGINEERING, Programming Environments. {\bf
                 D.3.4}: Software, PROGRAMMING LANGUAGES, Processors,
                 Code generation. {\bf D.3.4}: Software, PROGRAMMING
                 LANGUAGES, Processors, Compilers. {\bf D.3.4}:
                 Software, PROGRAMMING LANGUAGES, Processors,
                 Optimization.",
}

@article{adl-tabatabai:source-level,
  author =       "Ali-Reza Adl-Tabatabai and Thomas Gross",
  title =        "Source-Level debugging of Scalar Optimized Code",
  journal="ACM SIGPLAN '96 Conference on Programming Language Design
	   and Implementation, {\em in} SIGPLAN Notices",
  volume =       "31",
  number =       "5",
  pages =        "33--43",
  month =        may,
  year =         "1996",
  coden =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Fri Feb 14 17:00:56 MST 1997",
  acknowledgement = ack-nhfb,
  affiliation =  "Sch. of Comput. Sci., Carnegie Mellon Univ.,
                 Pittsburgh, PA, USA",
}

@book{muchnick:advanced,
  author =       "Steven S. Muchnick",
  title =        "Advanced compiler design and implementation",
  publisher =    "Morgan Kaufmann",
  address =      "San Mateo, CA",
  pages =        "1004",
  year =         "1997",
  ISBN =         "1-55860-320-4",
  LCCN =         "QA76.76.C65M8 1997",
  bibdate =      "Thu Sep 11 07:11:02 1997",
  price =        "US\$89.95",
}

@book{reiss:field,
  address="Boston, MA",
  where="on my shelves",
  author="Steven P. Reiss",
  series="The Kluwer International Series in Engineering and Computer Science",
  title="The {FIELD} Programming Environment: A Friendly Integrated Environment for Learning and Development",
  publisher="Kluwer Academic Publishers",
  year="1995"}

@manual{dwarf93,
organization="Unix International",
title="{DWARF} Debugging Information Format",
address="Parsippany, NJ", month=jul, year=1993
}

@article{netzer:optimal,
  author =       "R. H. B. Netzer and M. H. Weaver",
  title =        "Optimal Tracing and Incremental Reexecution for
                 Debugging Long-Running Programs",
  journal =      pldi94 # "{\em in}" # SIGPLAN,
  volume =       "29",
  number =       "6",
  pages =        "313--325",
  year =         "1994",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Sat Dec 30 17:26:15 MST 1995",
}

@article{edgeman:random,
  author =       "Rick L. Edgeman and Paul W. Abrahams and Francis M.
                 Sand and Crawford, Jr., James",
  title =        "Random Number Generators and the Minimal Standard",
  journal =      "Communications of the ACM",
  volume =       "32",
  number =       "8",
  pages =        "1020--1024",
  month =        aug,
  year =         "1989",
  coden =        "CACMA2",
  ISSN =         "0001-0782",
  mrclass =      "65C10 (11K45)",
  mrnumber =     "91h:65013",
  bibdate =      "Tue Dec 26 13:35:07 1995",
  acknowledgement = ack-nhfb,
}

@article{carta:two,
  author =       "David G. Carta",
  title =        "Two Fast Implementations of the ``Minimal Standard''
                 Random Number Generator",
  journal =      "Communications of the ACM",
  volume =       "33",
  number =       "1",
  pages =        "87--88",
  month =        jan,
  year =         "1990",
  coden =        "CACMA2",
  ISSN =         "0001-0782",
  bibdate =      "Tue Jan 28 14:46:37 1997",
  url =          "http://www.acm.org/pubs/toc/Abstracts/0001-0782/76379.html",
  abstract =     "Although superficially time-consuming, on 32-bit
                 computers the minimal standard random number generator
                 can be implemented with surprising economy.",
  acknowledgement = ack-nhfb,
  keywords =     "algorithms; experimentation; theory",
  subject =      "{\bf G.3}: Mathematics of Computing, PROBABILITY AND
                 STATISTICS, Random number generation. {\bf G.4}:
                 Mathematics of Computing, MATHEMATICAL SOFTWARE,
                 Efficiency.",
}

@article{goguen:initial,
  author =       "J. A. Goguen and J. W. Thatcher and E. G. Wagner and
                 J. B. Wright",
  title =        "Initial algebra semantics and continuous algebras",
  where="filed with reprints",
  journal =      "Journal of the ACM",
  volume =       "24",
  number =       "1",
  pages =        "68--95",
  month =        jan,
  year =         "1977",
  refs =         "77",
  checked =      "19940609",
  source =       "Dept. Library",
  keywords =     "algebraic semantics, algebras, free algebras,
                 continuous algebras, posets, programming language
                 semantics, flow diagrams, syntax directed translation,
                 solutions of equations, initial algebra",
  abstract =     "Many apparently divergent approaches to specifying
                 formal semantics of programming languages are
                 applications of initial algebra semantics. In this
                 paper an overview of initial algebra semantics is
                 provided. The major technical feature is an initial
                 continuous algebra which permits unified algebraic
                 treatment of iterative and recursive semantic features
                 in the same framework as more basic operations.",
  annote = "Good paper on fundamentals",
  sjb =          "In describing initial algebras, the paper also
                 describes their relationship with many fields in CS,
                 such as syntax directed translation, denotational
                 semantics and attribute grammars.",
  reffrom =      "Reynolds:jacm:1977",
  reffrom =      "Anderson:Belz:Blum:fdopc:1978",
  reffrom =      "Goguen:fdopc:1978",
  reffrom =      "Damm:Fehr:Indermark:fdopc:1978",
  reffrom =      "Pepper:pc:1978",
  reffrom =      "Thatcher:Wagner:Wright:sdcg:1980",
  reffrom =      "Mosses:sdcg:1980",
  reffrom =      "Reynolds:sdcg:1980",
  reffrom =      "Sethi:acm:cc:1982",
  reffrom =      "Jourdan:acm:cc:1984",
  reffrom =      "Dosch:Moller:acm:lfp:1984",
  reffrom =      "Aasa:Petersson:Synek:acm:lfp:1988",
}


@Article{wadler:comprehending,
  author =       "Philip Wadler",
  title =        "Comprehending monads",
  journal =      "Mathematical Structures in Computer Science",
  pages =        "461--493",
  year =         "1992",
  volume =       "2",
  abstract =         "Category theorists invented {\em monads\/} in the
                 1960's to concisely express certain aspects of
                 universal algebra. Functional programmers invented {\em
                 list comprehensions\/} in the 1970's to concisely
                 express certain programs involving lists. This paper
                 shows how list comprehensions may be generalised to an
                 arbitrary monad, and how the resulting programming
                 feature can concisely express in a pure functional
                 language some programs that manipulate state, handle
                 exceptions, parse text, or invoke continuations. A new
                 solution to the old problem of destructive array update
                 is also presented. No knowledge of category theory is
                 assumed.",
}

@book{brown:writing
, author=    "P. J. Brown"
, title=     "Writing Interactive Compilers and Interpreters"
, publisher= "Wiley"
, year=      1979
, refs=      74
, pages=     265
, checked=   19971223
, source=    "Main Library, University of Manchester"
, sjb=       "A bit dated given its use of Basic, but nevertheless a
good hands on account of how to write an interactive
compiler/interpreter.  Does not spend any time on optimization and
code generation, suggests using a reverse polish form and interpreting
that and/or converting it to machine code.  Basic is used not because
it is considered the best language, rather because it is felt that
this language will be the most familiar to the intended audience.

In the discussion of the parser notes that Knuth~\cite{Knuth:spe:1971}
has shown that a high percentage of expressions used in real FORTRAN
programs consist of just one operand and no operators at all.  In a
recursive descent parser.  If the language has n levels of precedence,
this will result in n calls to parse it.  Suggests that an operator
precedence method can be more efficient and gives a simple example.

A {\em break-in} is the term used for interrupting an interactive
compiler when it is running in order to stop it doing whatever it is
doing, including running a user program.  The two obvious techniques
for implementing a {\em break-in} are via an {\em interrupt} or by
{\em polling}.  Points at~\cite{Heher:spe:1976} as an example of a
system that allows a user program to be stopped, some commands
executed to examine state and then have the user program resumed.
Lists some of the problems with both approaches and suggests a
synthesis in which the interrupt routine is inhibited for most of the
time and only enabled at safe points.

Suggests that two ends of the spectrum of compiler users are

\begin{itemize}
\item [Dr Spend] who wants his program to run as quickly as possible.
He is willing to sacrifice compilation speed and executable size in
order to gain speed.

\item [Mr Conn] who has a large program which he just wants to run
occasionally.  He is willing to sacrifice speed for space.
\end{itemize}

To support both types of users with one compiler requires and
adaptable compiler.  The compiler first translates the source program
into a compact internal language.  When the program is run the
compiler keeps a record of the number of times each statement is
executed and on the basis of this information the heavily executed
statements are translated into machine code.  This is called the {\em
mixed-code} approach to compilation -- note it is not clear from the
description whether the re-compilation is done during execution
(on-line) or as a separate process (off-line).  Suggests looking
at~\cite{Dakin:Poole:bcs:cj:1973},\cite{Dawson:bcs:cj:1973}
and~\cite{Ng:Cantoni:bcs:cj:1976}.  Notes
that~\cite{Hansen:Wulf:po:1976} apply a similar technique to the
levels of optimization attempted by a conventional compiler.

The process of translating a program as it runs is given the name {\em
dynamic compilation}.  It is specifically given to the process of
converting from the source language to the intermediate language and
then to machine code as the program is running.  That is, syntax and
static semantic errors are not located until the program is executed.
Therefore it is suggested that the a program in the source language is
first converted to the internal language.  It is this language which
is then the subject of compilation as the program runs.  Notes that
this allows some optimizations and checks to be performed that an
off-line compiler cannot support, for example checking for unassigned
variables at low cost (the check is done as part of the compilation
process, the resulting code runs at full speed) and values that are
constant at run-time can be propagated and special code generated.

Besides being more work for the compiler writer, notes that the {\em
mixed-code} and {\em dynamic-compilation} approach will result in Mr
Conn's program getting larger and larger as it is run, possibly to the
point where it will not fit in memory anymore ({\em less likely to
occur in these days of multi-Mb memories}).

Suggests using {\em throw-away compilation} to solve this problem.
That is code that has been compiled can be thrown away after it has
been executed since it can always be recreated from the internal
form.  No details are given of any algorithms to try and minimise the
amount of compilation versus space.  Suggests looking
at~\cite{Brown:spe:1976}, \cite{Brown:bcj:cj:1979},
\cite{Hammond:spe:1977} and \cite{VanDyke:hpj:1977}.

\begin{itemize}
\item The first deadly sin is {\em to code before you think}.
\item The second deadly sin is {\em to assume the user has all the
knowledge the compiler writer has}.
\item The third deadly sin is {\em not to write proper documentation}.
\item The fourth deadly sin is {\em to ignore language standards}.
\item The fifth deadly sin is {\em to treat error diagnosis as an
afterthought}.
\item The sixth deadly sin is {\em to equate the unlikely with the
impossible}.
\item The seventh deadly sin is {\em to make the encoding of the
compiler dependent on its data formats}.
\item The eighth deadly sin is {\em to sue numbers for objects that
are not numbers}.
\item The ninth deadly sin is {\em to pretent you are catering for
everyone at the same time}.
\item The tenth deadly sin is {\em to have no strategy for processing
break-ins}.
\item The eleventh deadly sin is {\em to rate the beauty of
mathematics above the usability of your compiler}.
\item The twelfth deadly sin is {\em to let any error go undetected}.
\item The thirteenth deadly sin is {\em to leave users to find the
errors in your compiler}.
\end{itemize}"
, reffrom=   Leong:Jodis:Sullivan:Jiang:DeMaine:ieee:tose:1990
}


@string{bcs:cj = "The Computer Journal"}
@string{hpj = "Hewlett Packard Journal"}



@article
{ Dawson:bcs:cj:1973
, author=   "J. L. Dawson"
, title=    "Combining interpretive code with machine code"
, journal=  bcs:cj
, volume=   16
, number=   3
, pages=    "216--219"
, month=    aug
, year=     1973
, refs=     1
, checked=  19980212
, source=   "Computer Science Library, University of Manchester"
, abstract= "Justification is provided for mixing interpretive code
and machine code in the same program, particularly in the output from
a compiler.  Three possible methods of implementation are described,
together with a comparison of their advantages and disadvantages.
Examples of the use of this technique are given."
, sjb=      "The justification is mainly the saving in program size.
The first two methods differ on whether the mixture of compiled and
interpretive code is done at the routine level or at the basic block
level (called a ``basic hunk'' in this paper).  The third method
involves using hardware traps i.e. a jump to an interpretive routine
generates a trap and the interpreter is then invoked by the trap
handler.  Contains the following interesting point :-

\begin{quote}
Barbieri and Morrisey~\cite{Barbieri:Morrissey:afcrl:1967} suggest a
method of compiling whereby all the code is initially interpretive.
As the program runs, the interpreter collects statistics of
instruction usage, and eventually those parts of the code which are
most frequently used can be converted to machine code.  The combined
machine code and interpretive code can then be run \ldots.
\end{quote}

The paper does not mention any actual implementation."
, reffrom=  Ng:Cantoni:bcs:cj:1976
, reffrom=  Brown:wici:1979
}


@article
{ Dakin:Poole:bcs:cj:1973
, author=   "R. J. Dakin and P. C. Poole"
, title=    "A mixed-code approach"
, journal=  bcs:cj
, volume=   16
, number=   3
, pages=    "219--222"
, month=    aug
, year=     1973
, refs=     5
, checked=  19980212
, source=   "Computer Science Library, University of Manchester"
, abstract= "This paper describes the development of a version of the
MITEM text editor in which heavily-used sections of code are obeyed
directly while other sections are generated into a pseudo-code which
is interpreted.  The main ideas underlying this work are adaptable
code generation, selective optimisation of run time and program space
in code generation and the use of mixed code.  A general mixed code
system promises substantial advantages for debugging and program
monitoring."
, sjb=      "Provides some storage requirements for direct,
interpretive and mixed versions of MITEM6 (portable text editor) for
the ICL 470: 36,240, 20,420 and 20,450 bytes.  Execution profiling of
the interpretive version showed that over 97 percent of the
instruction executions occurred in less than 10 percent of the code.
In a particular run more than half of the code was never executed at
all since not all facilities were used, e.g. error reporting.
Generating the mixed version involves marking those sections (whole
functions) which are to be executed directly.  This marking is done
externally by reference to fixed points in the code (presumably
function names) so that it is not necessary to alter the source code
itself.  Suggests that this could be automated so that all the user
has to do is select a point on a curve plotted from training runs to
decide how much code is direct and how much is interpretive."
, reffrom=  Ng:Cantoni:bcs:cj:1976
, reffrom=  Brown:wici:1979
}



@article
{ Ng:Cantoni:bcs:cj:1976
, author=   "T. S. Ng and A. Cantoni"
, title=    "Run time interaction with FORTRAN using mixed code"
, journal=  bcs:cj
, volume=   19
, number=   1
, pages=    "91--92"
, month=    feb
, year=     1976
, refs=     3
, checked=  19970118
, source=   "Computer Science Library, University of Manchester"
, abstract= "This paper describes an interpretive function generator,
COMPIL, for use with the PDP-11 FORTRAN COMPILER and Object Time
System.  The implementation used a ``mixed code'' approach, which
enables the exchange of run time for program space.  Other benefits
include improved debugging facilities and extended interactive
facilities such as the ability to define and link functions at run
time.  This latter feature is especially useful on the PDP-11 as
compilation and linking of function subprograms takes an appreciable
time."
, reffrom=  Brown:wici:1979
}



@article
{ Heher:spe:1976
, author=   "A. D. Heher"
, title=    "Some features of a real-time BASIC executive"
, journal=  spe
, volume=   6
, number=   3
, pages=    "387--391"
, year=     1976
, reffrom=  Brown:wici:1979
}


@article
{ Brown:spe:1976
, author=   "P. J. Brown"
, title=    "Throw-Away Compiling"
, journal=  spe
, volume=   6
, number=   3
, pages=    "423--433"
, year=     1976
, reffrom=  Turner:spe:1979
, reffrom=  Brown:bcs:cj:1979
, reffrom=  Brown:wici:1979
, reffrom=  Franz:plasa:1994
}



@article
{ Hammond:spe:1977
, author=   "J. Hammond"
, title=    "BASIC -- an evaluation of processing methods and a study
of some programs"
, journal=  spe
, volume=   7
, pages=    "697--711"
, year=     1977
, reffrom=  Brown:wici:1979
}


@article
{ VanDyke:hpj:30:1972
, author=   "Van Dyke, E. J."
, title=    "A dynamic incremental compiler for an interpretive language"
, journal=  hpj
, volume=   28
, number=   11
, pages=    "17--24"
, year=     1972
, reffrom=  Brown:wici:1979
}


@article
{ Brown:bcs:cj:1979
, author=   "P. J. Brown"
, title=    "Software methods for virtual storage of executable code"
, journal=  bcs:cj
, volume=   22
, pages=    "50--52"
, year=     1979
, refs=     10
, checked=  19971222
, source=   "Main Library, University of Manchester"
, abstract= "Virtual storage systems were originally based on swapping
to and from a disc or drum.  More recently, however, the same
techniques have been used in new areas, where the constraints imposed
by electro-mechanical devices do not apply. This necessitates a fresh
evaluation of storage management strategies.  An area where new
strategies may reap specially good rewards is the management of code
areas by software."
, sjb=      "Suggests performing paging of code and notes that the
basic block is a good unit of size since it mimimises wasted store."
, reffrom=  Brown:wici:1979
}



@InProceedings{steel61a,
  author =       "T. B. Steel",
  title =        "A First Version of {UNCOL}",
  booktitle =    "Proceedings of the Eastern Joint Computer Conference",
  publisher =    "Association of Computing Machinery",
  year =         "1961",
  pages =        "371--377",
}

@Article{Bratman:cacm:1961,
  author =       "H. Bratman",
  title =        "An alternate form of the {UNCOL} diagram",
  journal =      "Communications of the ACM",
  volume =       "4",
  pages =        "142",
  year =         "1961",
}

@TechReport{benitez:91a,
  author =       "Manuel E. Benitez and Paul Chan and Jack W. Davidson and Anne M.
                 Holler and Sue Meloy and Vatsa Santhanam",
  title =        "{ANDF}: {Finally} an {UNCOL} after 30 years",
  institution =  "University of Virginia",
  type =         "Technical Report",
  number =       "TR-91-05",
  address =      "Department of Computer Science, Charlottesville, VA",
  month =        mar,
  year =         "1989",
}

@article{hoffman:pattern,
  author = 	 {Christoph M. Hoffmann and Michael J. O'Donnell},
  title = 	 {Pattern Matching in Trees},
  journal = 	 {Journal of the ACM},
  year = 	 {1982},
  volume = 	 {29},
  number = 	 {1},
  OPTpages = 	 {},
  OPTmonth = 	 {},
  annote = 	 {
    This is probably the classic reference for tree pattern matching. \par

    The pattern matching approach presented in this paper allows
    patterns to match anywhere in the subject tree.  This results
    in the possibility of many patterns matching in different parts
    of the subject tree.  This is in contrast to ML style pattern
    matching where patterns must match the whole subject tree.  
    Another interesting point to notice, is that even with the
    top down approach presented in this paper, decision trees 
    are not explicitly represented to describe the matching 
    process.  This seems to be characteristic of the literature
    on general tree pattern matching. \par

    Several approaches to linear pattern matching in trees are 
    presented.  The approach favored by presentation is a bottom-up
    matching algorithm with a passing resemblance to LR parsing.
    The idea is to traverse a subject tree from bottom to top, 
    computing at each node the patterns which partially match.
    Knowing the patterns which partially match a node's children
    makes computing the set of partial matches for the node 
    straightforward.  We know that a pattern match has occurred
    when a whole pattern is contained in one of these sets of
    partial matches.  \par

    The crucial realization is that the sets
    of possible partial matches can be precomputed and represented
    by a code.  The problem of matching in the subject tree can 
    then be reduced to table lookups. \par

    The second pattern matching technique presented is a top
    down approach.  The main realization here is that pattern
    matching in trees may be formulated as a string matching
    problem by viewing labeled paths from the root to a leaf
    node in the subject or pattern tree as strings.  Then
    with some fiddling, the problem of tree pattern matching
    becomes string matching. \par

    The time complexity of the bottom-up matching algorithm is
    $O(s)$ where s is the size of the subject tree.  The time 
    complexity
    of top down matching is $O(s× p)$ where p is the number
    of patterns.  So, why use the top-down approach?  Because
    it has a faster pre-processing time (good if the patterns
    change a lot).
  }
}

@article{puel:compiling,
  author = 	 {Laurence Puel and Asc\'ander Su\'arez},
  title = 	 {Compiling Pattern Matching by Term Decomposition},
  journal = 	 {Journal of Symbolic Computation},
  year = 	 {1993},
  OPTkey = 	 {},
  volume = 	 {15},
  number = 	 {1},
  pages = 	 {1--26},
  month = 	 {January},
  OPTnote = 	 {},
  OPTannote = 	 {}
}

@inproceedings{sestoft:pattern,
  author =       "Peter Sestoft",
  title =        "{ML} Pattern Match Compilation and Partial
                 Evaluation",
  booktitle =    "Dagstuhl Seminar on Partial Evaluation",
  month = feb,
  year =         "1996",
  editor =       "O. Danvy and R. Glück and P. Thiemann",
  volume =       "1110",
  series =       lncs,
  publisher =    "Springer-Verlag",
  address = "Berlin",
  pages =        "446--464",
  annote = 	 {
    This paper is primarily concerned with a partial evaluation
    technique that is used to transform an instrumented pattern
    matching interpreter to a pattern matching compiler that
    produces decision trees.  The partial evaluation technique
    itself doesn't help us out much, but the simple pattern
    matcher given as an example is instructive. \par 

    Another interesting thing in this paper is their assertion
    that some of the Baudinet-MacQueen optimizations may not
    necessarily pay off in practice.  Again there are no 
    numbers to substantiate their claim, but it is interesting
    that they make it.  \par

    Perhaps the biggest drawback of their match compiler is 
    that it would be very hard to incorporate heuristics to
    minimize the number of nodes in generated decision trees. \par

    The pattern matching problem 
    considered in this paper is ML pattern matching.  
    The compiler algorithm presented is extremely 
    compact.  
    The pattern match compiler 
    generates binary decision trees.  So, these decision trees
    wouldn't be suitable for emitting efficient \textbf{CASE}
    statements in a code generator.  Sestoft claims that
    these trees can be ``switchified'' in linear time as a 
    post-processing step.  This certainly sounds interesting.
 }
}

@inproceedings{augustsson:compiling,
  author =       {Lennart Augustsson},
  title =        {Compiling Pattern Matching},
  booktitle =    {Functional Programming Languages and Computer Architecture},
  year =         {1985},
  editor =       {Jean-Pierre Jouannaud},
  series =       {LNCS},
  month =        sep,
  annote =       {
    This is a relatively old paper on compiling pattern matching---Wadler 
    claims it's the original.  The
    approach given is nearly identical to the one presented in
    Simon Peyton-Jones, 1987.  I presume that this paper is the 
    originator of the algorithm.  So, the same comments apply. \par
  
    One thing worth noting.  The authors are compiling for a lazy
    functional language called Lazy ML.  
 }
}


@unpublished{aitken:match,
  month="Summer",
  author="William Aitken",
  title="The {SML/NJ} Match Compiler",
  note="Internal documentation obtained from Dave MacQueen {\texttt{<dbm@research.bell-labs.com>}}.",
  year="1992"
}

@article{hudak:report,
author="Paul Hudak and Simon L. {Peyton Jones} and Philip Wadler and Brian Boutel
        and Jon Fairbairn and Joseph H. Fasel and Mar\'ia M. Guzm\'an
        and Kevin Hammond and John Hughes and Thomas Johnsson and Richard Kieburtz
        and Rishiyur Nikhil and Will Partain and John Peterson",
title="Report on the Programming Language {Haskell},
A Non-Strict, Purely Functional Language, Version 1.2", pages="R1--R164",
journal=SIGPLAN, volume=27, number=5, month=may, year=1992
}


@Manual{leroy:objective,
  author ="Xavier Leroy and Didier Rémy and Jérôme Vouillon and Damien Doligez",
  year =         "1998",
  title =        "The {Objective Caml} system, documentation and user's guide",
  note = "Available at \texttt{http://pauillac.inria.fr/ocaml/htmlman/}.",
  organization = "INRIA",
}

@TechReport{mauny:functional,
  author =       "M. Mauny",
  institution =  "National Institute for Research in Computer and
                 Control Sciences (INRIA)",
  title =        "Functional Programming Using {CAML}",
  year =         "91",
  document-size = "226.7 kbytes",
  number =       "RT-0129",
  scope =        "defin",
}

@inproceedings{maranget:compiling,
  author =       "Luc Maranget",
  title =        "Compiling Lazy Pattern Matching",
  pages =        "21--31",
  ISBN =         "0-89791-481-3 / 0-89791-483-X",
  editor =       "Jon L. White",
  booktitle =    "Proceedings of the {ACM} Conference on {LISP} and
                 Functional Programming",
  address =      "San Francisco, CA",
  month =        jun,
  year =         "1992",
  publisher =    "ACM Press",
  abstract-url = "http://pauillac.inria.fr:80/bin/psearch/publioscope?maranget",
  document-size = "0.1 kbytes",
  url =          "file://ftp.inria.fr/INRIA/Projects/para/maranget/lazy-pat1.ps.gz",
}

@techreport{maranget:two,
  year = "1994", month=oct,
  pages =        "39 pp.",
  type =         "Technical Report",
  number =       "RR-2385",
  institution =  "INRIA",
  title =        "Two Techniques for Compiling Lazy Pattern Matching",
  author =       "Luc Maranget",
  abstract =     "In ML-style pattern matching,
                 pattern size is not constrained and ambiguous patterns
                 are allowed. This generality leads to a clear and
                 concise programming style but is challenging in the
                 context of lazy evaluation. A first challenge concerns
                 language designers: in lazy ML, the evaluation order of
                 expressions follows actual data dependencies. That is,
                 only the computations that are needed to produce the
                 final result are performed. Once given a proper (that
                 is, non-ambiguous) semantics, pattern matching should
                 be compiled in a similar spirit: any value matching a
                 given pattern should be recognized by performing only
                 the minimal number of elementary tests needed to do so.
                 This challenge was first met by A.\~Laville. A
                 second challenge concerns compiler designers. As it
                 stands, Laville's compilation algorithm cannot
                 be incorporated in an actual lazy ML compiler for
                 efficiency and completeness reasons. As a matter of
                 fact, Laville's original algorithm did not fully
                 treat the case of integers in patterns and can lead to
                 explosions both in compilation time and generated code
                 size. This paper provides a complete solution to that
                 second challenge. In particular, the well-known (and
                 size-efficient) pattern matching compilation technique
                 using backtracking automata is here introduced for the
                 first time into the world of lazy pattern matching.",
}

@article{laville:comparison,
  author =       "Alain Laville",
  title =        "Comparison of Priority Rules in Pattern Matching and
                 Term Rewriting",
  journal =      "Journal of Symbolic Computation",
  volume =       "11",
  number =       "4",
  pages =        "321--348 (or 321--347??)",
  month =        apr,
  year =         "1991",
  coden =        "JSYCEH",
  ISSN =         "0747-7171",
  mrclass =      "68Q42 (68N05)",
  mrnumber =     "93g:68063",
  bibdate =      "Sat May 10 15:54:09 MDT 1997",
  acknowledgement = ack-nhfb,
  classcodes =   "C4210 (Formal logic); C4240 (Programming and algorithm
                 theory)",
  corpsource =   "INRIA, Le Chesnay, France",
  keywords =     "calls; constructors based linear systems; function;
                 pattern matching; priority rules; programming theory;
                 rewriting systems; term rewriting",
  treatment =    "T Theoretical or Mathematical",
}

@TechReport{huet:call:tr,
  author =       "G\'erard Huet and Jean-Jacques L\'evy",
  institution =  "IRIA",
  key =          "HL79",
  month =        aug,
  number =       "359",
  title =        "{C}all by {N}eed {C}omputations in {N}on-{A}mbiguous
                 {L}inear {T}erm {R}ewriting {S}ystems",
  year =         "1979",
  annote =       "A study of optimal derivations in Term Rewriting
                 Systems, it contains an introduction to residuals and
                 developments. This paper gives a theoretical basis to
                 our work on occurrence and Term Rewriting.",
}

@inproceedings{cardelli:compiling,
  author =       "Luca Cardelli",
  title =        "Compiling a Functional Language",
  booktitle =    "Conference Record of the 1984 {ACM} Symposium on {Lisp}
                 and Functional Programming",
  organization = "ACM",
  publisher =    "ACM",
  month =        aug,
  year =         "1984",
  pages =        "208--217",
  refs =         "16",
  checked =      "19940320",
  keywords =     "ML, compiler, functional language",
  reffrom =      "Wand:acm:cc:1984",
  reffrom =      "Hailpern:Huynh:Revesz:ieee:tose:1989",
  reffrom =      "Hannan:Miller:acm:lfp:1990",
}

@unpublished{ramsey:match-heuristics,
  author="Norman Ramsey",
  title="Match compiler for {New Jersey Machine-Code Toolkit} ({ML} Version)",
  note="This source code can be downloaded from
        \texttt{http://www.cs.virginia.edu/nr/toolkit}, or it can be
        browsed at
        \texttt{http://www.cs.virginia.edu/nr/toolkit/working/sml/WWW/match.html}. ",
  year="1999"}

@unpublished{gansner:basis,
  editor="Emden Gansner and John Reppy",
  title="The {Standard ML} Basis Library",
  note="Book in preparation.  Preliminary version available at 
	\texttt{http://cm.bell-labs.com/cm/cs/what/smlnj/doc/basis/index.html}.",
  year="1999"}

@book{bevington:data,
  address="New York",
  where="on my shelves",
  author="Philip R. Bevington and D. Keith Robinson",
  title="Data Reduction and Error Analysis for the Physical Sciences",
  publisher="McGraw-Hill",
  edition="second",
  annote="Best book ever written on understanding experimental data.",
  year="1992"}

@Article{Harcourt:1994:PTS,
  author =       "E. Harcourt and J. Mauney and T. Cook",
  title =        "From Processor Timing Specifications to Static
                 Instruction Scheduling",
  journal =      "Lecture Notes in Computer Science",
  volume =       "864",
  pages =        "116--??",
  year =         "1994",
  coden =        "LNCSD9",
  ISSN =         "0302-9743",
  bibdate =      "Mon May 13 11:52:14 MDT 1996",
  acknowledgement = ack-nhfb,
}


@InProceedings{HaMC94,
  author =       "{E.A. Harcourt} and {J. Mauney} and {T. Cook}",
  title =        "{F}ormal {S}pecification and {S}imulation of
                 {I}nstruction-{L}evel {P}arallelism",
  booktitle =    "{P}roc. {E}uropean {D}esign {A}utomation {C}onference
                 (EURO-DAC94)",
  year =         "1994",
  pages =        "296--301",
  organization = "IEEE Computer Society",
  publisher =    "IEEE Computer Society Press",
  address =      "Grenoble, France",
  month =        sep,
  key =          "HaMC94",
}


@TechReport{Harcourt93,
  author =       "Ed Harcourt and Jon Mauney and Todd Cook",
  title =        "High Level Timing Specification of Instruction-Level
                 Parallel Processors",
  institution =  "Department of Computer Science, North Carolina State
                 University",
  number =       "TR-93-18",
  month =        aug # " 24",
  year =         "1993",
  keywords =     "timing parallel instruction-level",
  url =          "ftp://ftp.csc.ncsu.edu/pub/tech/93/TR-93-18.ps.Z",
  note =         "Wed, 8 May 1996 19:23:10 GMT",
}


@InProceedings{iccd93*552,
  author =       "T. A. Cook and P. D. Franzon and E. A. Harcourt and T.
                 K. {Miller, III}",
  title =        "System-Level Specification of Instruction Sets",
  pages =        "552--557",
  ISBN =         "0-8186-4230-0",
  editor =       "Edna Straub",
  booktitle =    "Proceedings of the {IEEE} International Conference on
                 Computer Design: {VLSI} in Computers and Processors",
  address =      "Cambridge, MA",
  month =        oct,
  year =         "1993",
  publisher =    "IEEE Computer Society Press",
}

@inproceedings{morrisett:tal,
  title =        "From {System~F} to Typed Assembly Language",
  author =       "Greg Morrisett and David Walker and Karl Crary and Neal Glew",
  pages =        "85--97",
  booktitle =    popl98,
  month =        jan,
  year =         "1998",
  address =      "San Diego, California",
}

@article{nordlander:pragmatic,
  author =       "Johan Nordlander",
  title =        "Pragmatic Subtyping in Polymorphic Languages",
  journal =      icfp98 # ", {\em in }" # sigplan,
  volume =       "34",
  number =       "1",
  pages =        "216--227",
  month =        jan,
  year =         "1999",
  CODEN =        "SINODQ",
  ISSN =         "0362-1340",
  bibdate =      "Wed Dec 30 14:35:17 1998",
  bibsource =    "http://www.cs.rice.edu/~matthias/ICFP98/schedule.html",
  affiliation =  "Chalmers University",
}

@inproceedings{hadjiyiannis:isdl,
  address="New York, NY",
  pages="299-302",
  where="filed with reprints or caa.lcs.mit.edu (Computer-Aided Automation group)",
  author="George Hadjiyiannis and Silvina Hanono and Srinivas Devadas",
  title="{ISDL}: An instruction set description language for retargetability",
  keywords="machine description",
  publisher="ACM",
  booktitle="Proceedings of 34th Design Automation Conference",
  annote="Look's like a dog's breakfast",
  year="1997"}

@manual{hadjiyiannis:isdl-manual,
  address="MIT",
  author="George Hadjiyiannis",
  title="{ISDL}: Instruction Set Description Language, User's Manual ",
  note="See \texttt{http://caa.lcs.mit.edu\discretionary{/}{}{/}caa\discretionary{/}{}{/}publications.html}.",
  organization="Computer-Aided Automation Group",
  year="1998"}

@incollection{hoare:hints,
  author="C. A. R. Hoare",
  title="Hints on Programming-Language Design",
  note="Adapted from Hoare's keynote address to the first Symposium on Principles of Programming Languages.",
  publisher="Prentice Hall",
  address="New York, NY",
  booktitle="Essays in Computing Science",
  annote="A must-read.",
  chapter="13", pages="193-216",
  editor="C. B. Jones",
  year="1989"}

@techreport{milner:proposal,
  month=mar,
  address="University of Virginia",
  where="online",
  number="CS-99-11",
  author="Christopher W. Milner",
  title="Pipeline Descriptions for Retargetable Compilers: A Decoupled Approach",
  year="1999",
  institution="Department of Computer Science"}

@book{harbison:c-reference-4,
  key="Harbison and Steele",
  author="Samuel P. Harbison and Steele, Jr., Guy L.",
  title="{C}: A Reference Manual", edition="fourth",
  publisher=PRHALL, address="Englewood Cliffs, NJ",
  year=1995
}




@Article{Hof:1997:ZEH,
  author =       "M. Hof and H. Moessenboeck and P. Pirkelbauer",
  title =        "Zero-Overhead Exception Handling Using
                 Metaprogramming",
  journal =      "Lecture Notes in Computer Science",
  volume =       "1338",
  pages =        "423--??",
  year =         "1997",
  coden =        "LNCSD9",
  ISSN =         "0302-9743",
  bibdate =      "Tue Apr 28 08:51:33 MDT 1998",
  acknowledgement = ack-nhfb,
}


@TechReport{ncstrl.ulinz_cs//CS-SSW-P97-07,
  type =         "Technical Report",
  number =       "CS-SSW-P97-07",
  institution =  "Johannes Kepler University Linz, Austria",
  title =        "Zero-Overhead Exception Handling Using
                 Metaprogramming",
  month =        jul # " 1,",
  year =         "1997",
  bibdate =      "September 1, 1997",
  url =          "ftp://ftp.ssw.uni-linz.ac.at/pub/Reports/CS-SSW-P97-07.ps.Z",
  author =       "Pirkelbauer P. {Hof M., Moessenboeck H.}",
  abstract =     "We present a novel approach to exception handling
                 which is based on metaprogramming. Our mechanism does
                 not require language support, imposes no run time
                 overhead to error-free programs, and is easy to
                 implement. Exception handlers are implemented as
                 ordinary procedures. When an exception occurs, the
                 corresponding handler is searched dynamically using the
                 type of the exception as a search criterion. Our
                 implementation was done in the Oberon System but it
                 could be ported to most other systems that support
                 metaprogramming.",
}


@Article{Ellis:1995:TE,
  author =       "M. Ellis and M. Carroll",
  title =        "Tradeoffs of exceptions",
  journal =      "C++ Report",
  volume =       "7",
  number =       "3",
  pages =        "12, 14, 16",
  month =        mar # "-" # apr,
  year =         "1995",
  coden =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Tue Mar 25 13:34:48 MST 1997",
  abstract =     "The introduction of the exception handling feature
                 into the C++ language comes with tradeoffs. The most
                 significant advantage is that exception handling allows
                 C++ code to handle errors and other exceptional
                 conditions elegantly. On the other hand, the presence
                 of exceptions in C++ necessitates that special care be
                 taken to ensure that code is exception safe. Classes
                 must be designed so objects are not rendered
                 inconsistent when an exception is thrown. Libraries
                 must be designed to avoid resource leaks and other ill
                 effects of the nonlocal flow of control caused by an
                 exception having been thrown.",
  acknowledgement = ack-nhfb,
  classcodes =   "C6140D (High level languages); C6110J (Object-oriented
                 programming)",
  classification = "C6110J (Object-oriented programming); C6140D (High
                 level languages)",
  keywords =     "C language; C++ language; conditions; exception
                 handling; Exception handling feature; exception
                 handling feature; exceptional; Exceptional conditions;
                 Nonlocal flow; nonlocal flow; object-oriented
                 languages; Resource leaks; resource leaks",
  thesaurus =    "C language; Exception handling; Object-oriented
                 languages",
  treatment =    "T Theoretical or Mathematical",
}



@Article{Reeves:1996:CE,
  author =       "J. W. Reeves",
  title =        "Coping with exceptions",
  journal =      "C++ Report",
  volume =       "8",
  number =       "3",
  pages =        "24--35",
  month =        mar,
  year =         "1996",
  coden =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Tue Mar 25 13:34:48 MST 1997",
  acknowledgement = ack-nhfb,
  classcodes =   "C6110J (Object-oriented programming); C6140D (High
                 level languages); C6130 (Data handling techniques)",
  keywords =     "ANSI ISO C++ committee; ANSI standards; C language;
                 C++ standard; exception handling; feature set; ISO;
                 nonexception handling code; object oriented
                 programming; object-oriented; object-oriented
                 languages; programming; software standards; standard
                 libraries; standards",
  treatment =    "P Practical",
}



@Article{Reeves:1997:RE,
  author =       "J. W. Reeves",
  title =        "Reflections on exceptions",
  journal =      "C++ Report",
  volume =       "9",
  number =       "3",
  pages =        "57--65",
  month =        mar,
  year =         "1997",
  coden =        "CRPTE7",
  ISSN =         "1040-6042",
  bibdate =      "Thu Apr 24 09:46:14 MDT 1997",
  acknowledgement = ack-nhfb,
  classification = "C6110J (Object-oriented programming); C6140D (High
                 level languages); C6130 (Data handling techniques)",
  keywords =     "C language; exception handling; object-oriented
                 languages; object-oriented programming; program
                 debugging; exception handling; debugging; Standard C++;
                 development environment; assert macros; object oriented
                 programming",
  treatment =    "P Practical",
}



@InProceedings{Saastamoinen95,
  author =       "Heikki Saastamoinen and George M. White",
  title =        "On Handling Exceptions",
  booktitle =    "Conference on Organizational Computing Systems",
  series =       "Tools",
  pages =        "302--310",
  year =         "1995",
  copyright =    "(c) Copyright 1995 ACM",
  keywords =     "DESIGN, HUMAN FACTORS, VERIFICATION H.4.1 Information
                 Systems, INFORMATION SYSTEMS APPLICATIONS, Office
                 Automation. H.4.0 Information Systems, INFORMATION
                 SYSTEMS APPLICATIONS, General. F.1.1 Theory of
                 Computation, COMPUTATION BY ABSTRACT DEVICES, Models of
                 Computation, Automata. D.2.2 Software, SOFTWARE
                 ENGINEERING, Design Tools and Techniques, Petri nets.
                 J.1 Computer Applications, ADMINISTRATIVE DATA
                 PROCESSING, Business.",
  mrnumber =     "C.OCS.95.302",
}



@InProceedings{atkinson:aspects,
  key =          "Atkinson \& Liskov \& Scheifler",
  author =       "Russell R. Atkinson and Barbara H. Liskov and Robert
                 W. Scheifler",
  title =        "Aspects of Implementing {CLU}",
  booktitle =    "Proceedings of the ACM 1978 Annual Conference",
  organization = "ACM",
  pages =        "123--129",
  month =        dec,
  year =         "1978",
  annote =       "Basics of implementing exception handling, iterators,
                 and parameterized types in CLU. 9 references.",
  keywords =     "PROGLANG, COMPILER, CLU",
}

@techreport{drew:zero,
  address="Queensland University of Technology, Brisbane, Australia",
  where="filed with reprints and electronically under john-gough",
  number="95-12",
  author="Steven J. Drew and K. John Gough and J. Ledermann",
  title="Implementing Zero Overhead Exception Handling",
  note="See \texttt{http://www.dstc.qut.edu.au\slash \char`\~gough\slash zeroex.ps}",
  year="1995",
  institution="Faculty of Information Technology"}


@Article{Anonymous:1997:CAC,
  author =       "Anonymous",
  title =        "Converting {Ada 95} Code to {Java}",
  journal =      "Object Magazine",
  volume =       "7",
  number =       "1",
  pages =        "68--68",
  month =        mar,
  year =         "1997",
  coden =        "OBMAFO",
  ISSN =         "1055-3614",
  bibdate =      "Mon Mar 03 11:23:57 1997",
  url =          "http://www.intermetrics.com/",
  acknowledgement = ack-nhfb,
}


@Misc{Intermetrics:1996:TCA,
  author =       "{Intermetrics}",
  title =        "Tool Converts {Ada 95} Source Code to {Java}
                 Bytecode",
  howpublished = "Java Report Online",
  address =      "Intermetrics\\ 733 Concord Ave.\\ Cambridge, MA
                 02138-1002\\ v: 617.661.1840, 617.576.3266\\ f:
                 617.547.3879\\ http://www.intermetrics.com",
  year =         "1996",
  bibdate =      "Tue Dec 24 04:59:50 1996",
  note =         "Intermetrics Inc. debuted AppletMagic, a tool that
                 converts Ada 95 source code to Java bytecode for
                 execution by any Java-capable Web browser. AppletMagic
                 simplifies the development of complex, high-reliability
                 applets and can be used as a supplement or an
                 alternative to the Java language. Ada provides
                 compile-time advantages such as enumeration types and
                 generic templates, as well as in, in-out, and out
                 parameter modes. The Java execution technology
                 contributes runtime flexibility through automatic
                 garbage collection, dynamic linking, and platform
                 independence.",
  url =          "http://www.sigs.com/publications/docs/jro/twij96/twij961216.html#TOOL",
  acknowledgement = ack-nhfb,
  annote =       "This is the first instance that I have noted of
                 compilation of another language for the Java Virtual
                 Machine.",
}

@techreport{steele:rabbit,
  author="Steele, Jr., Guy L.",
  title="Rabbit: A Compiler for {S}cheme",
  number="AI-TR-474",
  institution="Artificial Intelligence Laboratory, MIT", address="Cambridge, MA",
  month=may, year=1978, pages=272,
  keywords = {continuation passing style, CPS},
 abstract =     "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, GO TO, as well as many standard
                 LISP constructs such as AND, OR and COND, are expressed
                 as macros in terms of the applicative basis set. A
                 small number of optimization techniques, coupled with
                 the treatment of function calls as GO TO statements,
                 serves to produce code as good as that produced by more
                 traditional compilers.",
}

@article{ramsey:formation,
  author="Norman Ramsey and Will Happer and others",
  title="Formation and Breakup Rates of {RbXe} van der {Waals} Molecules
in {He} and {$\rm N_2$} Gas",
  journal="Chemical Physics Letters",
  volume="102",
  pages="340", refjournal=1,
  year="1983"}

@techreport{ramsey:search,
  month=aug,
  author="Norman Ramsey",
  title="A Search for Capacitance Fluctuations in Tunnel Capacitors ({M.S.~thesis})",
  year="1986",
  institution="Materials Science Center, Cornell University"}

@inproceedings{ramsey:developing,
  month=may,
  where="On file under Penelope/Papers",
  author="Norman Ramsey",
  title="Developing Formally Verified {A}da Programs",
  keywords="ada penelope",
  address="Pittsburgh, PA",
  pages="257--265",
  booktitle="Proceedings of the 5th International Workshop on Software Specification and Design", refereed=1,
  year="1989"}

@techreport{ramsey:spiderman,
  where="on file under web",
  number="TR-225-89",
  author="Norman Ramsey",
  title="A {{\tt Spider}} User's Guide",
  keywords="spider manual",
  month="August",
  year="1989",
  institution=pucs}

@techreport{ramsey:spiderwebman,
  where="on file under web",
  number="TR-226-89",
  author="Norman Ramsey",
  title="The {S}pidery {{\tt WEB}} System of Structured Documentation",
  keywords="spider manual",
  month=aug,
  year="1989",
  institution=pucs}

@article{ramsey:building,
  where="on file under web/my papers",
  author="Norman Ramsey",
  title="{L}iterate Programming: {\hskip 0pt plus 0.5em}{W}eaving a Language-Independent {{\tt WEB}}",
  keywords="web spider",
  journal=cacm,
  month=sep,
  volume=32,
  number=9, refjournal=1,
  pages="1051--1055",
  year="1989"}

@techreport{ramsey:concurrent,
  author="Norman Ramsey",
  title="Concurrent Programming in {ML}",
  keywords="squint squeak",
  month="April",
  year="1990",
  number="TR-262-90",
  institution=pucs}

@article{ramsey:literate,
  where="on file under web/my papers",
  author="Norman Ramsey and Carla Marceau",
  title="Literate Programming on a Team Project",
  keywords="web",
  journal="Software---Practice \& Experience",
  month=jul,
  volume=21, number=7, pages="677--683",
  year="1991", refjournal=1,
  also="Princeton tech report CS-TR-302-91"}

@article{ramsey:retargetable,
  month=jul,
  pages="22-31",
  where="shelved with other issues of SIGPLAN notices",
  number="7",
  refereed=1,
  author="Norman Ramsey and David R. Hanson",
  title="A Retargetable Debugger",
  journal="ACM SIGPLAN '92 Conference on Programming Language Design and Implementation, {\rm in} SIGPLAN Notices",
  year="1992",
  submitted="150", accepted="30",
  volume="27"}

@phdthesis{ramsey:thesis,
  month=dec,
  address="Department of Computer Science",
  author="Norman Ramsey",
  title="A Retargetable Debugger",
  note="Also Technical Report CS-TR-403-92",
  school="Princeton University",
  year="1992"}

@inproceedings{ramsey:correctness, refereed=1,
  month=jan,
  author="Norman Ramsey",
  title="Correctness of Trap-Based Breakpoint Implementations",
  keywords="debugging promela",
  booktitle="Proceedings of the 21st ACM Symposium on the Principles of Programming Languages",
  submitted="173", accepted="39",
  address="Portland, OR",
  pages="15--24",
  year="1994"}

@article{ramsey:simplified, refjournal=1,
  author="Norman Ramsey",
  title="Literate Programming Simplified",
  keywords="noweb literate programming  readability  programming languages",
  journal="IEEE Software",
  month=sep, pages="97--105",
  volume="11", number="5",
  year="1994"}

@techreport{ramsey:tk-architecture,
  month=oct,
  author="Norman Ramsey and Mary F. {Fer­n\'an­dez}",
  title="{New} {Jersey} {Machine-Code} {Toolkit} Architecture Specifications",
  number="TR-470-94",
  institution=pucs,
  note="Revised December, 1996.",
  year="1994"}

@techreport{ramsey:tk-reference,
  month=oct,
  author="Norman Ramsey and Mary F. {Fer­n\'an­dez}",
  title="{New} {Jersey} {Machine-Code} {Toolkit} Reference Manual",
  number="TR-471-94",
  note="Revised December, 1996.",
  institution=pucs,
  year="1994"}


@inproceedings{ramsey:jersey, refereed=1,
  author="Norman Ramsey and Mary F. {Fer­n\'an­dez}",
  title="The {New} {Jersey} {Machine-Code} {Toolkit}",
  booktitle="Proceedings of the 1995 USENIX Technical Conference",
  submitted="80", accepted="27",
  address="New Orleans, LA",
  pages="289-302",
  month=jan,
  year="1995"}

%%  inproceedings{ramsey:model, refereed=1,
%%    title="Literate Programming Should be a Model for 
%%  	     Software Engineering and Programming Languages",
%%    author="Norman Ramsey",
%%    booktitle="ICSE-17 Workshop on Software Engineering and Programming Languages",
%%    address="Seattle, WA",
%%    month=apr,
%%    year="1995"}

@article{ramsey:solver, refjournal=1,
  title="A Simple Solver for Linear Equations Containing Nonlinear Operators",
  author="Norman Ramsey",
  journal=spe,
  volume="26", number="4", month=apr, pages="467-487",
  year="1996"}

@article{ramsey:relocating, refereed=1,
  title="Relocating Machine Instructions by Currying",
  author="Norman Ramsey",
  month=may, pages="226-236",
  where="shelved with other issues of SIGPLAN notices",
  number="5",
  volume="31",
  journal="ACM SIGPLAN '96 Conference on Programming Language Design
	   and Implementation, {\rm in} SIGPLAN Notices",
  year="1996",
  submitted="112", accepted="28",
}
%  number="95-068",
%  institution="Purdue University, Dept of Computer Sciences"

@article{ramsey:specifying, refjournal=1,
  author="Norman Ramsey and Mary F. {Fer­n\'an­dez}",
  title="Specifying Representations of Machine Instructions",
  journal=toplas,
  year="1997", 
  pages="492-524", volume="19", number="3", month=may,
}

@inproceedings{fernandez:checking,  refereed=1,
  month=may,
  author="Mary F. {Fer­n\'an­dez} and Norman Ramsey",
  title="Automatic Checking of Instruction Specifications",
  year=1997,
  booktitle="Proceedings of ICSE~1997",
  submitted="219", accepted="41",
  pages="326--336", 
  formerly="AT\&T Labs - Research - TR 97.3.1",

comment={


@article{ramsey:relocating:journal,  refjournal=1,
  title="Relocating Machine Instructions by Currying",
  author="Norman Ramsey",
  journal="{\rm Submitted to} " # toplas,
  year="1997",
}
}}

@techreport{ramsey:eliminating, refjournal=1,
  month=apr,
  address="University of Virginia",
  number="CS-97-06",
  author="Norman Ramsey",
  title="Eliminating Spurious Error Messages
	 Using Exceptions, Polymorphism, and Higher-Order Functions",
  note="Submitted to {\em Computer Journal}",
  year="1997",
  institution="Dept of Computer Science"}

@techreport{ramsey:unparsing, refjournal=1,
  month=aug,
  address="University of Virginia",
  number="CS-97-24",
  author="Norman Ramsey",
  title="Unparsing Expressions With Prefix and Postfix Operators",
  note="Submitted to {\em Software---Practice \& Experience}",
  year="1997",
  institution="Dept of Computer Science"}

@techreport{ramsey:csdl-prelim,
  month=nov,
  institution="Department of Computer Science",
  where="online or on file",
  number="CS-97-31",
  author="Norman Ramsey and Jack W. Davidson",
  title="Specifying Instructions' Semantics Using {CSDL} (Preliminary Report)",
  keywords="lrtl ­rtl rtl",
  year="1997",
  address="University of Virginia"}

@techreport{ramsey:embedded,
  month=feb,
  address="Computer Science Department",
  where="own pubs",
  number="CS-98-02",
  author="Norman Ramsey and Jack W. Davidson",
  title="Machine Descriptions to Build Tools for Embedded Systems",
  keywords="CSDL ­RTL $\lambda$-RTL",
  note="Submitted to \emph{LCTES~'98}",
  year="1998",
  institution="University of Virginia"}

@InProceedings{Sheard:accomplishments,
  title =        "Accomplishments and Research Challenges in Meta-Programming",
  author =       "Tim Sheard",
  booktitle =    "Proceedings of the Workshop on Semantics, 
                  Applications and Implementation of Program 
                  Generation (SAIG'01) ",
  note      =  "Invited talk",
  series = "LNCS",
  volume = "2196",
  editor = "Walid Taha",
  year = "2001",
  month = "September",
  pages = "2--44",
  publisher =    "Springer Verlag",
  address =      "Berlin",
  ISBN   = "3-540-42558-6"
}


@InProceedings{Sabry01,
  author =       "Steven E. Ganz and Amr Sabry and Walid Taha",
  title =        "Macros as Multi-Stage Computations: Type-Safe, Generative, Binding Macros in {MacroML}",
  booktitle =    "Proceedings of the {ACM} {SIGPLAN} International
                 Conference on Functional Programming ({ICFP}-2001)",
  month =        "September",
  publisher =    "ACM Press",
  address =      "New York",
  year =         "2001",
}

% ---------------------------------------------------------------------------
%                          Spreadsheet papers
% ---------------------------------------------------------------------------

@article{brown:spreadsheets,
  author = "P. Brown and J. Gould", 
  title = "Experimental Study of People Creating Spreadsheets",
  journal = "ACM Transactions on Office Information Systems",
  volume = 5, 
  pages = "258-272", 
  year = 1987 
}

@inproceedings{corritore:empirical,
  author = "C. Corritore and S. Wiedenbeck", 
  title = "Direction and Scope of Comprehension-Related Activities by Procedural and Object-Oriented Programmers: An Empirical Study",
  booktitle = "International Workshop on Program Comprehension", 
  address = "Limerick, Ireland", 
  month = jun,
  year = 2000, 
  pages = "139-148"
}

@article{dumas:empirical,
  author = "Joseph Dumas and Paige Parsons", 
  title = "Discovering the Way Programmers Think About New Programming Environments", 
  journal = cacm,
  volume = 38, issue = 6, month = jun, year = 1995,
  pages = "45-56"
}

@inproceedings{good:empirical,
  author = "Judith Good", 
  title = "VPLs and Novice Program Comprehension: How Do Different Languages Compare?",
  booktitle = "IEEE Symposium on Visual Languages, Tokyo, Japan", 
  month = sep, year = 1999,
  publisher = ieee,
  page = "262-269"
}

@inproceedings{green:empirical,
  author = "T. Green and M. Petre and R. Bellamy",
  title = "Comprehensibility of Visual and Textual Programs: A Test of Superlativism Against the 'Match-Mismatch' Conjecture",
  booktitle = "Empirical Studies of Programmers: Fourth Workshop, New Brunswick, New Jersey", 
  month = dec, year = 1991, 
  publisher = "Ablex",
  pages = "121-146"
}

@inproceedings{hoadley:empirical,
  author = "Christopher M. Hoadley and Marcia C. Linn and Lydia M. Mann and Michael J. Clancy", 
  title = "When, Why and How Do Novice Programmers Reuse Code?", 
  booktitle = "Empirical Studies of Programmers: Sixth Workshop",
  publisher = "Ablex", year = 1996 
}

@article{newell:prospects,
  author = "Newell, A and Card, SK",
  year = 1985,
  title = "The Prospects for Psychological Science in Human-Computer Interaction",
  journal = "Human-Computer Interaction",
  volume = 1, issue = 3,
  pages = "209-242",
  keywords = {Famous quote about not enough attention paid to humans}
}

@article{davis:spreadsheet-auditing,
  author = "JS Davis", 
  title = "Tools for spreadsheet auditing", 
  journal = "International Journal of Human-Computer Studies",
  volume = 45, 
  year = 1996, 
  pages = "429-442"
}

@inproceedings{igarashi:fluid-visualization,
  author = "Igarashi, Takeo and Mackinlay, Jock and Chang, Bay-Wei and Zellweger, Polle",
  title = "Fluid Visualization of Spreadsheet Structures", 
  booktitle = "IEEE Symposium on Visual Languages, Halifax, Nova Scotia",
  year = 1998,
  publisher = "IEEE",
  month = sep, pages = "118-125"
}

@article{panko:errors,
  author = "RR Panko",
  title = "What We Know About Spreadsheet Errors",
  journal = "Journal of End User Computing",
  volume = 10, issue = 2, year = 1998, 
  pages = "15-21"
}

@BOOK{nardi,
  author = {Nardi, B.}, 
  title = {{A Small Matter of Programming: Perspectives on End User Computing}}, 
  publisher = {The MIT Press}, 
  address = {Cambridge, MA}, 
  year = 1993
}


@ARTICLE{burnett:jvl-ctime,
  author = {Burnett, M and Cao, N and Arredondo-Castro, M and Atwood, J}, 
  title = {{End-user programming of time as an `ordinary' dimension in grid-oriented visual programming languages}},
  journal = {{Journal of Visual Languages and Computing}}, 
  volume = 13,
  number = 4,
  month = aug, 
  year = 2002, 
  pages = {421-447},
  keywords = "Empirical study on end users"
}

@inproceedings{burnett:wysiwyt,
  author = "G Rothermel and L Li and C DuPuis and M Burnett",
  title = "What You See Is What You Test",
  booktitle = "International Conference on Software Engineering, Kyoto",
  month = apr, year = 1998,
  pages = "198-207"
}

@ARTICLE{hosking:hcc02,
  author = {Li, Y. and Grundy, J. and Amor, R. and Hosking, J.}, 
  title = {{A data mapping specification environment using a concrete business form-based metaphor}},
  crossref = "hcc02",
  pages = {158-166}
}

@ARTICLE{burnett:repbench,
  author = {Yang, S. and Burnett, M. and DeKoven, E. and Zloof, M.}, 
  title = {{Representation design benchmarks: a design-time aid for VPL navigable static representations}},
  journal = {{Journal of Visual Languages and Computing}}, 
  volume = {8},
  number = {5/6},
  month = {Oct/Dec},
  pages = {563-599},
  year = 1997
}

@inproceedings{lieberman:debugging,
  author = "H Lieberman",
  title = "Steps toward better debugging tools for {LISP}",
  crossref = "lfp84", 
  pages = "247-255",
  keywords = "zstep"
}

@ARTICLE{ungar:self,
  author = {Ungar, D. and Smith, R.}, 
  title = {{Self: The power of simplicity}},
  journal = {{ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA)}}, 
  month = {October},
  pages = {227-242},
  year = 1987
}

@BOOK{boehm00,
  author = {B Boehm and A Abts and S Brown and B Chulani and E Clark and R Horowitz and D Madachy and Reifer and B Steece}, 
  title = {{Software Cost Esimation with COCOMO II}},
  publisher = {Prentice Hall PTR}, 
  address = {Upper Saddle River, NJ}, 
  year = 2000
}

@article{beckwith:many-to-many,
  author = {L Beckwith and M Burnett and C Cook},
  title = {Reasoning about Many-to-Many Requirement Relationships in Spreadsheets},
  crossref = "hcc02",
  pages = {149-157}
}

@inproceedings{nielsen:heuristic-evaluation,
  author = "J Nielsen and R Molich",
  year = 1990,
  title = "Heuristic evaluation of user interfaces", 
  booktitle = "Proceedings of ACM CHI'90 Conference, Seattle",
  pages = "249-256",
  month = apr
}

@techreport{pane:usability,
  author = "JF Pane and BA Myers",
  title = "Usability Issues in the Design of Novice Programming Systems",
  institution = "Carnegie Mellon University, School of Computer Science",
  number = "CMU-CS-96-132", 
  month = aug,
  year = 1996, 
  url = "http://www-2.cs.cmu.edu/~pane/cmu-cs-96-132.html"
}

@article{green:usability-analysis,
  author = "TRG Green and M Petre",
  year = 1996,
  title = {Usability analysis of visual programming environments: a ``cognitive dimensions'' framework},
  journal = "Journal of Visual Languages and Computing", 
  volume = 7, 
  pages = "131-174"
}

@incollection{blackwell:notational-systems,
  author = "AF Blackwell and TRG Green",
  title = "Notational systems -- the Cognitive Dimensions of Notations framework",
  editor = "JM Carroll",
  booktitle = "HCI Models, Theories, and Frameworks: Toward an Interdisciplinary Science",
  publisher = "Morgan Kaufmann",
  year = 2003
}

@inproceedings{blackwell:first-steps,
  author = "AF Blackwell",
  title = "First steps in programming: A rationale for Attention Investment models",
  crossref = "hcc02",
  pages = "2-10"
}

@inproceedings{blackwell:applying,
  author = "AF Blackwell and M Burnett",
  title = "Applying Attention Investment to end-user programming",
  crossref = "hcc02",
  pages = "28-30"
}

@techreport{green:cognitive-dimensions,
  author = "TRG Green and AF Blackwell",
  year = 1998,
  title = "Cognitive Dimensions of information artefacts: a tutorial",
  institution = "Cambridge University",
  url = "http://www.cl.cam.ac.uk/~afb21/CognitiveDimensions/CDtutorial.pdf"
}

@inproceedings{pane:usinghci,
  author = "J Pane and  B Myers and L Miller",
  title = "Using {HCI} techniques to design a more usable programming system",
  crossref = "hcc02",
  pages = "198-206"
}

@InProceedings{ambler:forms,
    author = "A Ambler",
    title = "Forms: Expanding the Visualness of Sheet Languages",
    year = 1987,
    month = aug,
    booktitle = "Workshop on Visual Languages, Linkoping, Sweden"
}

@article{ambler:formulate,
  author = "A Ambler",
  year = 1999,
  title = "The {Formulate} Visual Programming Language",
  journal = "Dr. Dobb's Journal", 
  month = aug,
  pages = "21-28"
}

@article{ambler:iteration,
  author = "A Ambler and M Burnett", 
  title = "Visual Forms of Iteration that Preserve Single Assignment",
  journal = "Journal of Visual Languages and Computing",
  volume = 1,
  issue = 2, 
  month = jun,
  year = 1990, 
  pages = "159-181"
}

@article{burnett:interactive,
  author = "M Burnett and A Ambler", 
  title = "Interactive Visual Data Abstraction in a Declarative Visual Programming Language",
  journal = "Journal of Visual Languages and Computing",
  volume = 5,
  issue = 1, 
  month = mar,
  year= 1994, 
  pages = "29-60" 
}

@article{burnett:forms3,
  author = "Margaret Burnett and John Atwood and Rebecca Walpole Djang and 
            Herkimer Gottfried and James Reichwein and Sherry Yang", 
  title = "{Forms/3}: A First-Order Visual Language to Explore the Boundaries of the Spreadsheet Paradigm",
  journal = jfp,
  volume = 11,
  issue = 2,
  month = mar, year = 2001,
  pages = "155-206"
}

\article{burnett:generalization,
  author = "Margaret Burnett and Sherry Yang and Jay Summet", 
  title = "A Scalable Method for Deductive Generalization in the Spreadsheet Paradigm",
  journal = "ACM Transactions on Computer-Human Interaction", 
  month = dec, year = 2002
}

@article{chi:principles,
  author = "E Chi and J Riedl and P Barry and P Konstan and J Konstan",
  title = "Principles for Information Visualization Spreadsheets",
  journal = "IEEE Computer Graphics and Applications", 
  month = jul,
  year = 1998,
  pages = "30-38"
} 

@article{hudson:spreadsheet,
  author = "S Hudson",
  title = "User Interface Specification Using an Enhanced Spreadsheet Model",
  journal = "ACM Transactions on Graphics",
  volume = 13, issue = 4, 
  month = jul, year = 1994, 
  pages = "209-239"
}

@incollection{hughes:animated,
  author = "C Hughes and J Moshell", 
  title = "{Action Graphics}: A Spreadsheet-Based Language for Animated Simulation",
  booktitle = "Visual Languages and Applications",
  editor = "T Ichikawa and E Jungert and R Korfhage",
  publisher = {Plenum Publishing}, 
  place = "New York", 
  year = 1990, 
  pages = "203-235"
}

@article{levoy:images,
  author = "M Levoy",
  title = "Spreadsheet for Images",
  journal = "Computer Graphics",
  volume = 28, issue = 4, 
  year = 1994, pages = "139-146"
}

@inproceedings{myers:graphical-techniques,
  author = "B Myers", 
  title = "Graphical Techniques in a Spreadsheet for Specifying User Interfaces",
  booktitle = "ACM Conference on Human Factors in Computing Systems, New Orleans", 
  month = apr, year = 1991, pages = "243-249"
}

@inproceedings{smedley:prograph,
  author = "T Smedley and P Cox and S Byrne", 
  title = "Expanding the Utility of Spreadsheets Through the Integration of Visual Programming and User Interface Objects",
  booktitle = "Advanced Visual Interfaces '96, Gubbio, Italy", 
  month = may, year = 1996, pages = "148-155"
}

@inproceedings{wang:solving,
  author = "G Wang and A Ambler", 
  title = "Solving Display-Based Problems",
  booktitle = "IEEE Symposium on Visual Languages, Boulder, Colorado", 
  month = sep, year = 1996, 
  pages = "122-129"
}

@article{blackwell:swyn,
  author = "A Blackwell",
  title = "See what you need: helping end users to build abstractions",
  journal = "Journal of Visual Languages and Computing",
  volume = 5, issue = 12,
  month = oct, year = 2001,
  pages = "475-499"
}

@book{empirical-studies-of-programmers,
  title = "Empirical Studies of Programmers (Vols 1-7)",
  editor = "E Soloway and S Iyengar",
  publisher = "Intellect",
  year = 1986
}

@proceedings{esp02,
  key = "ESP'02",
  title = "Symposium on Empirical Studies of Programmers",
  year = 2002,
  note = "At [HCC'02]"
}

@proceedings{hcc02,
  key = "HCC'02",
  title = "IEEE Conference on Human-Centric Computing Languages and Environments, Arlington",
  booktitle = "IEEE Conference on Human-Centric Computing Languages and Environments, Arlington",
  publisher = "IEEE Computer Society",
  month = sep,
  year = 2002
}

% ----------------------------- Books ------------------------------

@book{oo-theory-book,
  title="Theoretical aspects of object-oriented programming",
  booktitle="Theoretical aspects of object-oriented programming",
  editor = "CA Gunter and JC Mitchell",
  publisher = mit,
  year = 1994
}


% -------------------------- Stuff added by Rob Ennals -------------

@inproceedings{ball-larus:branch-prediction-for-free,
    author = "Thomas Ball and James R. Larus",
    title = "Branch Prediction For Free",
    crossref = "pldi93",
    pages = "300-313"
}

@phdthesis{wansbrough:usage,
author="Keith Wansbrough",
title="Simple Polymorphic Usage Analysis",
school="Computer Laboratory, University of Cambridge",
month=mar,
year=2002}

@phdthesis{faxen:thesis,
 author         = "Karl-Filip Fax\'{e}n",
 title          = "Analysing, Transforming and Compiling Lazy Functional 
                   Programs",
 school         = "Department of Teleinformatics, Royal Institute of 
                   Technology",
 year           = 1997,
 month          = jun
}

@inproceedings{faxen:dynamic-cheap-eagerness,
author="Karl-Filip Faxén",
title="Dynamic Cheap Eagerness",
booktitle="Proceedings of the 2001 Workshop on Implementing Functional Languages",
year="2001",
publisher="Springer Verlag"}

@inproceedings{faxen:cheap-eagerness,
author="Karl-Filip Faxén",
title="Cheap Eagerness: Speculative Evaluation in a Lazy Functional Language",
crossref="icfp00"}

@unpublished{tolmach:core,
author="Andrew Tolmach and the GHC Team",
title="An External Representation for the GHC Core Language",
year=2001}

@inproceedings{arnold:instcode,
title="A Framework for Reducing the Cost of Instrumented Code",
author="Matthew Arnold and Barbara G. Ryder",
booktitle="Proceedings of the {SIGPLAN} Conference on Programming Language Design and Implementation",
year=2001}

@unpublished{maurer:wordcount,
author="Luke Maurer",
title="Isn't this tail recursive?",
note="Message posted to the Haskell mailing list: http://haskell.org/ pipermail/haskell/2002-March/009126.html",
month=mar,
year=2002}

@phdthesis{maessen:eager-haskell,
title="Hybrid Eager and Lazy Evaluation for Efficient Compilation of Haskell",
author="Jan-Willem Maessen",
school="Massachusetts Institute of Technology",
year=2002,
month="June"}

@techreport{von-dorrien:stingy-evaluation,
title="Stingy Evaluation",
author="Christina von Dorrien",
year=1989,
month=May,
type="Licentiate Thesis",
institution="Chalmers University of Technology"}

@manual{intel:ia32data,
key="Intel",
title="Intel Architecture Software Developer's Manual",
organization="Intel Corporation",
year=1999}

@phdthesis{boquist:grin,
title="Code Optimisation Techniques for Lazy Functional Languages",
author="Urban Boquist",
school="Chalmers University of Technology, Sweden",
year=1999,
month="April"}

@manual{sun:hotspot,
organization="Sun Microsystems",
title="The Java HotSpot Virtual machine, White Paper",
year=2001,
key="Sun"}

@inproceedings{ibm:jalapeno,
author="Michael G. Burke and Jong-Doek Choi and Stephen Fink and David Grove and Michael Hind and Vivek Sarkar and Mauricio J. Serrano and V.C. Sreedhar and Harinin Srinivasan and Jahn Whaley",
booktitle="Proceedings of the ACM Java Grande Conference",
title="The {Jalapeno} Dynamic Optimizing Compiler for {Java}",
year=1999}

@proceedings{fdo,
title="ACM Workshop on Feedback Directed and Dynamic Optimization (FDDO)",
year=2001,
key="FDDO"
}

@inproceedings{kewley:annotations,
title="Evaluations Annotations for Hope+",
author="John M. Kewley and Kevin Glynn",
booktitle="Proceedings of the Glasgow Workshop on Functional Programming",
year="1989",
pages="329-337",
series="WICS",
publisher="Springer-Verlag"}

@techreport{peytonjones:stgruntime,
title="The {STG} Runtime System (revised)",
author="Simon {Peyton~Jones} and Simon Marlow and Alastair Reid",
year="1999",
month="February",
institution="Microsoft Research",
note="Part of GHC source package"}

@Article{goldstein-etal:lazy-threads,
author = 	 {Seth Copen Goldstein and Klaus Erik Schauser and David E. Culler}, 
title = 	 {Lazy Threads: Implementing a Fast Parallel Call},
journal = 	 {Journal of Parallel and Distributed Computing},
year = 	 1997,
note =	 {Submitted; revised version of
    {\cite{goldstein-etal:enabling-prim}}}
}

@inproceedings{chak:lazythread,
author = "Manuel M T Chakravarty",
title = "Lazy Thread and Task Creation in Parallel Graph Reduction",
booktitle = "International Workshop on Implementing Functional Languages",
year = 1998,
series = lncs,
publisher = springer
}

@book{nikhil:ph,
author = "Rishiyur S Nikhil and Arvind",
title = "Implicit Parallel Programming in pH",
publisher = "Morgan Kaufman",
year = 2001}

@techreport{nikhil:id,
author = "Rishiyur Sivaswami Nikhil",
title = "Id (version 90.1) Language Reference Manual",
institution = "MIT Computation Structures Group",
number = "CSG Memo 284-2",
year = 1991}

@inproceedings{huntback:parlog-priorities,
author = "M.M. Huntback",
title = "Speculative Computation and Priorities in Concurrent Logic Languages",
booktitle = "ALPUK Conference",
year = 1991
}

@inproceedings{mattson:local,
    author = "Mattson Jr, Jim S. and Griswold, William G.",
    title = "{L}ocal {S}peculative {E}valuation for {D}istributed {G}raph {R}eduction",
    crossref = "Glasgow93",
    pages = "185--192",
    url = "citeseer.nj.nec.com/173522.html" }

@inproceedings{maessen:eager-haskell-hw,
author = "Jan-Willem Maessen",
title = "{Eager Haskell}: Resource-bounded Execution Yields Efficient Iteration",
booktitle = "The Haskell Workshop, Pittsburgh",
year = 2002
}

@inproceedings{smith:branch-prediction,
author = "James E. Smith",
title = "A study of branch prediction strategies",
booktitle = "International Symposium on Computer Architecture",
year = 1981}


% ------------------------------------------------------------------
%                    Cross refs 
% 
% BibTeX has a new cross-referencing feature, explained by an
% example. Suppose you say \cite{no-gnats} in your document, and suppose
% you have these two entries in your database file:
% 
%%   INPROCEEDINGS(no-gnats,
%%     crossref = "gg-proceedings",
%%     author = "Rocky Gneisser",
%%     title = "No Gnats Are Taken for Granite",
%%     pages = "133-139")
%   .  .  .
%%   PROCEEDINGS(gg-proceedings,
%%     editor = "Gerald Ford and Jimmy Carter",
%%     title = "The Gnats and Gnus 1988 Proceedings",
%%     booktitle = "The Gnats and Gnus 1988 Proceedings")
% 
% Two things happen. First, the special crossref field tells BibTeX 
% that the no-gnats entry should inherit any fields it's missing from
% the entry it cross references, gg-proceedings. In this case it in
% inherits the two fields editor and booktitle. Note that, in the
% standard styles at least, the booktitle field is irrelevant for the
% PROCEEDINGS entry type. The booktitle field appears here in the
% gg-proceedings entry only so that the entries that cross reference it
% may inherit the field. No matter how many papers from this meeting
% exist in the database, this booktitle field need only appear once.
% 
% The second thing that happens: BibTeX automatically puts the entry
% gg-proceedings into the reference list if it's cross referenced by two
% or more entries that you \cite or \nocite, even if you don't \cite or
% \nocite the gg-proceedings entry itself. So gg-proceedings will
% automatically appear on the reference list if one other entry besides
% no-gnats cross references it.
% 
% To guarantee that this scheme works, however, a cross-referenced entry
% must occur later in the database files than every entry that
% cross-references it. Thus, putting all cross-referenced entries at the
% end makes sense. (Moreover, you may not reliably nest cross
% references; that is, a cross-referenced entry may not itself reliably
% cross reference an entry. This is almost certainly not something you'd
% want to do, though.)

% ******* Add a "key" field if there is more than one citation from a paper ***

% ----------------------------- LFP/FPCA/ICFP ------------------------------

@Proceedings{icfp05,
  key = "ICFP05",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'05)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'05)}",
  address = 	 "Tallinn, Estonia",
  publisher = acm,
  year = 	 2005,
  month = 	 sep
}

@Proceedings{icfp04,
  key = "ICFP04",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'04)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'04)}",
  address = 	 "Snowbird, Utah",
  publisher = acm,
  year = 	 2004,
  month = 	 sep
}

@Proceedings{icfp03,
  key = "ICFP03",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'03)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'03)}",
  address = 	 "Uppsala, Sweden",
  publisher = acm,
  year = 	 2003,
  month = 	 sep
}

@Proceedings{icfp02,
  key = "ICFP02",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'02)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'02)}",
  address = 	 "Pittsburgh",
  publisher = acm,
  year = 	 2002,
  month = 	 sep
}

@Proceedings{icfp01,
  key = "ICFP01",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'01)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'01)}",
  address = 	 "Florence",
  publisher = acm,
  year = 	 2001,
  month = 	 sep,
  series =       "ACM SIGPLAN notices",
  volume =       "36, 10",
}

@Proceedings{icfp00,
  key = "ICFP00",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'00)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'00)}",
  address = 	 "Montreal",
  publisher = acm,
  year = 	 2000,
  month = 	 sep
}

@Proceedings{icfp99,
  key = "ICFP99",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'99)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'99)}",
  address = 	 "Paris",
  publisher = acm,
  year = 	 1999,
  month = 	 sep
}

@Proceedings{icfp98,
  key = "ICFP98",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'98)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'98)}",
  address = 	 "Baltimore",
  publisher = acm,
  year = 	 1998,
   series = "ACM SIGPLAN Notices",
   volume = "34(1)"
}

@Proceedings{icfp97,
  key = "ICFP97",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'97)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'97)}",
  address = 	 "Amsterdam",
  publisher = acm,
  year = 	 1997,
  month = 	 aug
}

@Proceedings{icfp96,
  key = "ICFP96",
  title = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'96)}",
  booktitle = 	 "{ACM SIGPLAN International Conference on Functional Programming (ICFP'96)}",
  address = 	 "Philadelphia",
  publisher = acm,
  year = 	 1996,
  month = 	 may
}

@Proceedings{fpca95,
  title =     "{ACM Conference on Functional Programming and Computer Architecture (FPCA'95)}",
  booktitle = "{ACM Conference on Functional Programming and Computer Architecture (FPCA'95)}",
  publisher = acm,
  year = 1995,
  address = "La Jolla, California",
  key = "FPCA95"
}

@Proceedings{lfp94,
  title = 	 "{ACM Symposium on Lisp and Functional Programming}",
  booktitle = 	 "{ACM Symposium on Lisp and Functional Programming}",
  address = 	 "Orlando, Florida",
  publisher = acm,
  year = 	 1994,
  month = 	 jun
}

@Proceedings{fpca93,
  key = "FPCA93",
  title =     "{ACM Conference on Functional Programming and Computer Architecture (FPCA'93)}",
  booktitle = "{ACM Conference on Functional Programming and Computer Architecture (FPCA'93)}",
  publisher = acm,
  year = 1993,
  address = "Cophenhagen",
  note = "ISBN 0-89791-595-X"
}

@Proceedings{lfp92,
  title = 	 "{ACM Symposium on Lisp and Functional Programming}",
  booktitle = 	 "{ACM Symposium on Lisp and Functional Programming}",
  publisher = acm,
  year = 	 1992
}

@Proceedings{fpca91,
  title =     "{ACM Conference on Functional Programming and Computer Architecture (FPCA'91)}",
  booktitle = "{ACM Conference on Functional Programming and Computer Architecture (FPCA'91)}",
  editor = "RJM Hughes",
  publisher = springer,
  series = lncs,
  volume    = {523},
  year = 1991,
  address = "Boston"
}

@Proceedings{fpca89,
  title =     "{ACM Conference on Functional Programming and Computer Architecture (FPCA'89)}",
  booktitle = "{ACM Conference on Functional Programming and Computer Architecture (FPCA'89)}",
   publisher = {ACM},
   month = sep,
   year = {1989},
  address = "London"
}

@Proceedings{lfp86,
  title = 	 "{ACM Symposium on Lisp and Functional Programming}",
  booktitle = 	 "{ACM Symposium on Lisp and Functional Programming}",
  publisher = acm,
  year = 	 1986
}

@Proceedings{fpca85,
  title =     "{ACM Conference on Functional Programming and Computer Architecture (FPCA'85)}",
  booktitle = "{ACM Conference on Functional Programming and Computer Architecture (FPCA'85)}",
        publisher = "Springer-Verlag",
        series = lncs,
        volume = 201,
        editor = "Jean-Pierre Jouannaud",
  month = sep,
  year = 1985,
  address = "Nancy, France"
}

@Proceedings{lfp84,
  key = "LFP84",
  title = 	 "{ACM Symposium on Lisp and Functional Programming (LFP'84)}",
  booktitle = 	 "{ACM Symposium on Lisp and Functional Programming (LFP'84)}",
  publisher = acm,
  year = 	 1984
}

@Proceedings{lfp80,
  title = 	 "{ACM Symposium on Lisp and Functional Programming}",
  booktitle = 	 "{ACM Symposium on Lisp and Functional Programming}",
  publisher = acm,
  year = 	 1980
}

% ----------------------------- PLDI ------------------------------

@Proceedings{pldi02,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'02)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'02)}",
  publisher = acm,
  year = 	 2002,
  month = 	 jun
}

@Proceedings{pldi01,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'01)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'01)}",
  address = 	 "Snowbird, Utah",
  publisher = acm,
  year = 	 2001,
  month = 	 jun
}

@Proceedings{pldi00,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'00)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'00)}",
  address = 	 "Vancouver, BC",
  publisher = acm,
  year = 	 2000,
  month = 	 jun
}

@Proceedings{pldi99,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'99)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'99)}",
  address = 	 "Atlanta",
  publisher = acm,
  year = 	 1999,
  month = 	 may
}

@proceedings{pldi98,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'98)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'98)}",
  address = 	 "Atlanta",
  publisher = acm,
  year = 	 1998,
  journal =      "ACM SIG{­}PLAN Notices",
  volume =       "33",
  issue =       "5",
  month = 	 may
}

@Proceedings{pldi96,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'96)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'96)}",
  address  = "Philadelphia",
  publisher = acm,
  year = 	 1996,
  month = 	 may
}

@Proceedings{pldi93,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'93)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'93)}",
  publisher = acm,
  year = 	 1993,
  month = 	 jun
}

@Proceedings{pldi91,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'91)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'91)}",
  publisher = acm,
  year = 	 1991,
  month = 	 jun
}

@Proceedings{pldi88,
  title = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'88)}",
  booktitle = 	 "{ACM Conference on Programming Languages Design and Implementation (PLDI'88)}",
  publisher = acm,
  year = 	 1988,
  month = 	 jul
}

% ----------------------------- TLDI, TIC ------------------------------

@Proceedings{tldi03,
  title="{ACM SIGPLAN International Workshop on Types in Language Design and Implementation (TLDI'03)}",
  booktitle="{ACM SIGPLAN International Workshop on Types in Language Design and Implementation (TLDI'03)}",
  publisher=acm,
  address="New Orleans",
  month=jan,
  year="2003"
}



% ----------------------------- PLILP ------------------------------

@Proceedings{plilp98,
  title="Proceedings of the 10th International Symposium on Programming Languages,
             Implementations, Logics and Programs (PLILP'98)", 
  booktitle="Proceedings of the 10th International Symposium on Programming Languages,
             Implementations, Logics and Programs (PLILP'98)", 
  publisher="Springer Verlag LNCS",
  address="Pisa",
  month=sep,
  year="1998"
}

@Proceedings{plilp97,
  key = "PLILP'97",
  title = "International Symposium on Programming Languages
                  Implementations, Logics, and Programs (PLILP'97)",
  booktitle = "International Symposium on Programming Languages
                  Implementations, Logics, and Programs (PLILP'97)",
  month		= sep,
  year = 1997,
  publisher = springer,
  series = lncs,
 isbn = {3-540-63398-7},
  volume = "1292"
}


% ----------------------------- POPL ------------------------------

@Proceedings{popl06,
  title = 	 "{ACM Symposium on Principles of Programming Languages (POPL'06)}",
  booktitle = 	 "{ACM Symposium on Principles of Programming Languages (POPL'06)}",
  address = 	 "Charleston",
  publisher = acm,
  year = 	 2006,
  month = 	 jan
}

@Proceedings{popl04,
  title = 	 "{ACM Symposium on Principles of Programming Languages (POPL'04)}",
  booktitle = 	 "{ACM Symposium on Principles of Programming Languages (POPL'04)}",
  address = 	 "Charleston",
  publisher = acm,
  year = 	 2004,
  month = 	 jan
}

@Proceedings{popl02,
  title = 	 "{ACM Symposium on Principles of Programming Languages (POPL'02)}",
  booktitle = 	 "{ACM Symposium on Principles of Programming Languages (POPL'02)}",
  address = 	 "Portland",
  publisher = acm,
  year = 	 2002,
  month = 	 jan
}

@Proceedings{popl01,
  title = 	 "{28th ACM Symposium on Principles of Programming Languages (POPL'01)}",
  booktitle = 	 "{28th ACM Symposium on Principles of Programming Languages (POPL'01)}",
  address = 	 "London",
  publisher = acm,
  year = 	 2001,
  month = 	 jan
}

@Proceedings{popl00,
  key = "POPL00",
  title = 	 "{27th ACM Symposium on Principles of Programming Languages (POPL'00)}",
  booktitle = 	 "{27th ACM Symposium on Principles of Programming Languages (POPL'00)}",
  address = 	 "Boston",
  publisher = acm,
  year = 	 2000,
  month = 	 jan
}

@Proceedings{popl99,
  title = 	 "{26th ACM Symposium on Principles of Programming Languages (POPL'99)}",
  booktitle = 	 "{26th ACM Symposium on Principles of Programming Languages (POPL'99)}",
  address = 	 "San Antonio",
  publisher = acm,
  year = 	 1999,
  month = 	 jan
}

@Proceedings{popl98,
  title = 	 "{25th ACM Symposium on Principles of Programming Languages (POPL'98)}",
  booktitle = 	 "{25th ACM Symposium on Principles of Programming Languages (POPL'98)}",
  address = 	 "San Diego",
  publisher = acm,
  year = 	 1998,
  month = 	 jan
}

@Proceedings{popl97,
  title = 	 "{24th ACM Symposium on Principles of Programming Languages (POPL'97)}",
  booktitle = 	 "{24th ACM Symposium on Principles of Programming Languages (POPL'97)}",
  address = 	 "Paris",
  publisher = acm,
  year = 	 1997,
  month = 	 jan
}

@Proceedings{popl96,
  title = 	 "{23rd ACM Symposium on Principles of Programming Languages (POPL'96)}",
  booktitle = 	 "{23rd ACM Symposium on Principles of Programming Languages (POPL'96)}",
  address = 	 "St Petersburg Beach, Florida",
  publisher = acm,
  year = 	 1996,
  month = 	 jan
}

@Proceedings{popl95,
  title = 	 "{22nd ACM Symposium on Principles of Programming Languages (POPL'95)}",
  booktitle = 	 "{22nd ACM Symposium on Principles of Programming Languages (POPL'95)}",
  publisher = acm,
  year = 	 1995,
  month = 	 jan
}

@Proceedings{popl94,
  title = 	 "{21st ACM Symposium on Principles of Programming Languages (POPL'94)}",
  booktitle = 	 "{21st ACM Symposium on Principles of Programming Languages (POPL'94)}",
  address = 	 "Charleston",
  publisher = acm,
  year = 	 1993,
  month = 	 jan
}

@Proceedings{popl93,
  key   = "POPL93",
  title = 	 "{20th ACM Symposium on Principles of Programming Languages (POPL'93)}",
  booktitle = 	 "{20th ACM Symposium on Principles of Programming Languages (POPL'93)}",
  publisher = acm,
  year = 	 1993,
  month = 	 jan
}

@Proceedings{popl92,
  title = 	 "{20th ACM Symposium on Principles of Programming Languages (POPL'92)}",
  booktitle = 	 "{20th ACM Symposium on Principles of Programming Languages (POPL'92)}",
  address = "Albuquerque",
  publisher = acm,
  year = 	 1992,
  month = 	 jan
}

@Proceedings{popl91,
  title = 	 "{19th ACM Symposium on Principles of Programming Languages (POPL'91)}",
  booktitle = 	 "{19th ACM Symposium on Principles of Programming Languages (POPL'91)}",
  publisher = acm,
  year = 	 1991,
  month = 	 jan
}

% ----------------------------- SAS  ------------------------------

@Proceedings{sas97,
  booktitle     = "4th Static Analysis Symposium",
  title     = "4th Static Analysis Symposium",
  year          = 1997,
  month         = sep,
  publisher = springer,
  number = 1302,
  series        = lncs
}

@Proceedings{sas95,
  booktitle     = "2nd Static Analysis Symposium",
  title     = "2nd Static Analysis Symposium",
  year          = 1995,
  month         = sep,
  address       = {Glasgow, Scotland},
  publisher = springer,
  series        = lncs
}

@Proceedings{sas94,
  booktitle     = "1st Static Analysis Symposium (SAS'94)",
  title     = "1st Static Analysis Symposium",
  year          = 1994,
  month         = sep,
  address       = {Namur, Belgium},
  publisher = springer,
  number = 864,
  series        = lncs
}

% ----------------------------- Other conferencess ------------------------------

@proceedings{hlcl00,
  booktitle = "4th International Workshop on High-Level Concurrent Languages (HLCL'00)",
  title = "4th International Workshop on High-Level Concurrent Languages (HLCL'00)",
  address = "Montreal, Canada",
  month = sep,
  year = 2000
}


@Proceedings{ifl99,
  booktitle = "International Workshop on Implementing Functional Languages (IFL'99)",
  title = "International Workshop on Implementing Functional Languages (IFL'99)",
  address = "Lochem, The Netherlands",
  editor = "P Koopman and C Clack",
  number = 1868,
  year = 1999,
  series = lncs,
  publisher = springer
}
  
@proceedings{hoots99,
  title = "Higher Order Operational Techniques in Semantics: Third International Workshop",
  booktitle = "Higher Order Operational Techniques in Semantics: Third International Workshop",
  series = "Electronic Notes in Theoretical Computer Science",
  number = 26,
  publisher = "Elsevier", 
  year = 1999
}
  
@Proceedings{ppdp99,
  booktitle = 	 "International Conference on Principles and Practice
                  of Declarative Programming",
  title = 	 "International Conference on Principles and Practice
                  of Declarative Programming",
  year = 	 1999,
  editor = 	 "G Nadathur",
  series = 	 lncs,
  number = 1702,
  publisher = "Springer",
  address = 	 "Berlin",
  month = 	 sep
}

@Proceedings{iwmm92,
  booktitle = 	 "International Workshop on Memory Management",
  title = 	 "International Workshop on Memory Management",
  year = 	 1992,
  editor = 	 "Yves Bekkers and Jacques Cohen",
  number =       637,
  series = 	 lncs,
  publisher = springer,
  address = 	 "St. Malo, France",
  month = 	 sep
}

@Proceedings{padl99,
  title = 	 "Practical Applications of Declarative Languages",
  booktitle = 	 "Practical Applications of Declarative Languages",
  year = 	 1999,
  editor = "Gupta",
  number =       1551,
  series = 	 lncs,
  publisher = springer,
  address = 	 "San Antonio, Texas"
}

@proceedings{tic98,
        title =     "Workshop on Types in Compilation '98, Kyoto",
        booktitle =     "Workshop on Types in Compilation '98, Kyoto",
        publisher =     springer,
        series = lncs,
        issue = 1473,
        year =          1998,
        month =         mar}

@proceedings{tic97,
        title =     "Workshop on Types in Compilation '97",
        booktitle =     "Workshop on Types in Compilation '97",
        publisher =     "Technical report BCCS-97-03, Boston College,
                         Computer Science Department",
        year =          1997,
        month =         jun}

@proceedings{pepm97,
  title = {ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based
                  Program Manipulation (PEPM '97)},
  booktitle = {ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based
                  Program Manipulation (PEPM '97)},
  address = {Amsterdam}, 
  month = jun,
  year = 1997,
  publisher = acm,
  series = sigplan,
  volume = 32,
  issue = 12
}


  
  year =         "1995",
  month =        jul,

@proceedings{ppopp95,
  booktitle =    "Proceedings of the 5th Symposium on Principles and
                 Practice of Parallel Programming (PPOPP'95)",
  title =    "Proceedings of the 5th Symposium on Principles and
                 Practice of Parallel Programming (PPOPP'95)",
  year		= 1995,
  month		= jul  
}

@proceedings{ics95,
  title	= {4th International Computer Symposium (ICS'95)},
  booktitle	= {4th International Computer Symposium (ICS'95)},
  year		= 1995,
  month		= nov,  
  address	= {Mexico city, Mexico}
}

@proceedings{conpar94,
  title = {CONPAR},
  booktitle = {CONPAR},
  address = {Linz, Austria},
   series = lncs, 
   publisher = springer,
   number = 854,
   year = 1994,
   month = sep
}

% ----------------------------- ESOP ------------------------------
@proceedings{esop02,
  TITLE = {Programming Languages and Systems: 11th
               European Symposium on Programming (ESOP 2002),
               Grenoble, France},
  BOOKTITLE = {Programming Languages and Systems: 11th
               European Symposium on Programming (ESOP 2002),
               Grenoble, France},
  EDITOR = {Daniel Le M\'{e}tayer},
  publisher = springer,
   SERIES = lncs,
  number = "2305",
  YEAR = 2002
}

@Proceedings{esop00,
  title = "{European Symposium on Programming (ESOP'00)}",
  booktitle = "{European Symposium on Programming (ESOP'00)}",
  address = "Berlin, Germany",
  publisher = springer,
  series = lncs,
  number = 1782,
  month = mar,
  year = 2000
}

@Proceedings{esop92,
  title = "{European Symposium on Programming (ESOP'92)}",
  booktitle = "{European Symposium on Programming (ESOP'92)}",
  address = "Rennes, France",
  publisher = springer,
  series = lncs,
  number = 582,
  month = feb,
  year = 1992
}

% ----------------------------- FP summer schools ------------------------------

@proceedings{afp98,
  title = "Third International School on Advanced Functional Programming (AFP'98)",
  booktitle = "Third International School on Advanced Functional Programming (AFP'98)",
  address = "Braga, Portugal",
  publisher = springer,
  series = lncs,
  number = 1608,
  year = 1999
}

@proceedings{afp96,
  title = "Second International School on Advanced Functional Programming (AFP'96)",
  booktitle = "Second International School on Advanced Functional Programming (AFP'96)",
  editors = "J Launchbury and  E Meijer and T Sheard",
  address = "Olympia, Washington",
  publisher = springer,
  series = lncs,
  number = 1129,
  year = 1996
}


% ----------------------------- Computer Architecture conference ------------------------------

@proceedings{hpca03,
  title = "Proc International Conference on High-Performance Computer Architecture",
  booktitle = "Proc International Conference on High-Performance Computer Architecture",
  year = 2003
}


@proceedings{isca95,
  title = "22nd  International Symposium on Computer Architecture (ISCA'95)",
  booktitle = "22nd  International Symposium on Computer Architecture (ISCA'95)",
  address = "Santa Margherita Ligure, Italy",
  publisher = acm,
  year = 1995
}


% ----------------------------- ML workshops ------------------------------

@Proceedings{ml-workshop-05,
  title = "{Proc ACM Workshop on ML (ML'2005)}",
  booktitle = "{Proc ACM Workshop on ML (ML'2005)}",
  editor = "Nick Benton and Xavier Leroy",
  address = "Tallinn, Estonia",
  year = 2005
}


% ----------------------------- Haskell workshops ------------------------------

@PROCEEDINGS{haskell-workshop-05
, TITLE="Proceedings of ACM Workshop on Haskell, Tallinn"
, BOOKTITLE="Proceedings of ACM Workshop on Haskell, Tallinn"
, month = sep
, YEAR="2005"
, address = "Tallinn, Estonia"
, publisher = "ACM"
, key = "Haskell05"
}

@PROCEEDINGS{haskell-workshop-04
, TITLE="Proceedings of ACM Workshop on Haskell, Snowbird"
, BOOKTITLE="Proceedings of ACM Workshop on Haskell, Snowbird"
, month = oct
, YEAR="2004"
, address = "Snowbird, Utah"
, publisher = "ACM"
, key = "Haskell04"
}

@PROCEEDINGS{haskell-workshop-03
, TITLE="Proceedings of the 2003 Haskell Workshop, Uppsala"
, BOOKTITLE="Proceedings of the 2003 Haskell Workshop, Uppsala"
, month = aug
, YEAR="2003"
, editor = "Johan Jeuring"
, key = "Haskell03"
}

@PROCEEDINGS{haskell-workshop-02
, TITLE="Proceedings of the 2002 Haskell Workshop, Pittsburgh"
, BOOKTITLE="Proceedings of the 2002 Haskell Workshop, Pittsburgh"
, month = oct
, YEAR="2002"
, EDITOR="Manuel Chakravarty"
, key = "Haskell02"
}

@PROCEEDINGS{haskell-workshop-01
, TITLE="Proceedings of the 2001 Haskell Workshop, Florence"
, BOOKTITLE="Proceedings of the 2001 Haskell Workshop, Florence"
, YEAR="2001"
, key = "Haskell01"
}

@PROCEEDINGS{haskell-workshop-00
, TITLE="Proceedings of the 2000 Haskell Workshop, Montreal"
, BOOKTITLE="Proceedings of the 2000 Haskell Workshop, Montreal"
, month = sep
, YEAR="2000"
, EDITOR="Graham Hutton"
, SERIES="Technical Reports"
, ORGANISATION="Nottingham University Department of Computer Science"
, NUMBER="NOTTCS-TR-00-1"
, 
}

@PROCEEDINGS{haskell-workshop-99,
  TITLE="Proceedings of the 1999 Haskell Workshop"
, BOOKTITLE="Proceedings of the 1999 Haskell Workshop"
, YEAR="1999"
, EDITOR="Erik Meijer"
, SERIES="Technical Reports"
, ORGANISATION="Utrecht University Department of Computer Science"
, NUMBER="UU-CS-1999-28"
, NOTE="Available at \url{ftp://ftp.cs.uu.nl/pub/RUU/CS/techreps/CS-1999/1999-28.pdf}"
}

@Proceedings{haskell-workshop-97,
  title = "{Haskell workshop}",
  booktitle = "{Haskell workshop}",
  editor = "John Launchbury",
  address = "Amsterdam, Netherlands",
  year = 1997
}


% ----------------------------- Glasgow workshops ------------------------------

@Proceedings{Glasgow97,
  title = "{Glasgow Workshop on Functional Programming, Ullapool}",
  booktitle = "{Glasgow Workshop on Functional Programming, Ullapool}",
  institution = "University of Glasgow",
  year = 1997
}

@Proceedings{Glasgow93,
  title = "{Functional Programming, Glasgow 1993}",
  booktitle = "{Functional Programming, Glasgow 1993}",
  editor = "K Hammond and JT O'Donnell",
  publisher = springer,
  series = wic,
  year = 1993
}

@Proceedings{Glasgow92,
  title = "{Functional Programming, Glasgow 1992}",
  booktitle = "{Functional Programming, Glasgow 1992}",
  editor = "J Launchbury and PM Sansom",
  publisher = springer,
  series = wic,
  year = 1992
}

@TechReport{gaster-jones:trex,
  author = 	 {Benedict R. Gaster and Mark P. Jones},
  title = 	 {A Polymorphic Type System for Extensible Records and Variants},
  institution =  {Department of Computer Science, University of Nottingham},
  number = "TR-=96-3",
  year = 	 1996,
  url = "http://www.cse.ogi.edu/~mpj/pubs/polyrec.html"
}

@TechReport{reppy:sml-basis,
  author = 	 {J. Reppy et al.},
  title = 	 {Standard ML Basis Library},
  institution =  {Bell Labs, Lucent Technologies},
  year = 	 1997
}


@techreport{PeytonJones87a,
   author = {SL {Peyton~Jones}},
   title = {{FLIC} - a functional language intermediate code},
   type = {Internal note 2048, University College London},
   month = feb,
   year = {1987}
}


@inproceedings{ aditya91incremental,
    author = "Shail Aditya and Rishiyur S. Nikhil",
    title = "Incremental Polymorphism",
    booktitle = "Functional Programming Languages and Computer Architecture",
    pages = "379-405",
    year = "1991",
    url = "citeseer.ist.psu.edu/aditya91incremental.html" }

@TECHREPORT{hosoya+:hglti,
  AUTHOR = {Haruo Hosoya and Benjamin C. Pierce},
  TITLE = {How Good is Local Type Inference?},
  INSTITUTION = {University of Pennsylvania},
  NUMBER = {MS-CIS-99-17},
  MONTH = jun,
  YEAR = 1999,
  TR = {http://www.cis.upenn.edu/~bcpierce/papers/hgilti.ps}
}

@Article{garrigue+:ho-poly,
  author = 		  {Jacques Garrigue and Didier R\'{e}my},
  title = 		  {Semi-explicit first-class polymorphism for {ML}},
  journal = 	  {Journal of Information and Computation},
  year = 		  1999,
  volume =		  155,
  pages =		  {134--169}
}

@InProceedings{Jones97,
  author = 		  {Mark P. Jones},
  title = 		  {First-class Polymorphism with Type Inference},
  booktitle = 	  {POPL'97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages},
  pages =		  {483--496},
  year =			  1997,
  address =		  {Paris, France}
}

@techreport{hudak:NSWC-haskell
    ,author={Carlson, W.E. and Hudak, P. and Jones, M.P.}
    ,title={An Experiment Using {H}askell To Prototype
            ``Geometric Region Servers'' for Navy Command And Control}
    ,institution={Department of Computer Science, Yale University}
    ,type={Research Report}
    ,number={1031}
    ,month=Nov
    ,year=1993
    }

@inbook{hudak:dsl-little-languages
    ,author={Paul Hudak}
    ,title={Domain Specific Languages}
    ,booktitle={Handbook of Programming Languages, 
                Vol.\ III: Little Languages and Tools}
    ,chapter=3
    ,pages={39-60}
    ,editors={Peter H.\ Salas}
    ,year=1998
    ,publisher={MacMillan, Indianapolis}
    }

@article{hudak:fp-survey
    ,author={Hudak, P.}
    ,title={Conception, Evolution, and Application of Functional
            Programming Languages}
    ,journal={ACM Computing Surveys}
    ,volume=21
    ,number=3
    ,year=1989
    ,pages={359-411}
    }
 
@inproceedings{hudak:dsel-reuse-98
    ,author={Paul Hudak}
    ,title={Modular Domain Specific Languages and Tools}
    ,booktitle={Proceedings of Fifth International Conference 
                on Software Reuse}
    ,organization={IEEE Computer Society}
    ,year=1998
    ,month=Jun
    ,pages={134-142}
    }

@Article{nilsson:algorithmic-debugging,
  author = 	 "Henrik Nilsson and Peter Fritzson",
  title = 	 "Algorithmic Debugging for Lazy Functional Languages",
  journal =	 "Journal of Functional Programming",
  year =	 1994,
  volume =	 4,
  number =	 3,
  pages =        "337--370",
  month =	 jul
}

@Article{nilsson:evaluation-dependence-tree,
  author = 	 "Henrik Nilsson and Jan Sparud",
  title = 	 "The Evaluation Dependence Tree as a Basis for Lazy
		  Functional Debugging",
  journal =	 "Automated Software Engineering",
  year =	 1997,
  volume =	 4,
  number =	 2,
  pages =	 "121--150",
  month =	 apr
}

@InProceedings{gill:hood,
  author = 	 {Andy Gill},
  title = 	 {Debugging {Haskell} by Observing Intermediate Data Structures},
  booktitle =	 {Haskell Workshop},
  year =	 2000,
  month =	 {September},
  publisher =	 {ACM SIGPLAN}
}

@inproceedings{pope:buddha,
  title={{Declarative Debugging with Buddha}},
  author={Bernie Pope},
  editor    = {Varmo Vene and
               Tarmo Uustalu},
  booktitle     = {Advanced Functional Programming, 5th International School,
               AFP 2004, Tartu, Estonia, August 14-21, 2004, Revised Lectures},
  publisher = {Springer},
  series    = {Lecture Notes in Computer Science},
  volume    = {3622},
  year      = {2005},
  isbn      = {3-540-28540-7},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}

@inproceedings{lindig:random-testing,
  author    = {Christian Lindig},
  title     = {Random testing of C calling conventions.},
  booktitle = {AADEBUG},
  year      = {2005},
  pages     = {3-12},
  ee        = {http://doi.acm.org/10.1145/1085132},
  bibsource = {DBLP, http://dblp.uni-trier.de}
}
%  crossref  = {DBLP:conf/aadebug/2005},

@InProceedings{hudak-young:86,
  author =      "P. Hudak and J. Young",
  title =       "Higher-Order Strictness Analysis in Untyped Lambda Calculus",
  booktitle =   "ACM Symposium on Principles of Programming Languages",
  pages     =   "97-109",
  year =        "1986"
}

@article{blos88b
    ,author={Bloss, A. and Hudak, P. and Young, J.}
    ,title={An Optimizing Compiler for a Modern Functional Language}
    ,journal={The Computer Journal}
    ,volume=31
    ,number=6
    ,year=1988
    ,pages={152-161}
    }
 
@article{blos88
    ,author={Bloss, A. and Hudak, P. and Young, J.}    
    ,title={Code Optimizations for Lazy Evaluation}
    ,journal={Lisp and Symbolic Computation: An International Journal}
    ,year=1988
    ,volume=1
    ,number=2
    ,month=Sep
    ,pages={147-164}
    }

@phdthesis{youngphd
  ,author={Young, J.}
  ,title={The Semantic Analysis of Functional Programs: Theory and Practice}
  ,school={Yale University, Department of Computer Science}
  ,year=1988
  }

@phdthesis{blossphd
  ,author={Bloss, A.}
  ,title={Path Analysis: Using Order-of-Evaluation Information to
          Optimize Lazy Functional Languages}
  ,school={Yale University, Department of Computer Science}
  ,year=1988
  }


@Article{OrbitRetro,
  author =      "David Kranz and Richard Kesley and Jonathan Rees and
                Paul Hudak and James Philbin and Norman Adams",
  title =       "Retrospective on: 
                {O}rbit: an optimizing compiler for {S}cheme",
  journal =     "ACM SIGPLAN Notices, 20 Years of the ACM SIGPLAN Conference
                on Programming Language Design and Implementation
                (1979--1999): A Selection",
  editor =      "Kathryn S. McKinley",
  volume =      "39",
  number =      "4",
  pages =       "",
  month =       "April",
  year =        "2004"
}

@inproceedings{kran86
    ,author={Kranz, D. and Kelsey, R. and Rees, J. and Hudak, P. 
             and Philbin, J. and Adams, N.}
    ,title={ORBIT: an optimizing compiler for {Scheme}}
    ,booktitle={SIGPLAN '86 Symposium on Compiler Construction}
    ,organization={ACM}
    ,month=Jun
    ,year=1986
    ,pages={219-233}
    ,note={Published as SIGPLAN Notices Vol. 21, No. 7, July 1986}
    }

@InProceedings{huda84a
    ,key={hudak}
    ,author={Hudak, P. and Kranz, D.}
    ,title={A combinator-based compiler for a functional language}
    ,booktitle={11th ACM Symposium on Principles of Programming Languages}
    ,organization={ACM}
    ,year=1984
    ,month=Jan
    ,pages={121-132}
    }

@techreport{hudak:alfl
    ,author={Paul Hudak}
    ,title={{ALFL} {R}eference {M}anual and {P}rogrammer's {G}uide}
    ,institution={Yale University}
    ,type={Research Report}
    ,number={YALEU/DCS/RR-322, Second Edition}
    ,month=Oct
    ,year=1984
    }

@book{hudak:soe
    ,author={Paul Hudak}
    ,title={The Haskell School of Expression -- 
            Learning Functional Programming through Multimedia}
    ,publisher={Cambridge University Press}
    ,address={New York}
    ,year=2000
    }

@article{major91,
  author = "F Major and M Turcotte",
  title = "The Combination of Symbolic and Numerical Computation for Three-Dimensional Modelling of RNA",
  journal = "SCIENCE",
  volume = "253",
  pages = "1255--1260",
  month = sep,
  year = 1991,
  keywords = "miranda"
}

@inproceedings{page:app,
  author = "Rex Page and Brian Moe",
  title = "Experience with a large scientific application in a functional language",
  crossref = "fpca93",
  keywords = "miranda"
}

@inproceedings{944713,
 author = {Rex L. Page},
 title = {Software is discrete mathematics},
 booktitle = {ICFP '03: Proceedings of the eighth ACM SIGPLAN international conference on Functional programming},
 year = {2003},
 isbn = {1-58113-756-7},
 pages = {79--86},
 location = {Uppsala, Sweden},
 doi = {http://doi.acm.org/10.1145/944705.944713},
 publisher = {ACM Press},
 address = {New York, NY, USA}
 }


@phdthesis{wan-phd
    ,author={Wan, Zhanyong}
    ,title={Functional Reactive Programming for Real-Time Embedded
            Systems}
    ,school={Department of Computer Science, Yale University}
    ,year={December 2002}
    }

@phdthesis{courtney-phd
    ,author={Antony Courtney}
    ,title={Modelling User Interfaces in a Functional Language}
    ,school={Department of Computer Science, Yale University}
    ,month=May
    ,year=2004
    }

@inproceedings{fran-dsl
    ,author={Conal Elliott}
    ,title={Modeling Interactive {3D} and Multimedia Animation 
            with an Embedded Language}
    ,booktitle={Proceedings of the first conference on 
                Domain-Specific Languages}
    ,organization={USENIX}
    ,year=1997
    ,month=Oct
    ,pages={285-296}
    }

@inproceedings{Schechter94
    ,author={Greg Schechter and Conal Elliott and Ricky Yeung and
             Salim Abi-Ezzi}
    ,title={Functional 3D Graphics in C++ - 
            With an Object-Oriented, Multiple Dispatching Implementation}
    ,booktitle={Proceedings of the 1994 Eurographics Object-Oriented 
                Graphics Workshop}
    ,organization={Eurographics, Springer Verlag}
    ,year=1994
    ,pages={}
    }

@techreport{Elliott96a
    ,author={Conal Elliott}
    ,title={A Brief Introduction to ActiveVRML}
    ,institution={Microsoft Research}
    ,type={Technical Report}
    ,number={MSR-TR-96-05}
    ,year=1996
    }
 
@inproceedings{Elliott94
    ,author={Conal Elliott and Greg Schechter and Ricky Yeung and
             Salim Abi-Ezzi}
    ,title={TBAG: A High Level Framework For Interactive, 
            Animated 3D Graphics Applications}
    ,booktitle={Proceedings of SIGGRAPH '94}
    ,organization={ACM SIGGRAPH}
    ,month=Jul
    ,year=1994
    ,pages={421-434}
    }
 
@InProceedings{frob-padl99,
        author = "John Peterson and Paul Hudak and Conal Elliott",
        title = "Lambda in Motion: Controlling Robots With {H}askell",
        booktitle = "First International Workshop on
                     Practical Aspects of Declarative Languages",
        organization = "SIGPLAN",
        month = "Jan",
        year = "1999" 
}

@InProceedings{fruit,
   author = "Antony Courtney and Conal Elliott",
   title = "Genuinely Functional User Interfaces",
   booktitle = "Proc. of the 2001 Haskell Workshop",
   year = 2001,
   month = "September",
   url = {http://haskell.cs.yale.edu/frp/publication.html#fruit}
}

@inproceedings{Fran
    ,author={Conal Elliott and Paul Hudak}
    ,title={Functional Reactive Animation}
    ,booktitle={International Conference on Functional Programming}
    ,month=Jun
    ,year=1997
    ,pages={263--273}
    }

@inproceedings{icra99
    ,author={John Peterson and Gregory Hager and Paul Hudak}
    ,title={A Language for Declarative Robotic Programming}
    ,booktitle={International Conference on Robotics and Automation}
    ,year=1999
    ,pages={}
    }
 
@InProceedings{rt-frp,
  author =   {Zhanyong Wan and Walid Taha and Paul Hudak},
  title =   {{R}eal-time {FRP}},
  booktitle ={Proceedings of Sixth ACM SIGPLAN International
              Conference on Functional Programming},
  year =   {2001},
  address =   {Florence, Italy},
  month =   {September},
  organization = {ACM},
}

@InProceedings{frp-1st,
  author =   {Zhanyong Wan and Paul Hudak},
  title =   {Functional Reactive Programming from First Principles},
  booktitle =   {Proceedings of the ACM SIGPLAN '00 Conference on
                 Programming Language Design and Implementation (PLDI)},
  pages =   {242--252},
  year =   {2000},
  address =   {Vancouver, BC, Canada},
  month =   {June},
  organization = {ACM},
  publisher = {ACM Press}
}

@InProceedings{efrp,
  author =       {Zhanyong Wan and Walid Taha and Paul Hudak},
  title =        {{E}vent-driven {FRP}},
  booktitle =    {Proceedings of Fourth International Symposium on Practical
                  Aspects of Declarative Languages},
  year =         {2002},
  month =        {Jan},
  organization = {ACM},
}

@inproceedings{AFP2002
  ,author={Paul Hudak and Antony Courtney and Henrik Nilsson and
           John Peterson}
  ,title={Robots, Arrows, and Functional Reactive Programming}
  ,booktitle={Summer School on Advanced Functional Programming, 
              Oxford University}
  ,publisher={Springer Verlag, LNCS 2638}
  ,year=2003}

@phdthesis{Blott91
  ,author={Steven Blott}
  ,title={Type Classes}
  ,school={Department of Computing Science, Glasgow University}
  ,year=1991
  }

@article{lloyd:escher
  ,author={J. W. Lloyd}
  ,title={Programming in an Integrated Functional and Logic Language}
  ,journal={Journal of Functional and Logic Programming}
  ,year=1999
  }

@article{somogyi+:mercury
  ,author={Z Somogyi and F Henderson and T Conway}
  ,title={The Execution Algorithm of Mercury, an Efficient Purely Declarative Logic Programming Language}
  ,journal={Journal of Logic Programming}
  ,year={1996}
}

@inproceedings{stuckey+:hal
  ,author={M. Garcia de la Banda and B. Demoen and K. Marriott and P.J. Stuckey}
  ,title={To the gates of HAL: a HAL tutorial}
  ,booktitle={Proceedings of the Sixth International Symposium on
              Functional and Logic Programming}
  ,publisher={Springer Verlag LNCS 2441}
  ,year={2002}
  }

@inproceedings{hanus+:curry
  ,author={M Hanus and H Kuchen and JJ Moreno-Navarro}
  ,title={Curry: A Truly Functional Logic Language}
  ,booktitle={Workshop on Visions for the Future of Logic Programming}
  ,year={1995}
  }

@article{paulson:type-classes
  ,author={Laurence Paulson}
  ,title={Organizing Numerical Theories Using Axiomatic Type Classes}
  ,journal={ Journal of Automated Reasoning}
  ,volume={33}
  ,number={1}
  ,pages={29-49}
  ,month=jul
  ,year={2004}
  }

@phdthesis{callaghan98
  ,author={Paul Callaghan}
  ,title={An Evaluation of {LOLITA} and Related Natural Language
          Processing Systems}
  ,school={Department of Computer Science, University of Durham}
  ,year={1998}
}

@book{LOLITA
  ,author={Derek Long and Roberto Garigliano}
  ,title={Reasoning by Analogy and Causality (A model and application)}
  ,publisher={Ellis Horwood}
  ,year={1993}
}

@misc{frost:survey
  ,author={Richard Frost}
  ,title={Non-strict Functional Programming and Natural-Language Interfaces}
  ,note={Computing Surveys}
  ,month={to appear}
  ,year={2006}
}

@inproceedings{graunke+:web
  ,author={Paul Graunke and Shriram Krishnamurthi and Steve Van Der Hoeven and Matthias Felleisen}
  ,title={Programming the Web with high-level programming languages}
  ,booktitle={Proceedings 10th European Symposium on Programming}
  ,publisher={Springer Verlag LNCS 2028}
  ,pages={122-136}
  ,year={2001}
  }

@inproceedings{queinnec:web
  ,author={Christian Queinnec}
  ,title={The influence of browsers on evaluators or, continuations to program Web servers}
  ,booktitle={International Conference on Functional Programming}
  ,year={2000}
  }

@inproceedings{thiemann:wash
  ,author={Peter Thiemann}
  ,title={WASH/CGI: Server-Side Web Scripting with Sessions and Typed, Compositional Forms}
  ,booktitle={Practical Applications of Declarative Languages}
  ,publisher={Springer Verlag LNCS 2257}
  ,pages={192-208}
  ,year={2002}
  }

@incollection{graham:beating
  ,author={Paul Graham}
  ,title={Beating the Averages}
  ,booktitle={Hackers and Painters}
  ,publisher={O'Reilly}
  ,year={2004}
  }

@article{thiemann:xml
  ,author={Peter Thiemann}
  ,title={A typed representation for {HTML} and {XML} documents in {H}askell}
  ,journal={Journal of Functional Programming}
  ,volume={12}
  ,number={5}
  ,pages={435-468}
  ,month={July}
  ,year={2002}
  }

@article{atkins+:mawl
  ,author={D. Atkins and T. Ball and G. Bruns and K. Cox}
  ,title={Mawl: A domain-specific language for form-based services}
  ,pages={334-346}
  ,journal={IEEE Transactions on Software Engineering}
  ,volume={25}
  ,number={3}
  ,month={May/June}
  ,year={1999}
  }

@inbook{haskore-fop
    ,author={Paul Hudak}
    ,title={Describing and Interpreting Music in Haskell}
    ,booktitle={The Fun of Programming}
    ,chapter=4
    ,editors={Jeremy Gibbons and Oege de Moor}
    ,year=2003
    ,publisher={Palgrave}
    }

@inproceedings{haskore-tutorial
    ,author={Paul Hudak}
    ,title={Haskore Music Tutorial}
    ,booktitle={Second International School on Advanced Functional Programming}
    ,publisher={Springer Verlag, LNCS 1129}
    ,year=1996
    ,month=Aug
    ,pages={38-68}
    }
 
@article{haskore
    ,author={Paul Hudak and Tom Makucevich and 
             Syam Gadde and Bo Whong}
    ,title={Haskore Music Notation -- An Algebra of Music}
    ,month=May
    ,year=1996
    ,volume=6
    ,number=3
    ,pages={465--483}
    ,journal={Journal of Functional Programming}
    }
 
@techreport{davi77
    ,key={davis}
    ,author={Davis, A.L.}
    ,title={The architecture of DDM1: a recursively structured data driven
            machine}
    ,institution={University of Utah}
    ,number={UUCS-77-113}
    ,month=Oct
    ,year=1977
    }

@techreport{PONDER,
author = "Jon Fairbairn",
title = "Design and Implementation of a Simple Typed Language Based on the Lambda-Calculus",
institution = "University of Cambridge Computer Laboratory",
year = 1985,
month = "May",
number = 75
}

@inproceedings{bracha+:java,
    author = "Gilad Bracha and Martin Odersky and David Stoutamire and Philip Wadler",
    title = "Making the Future Safe for the Past: Adding Genericity to the {Java} Programming Language",
    booktitle = "{ACM} {S}ymposium on {O}bject {O}riented {P}rogramming: {S}ystems, {L}anguages, and {A}pplications ({OOPSLA})",
    address = "Vancouver, BC",
    editor = "Craig Chambers",
    pages = "183--200",
    year = "1998"
    }

@article{meijer:server
  ,author={Erik Meijer}
  ,title={Server side web scripting in Haskell}
  ,journal={Journal of Functional Programming}
  ,volume={10}
  ,number={1}
  ,pages={1-18}
  ,year={2000}
  }

@Book{johnson84:_synth_digit_desig_recur_equat,
  author =	 {Steve Johnson},
  title = 	 {Synthesis of Digital Designs from Recursive Equations},
  publisher = 	 {MIT Press},
  year = 	 1984,
  series =	 {ACM Distinguished Dissertation}
}

@PhdThesis{sheeran83:_fp,
  author = 	 {Mary Sheeran},
  title = 	 {$\mu$FP --- An Algebraic VLSI Design Language},
  school = 	 {Programming Research Group, Oxford University},
  year = 	 1983,
  month =	 {November}
}

@InProceedings{sheeran84:_fp_languag_vlsi_desig,
  author = 	 {Mary Sheeran},
  title = 	 {$\mu${FP}, a Language for {VLSI} Design},
  booktitle =	 {Symp. on LISP and Functional Programming},
  year =	 1984,
  publisher =	 {ACM}
}

@Article{backus78:_can_neuman,
  author = 	 {John Backus},
  title = 	 {Can programming be liberated from the von Neumann style? A functional style and its algebra of programs},
  journal = 	 {Commun. ACM},
  year = 	 1978,
  volume =	 21,
  number =	 8,
  pages =	 {613--41},
  month =	 {August}
}

@InProceedings{o'donnell95:_from,
  author = 	 {John O'Donnell},
  title = 	 {From transistors to computer architecture: teaching functional circuit specification in Hydra},
  booktitle =	 {Symposium on Functional Programming Languages in Education},
  year =	 1995,
  volume =	 1022,
  series =	 {LNCS},
  publisher =	 {Springer-Verlag}
}

@inproceedings{ bjesse98lava,
    author = "Per Bjesse and Koen Claessen and Mary Sheeran and Satnam Singh",
    title = "Lava: Hardware Design in Haskell",
    booktitle = "International Conference on Functional Programming",
    pages = "174-184",
    year = "1998",
    url = "citeseer.ist.psu.edu/bjesse98lava.html" }

@inproceedings{ matthews98microprocessor,
    author = "John Matthews and Byron Cook and John Launchbury",
    title = "Microprocessor Specification in Hawk",
    booktitle = "International Conference on Computer Languages",
    pages = "90-101",
    year = "1998",
    url = "citeseer.ist.psu.edu/matthews98microprocessor.html" }

@inproceedings{ singh98accelerating,
  author = "S. Singh and R. Slous",
  title = "Accelerating {Adobe} {Photoshop} with reconfigurable logic",
  booktitle = "IEEE Symposium on Field-Programmable Custom Computing Machines",
  publisher = "IEEE Computer Society Press",
  year = "1998",
  url = "citeseer.ifi.unizh.ch/singh98accelerating.html" }

@misc{ barton95advanced,
  author = "D. Barton",
  title = "Advanced modeling features of MHDL",
  text = "Barton, D. Advanced modeling features of MHDL. In International Conference
    on Electronic Hardware Description Languages #Jan. 1995#.",
  year = "1995",
  url = "citeseer.ifi.unizh.ch/barton95advanced.html" }

@String{j-jucs = "Journal of Universal Computer Science"}

@Article{Sheeran:jucs_11_7:hardware_design_and_functional,
  author =     "M. Sheeran",
  title =      "Hardware Design and Functional Programming: a Perfect Match",
  abstract =   "This paper aims to explain why I am still   fascinated by the use of functional languages in hardware design. I   hope that some readers will be tempted to tackle some of the hard   problems that I outline in the final section. In particular, I   believe that programming language researchers have much to   contribute to the field of hardware design.",
  journal =    j-jucs,
  year =       "2005",
  volume =     "11",
  number =     "7",
  pages =      "1135--1158",
  note =       "\url|http://www.jucs.org/jucs_11_7/hardware_design_and_functional|"}


@InProceedings{turner95:_elemen_stron_funct_progr,
  author = 	 {David A Turner},
  title = 	 {Elementary Strong Functional Programming},
  booktitle =	 {Proceedings of the First International Symposium on Functional Programming Languages in Education},
  pages =	 {1--13},
  year =	 1995,
  volume =	 1022,
  series =	 {Lecture Notes in Computer Science},
  publisher =	 {Springer-Verlag}
}

@Article{landin64:secd,
  author = 	 {P. J. Landin},
  title = 	 {The Mechanical Evaluation of Expressions},
  journal = 	 {Computer Journal},
  year = 	 1964,
  volume =	 6,
  number =	 4,
  pages =	 {308--320}
}

@InProceedings{strachey64:towards,
  author = 	 {Christopher Strachey},
  title = 	 {Towards a formal semantics},
  booktitle =	 {Formal
Language Description Languages for Computer Programming},
  pages =	 {198--220},
  year =	 1964,
  publisher =	 {North Holland},
  note =	 {IFIP Working Conference}
}


@Article{scott76:_data_types_lattic,
  author = 	 {Dana Scott},
  title = 	 {Data Types as Lattices},
  journal = 	 {SIAM Journal on Computing},
  year = 	 1976,
  volume =	 5,
  number =	 3,
  pages =	 {522--587}
}

@techreport{odersky:scala
  ,author =      {Martin Odersky and Philippe Altherr and Vincent Cremet
                  and Burak Emir and Sebastian Maneth and Stéphane Micheloud
                  and Nikolay Mihaylov and Michel Schinz and Erik Stenman
                  and Matthias Zenger}
  ,title =       {An Overview of the Scala Programming Language}
  ,institution = {EPFL Lausanne}
  ,number =      {IC/2004/640}
  ,year =        {2004}
}


@techreport{odersky:scala2
  ,author =      {Martin Odersky}
  ,title =       {Changes between {S}cala Version {1.0} and {2.0}}
  ,institution = {EPFL Lausanne}
  ,month =       {March}
  ,year =        {2006}
}


 @InProceedings{evans:pal,
  author = 	 {A. Evans},
  title = 	 {PAL---a language designed for teaching programming linguistics},
  booktitle =	 {Proceedings ACM National Conference},
  year =	 1968
}


@TechReport{scheevel,
  author = 	 {Mark Scheevel},
  title = 	 {NORMA SASL Manual},
  institution =  {Burroughs Corporation Austin Research Center},
  year = 	 1984
}

@InProceedings{type-classes-design-space,
  author    = {Simon {Peyton Jones} and Mark Jones and Erik Meijer},
  title     = {Type classes: an exploration of the design space},
  booktitle = {Haskell Workshop},
  year      = 1997
}

@Article{strachey:cpl,
  author    = {D.W. Barron and J.N. Buxton and D.F. Hartley and E. Nixon and C. Strachey},
  title     = {The main features of CPL},
  journal   = {The Computer Journal},
  volume    = {6},
  number    = {2},
  pages     = {134--143},
  month     = {July},
  year      = 1963
} 

@inproceedings{frTime06
  ,title={Embedding Dynamic Dataflow in a Call-by-Value Language}
  ,author = {Gregory Cooper and Shriram Krishnamurthi}
  ,booktitle = {European Symposium on Programming}
  ,year = 2006
}

@article{dhjg:fast-and-loose,
	address = {New York, NY, USA},
	author = {Danielsson, Nils  A.  and Hughes, John   and Jansson, Patrik   and Gibbons, Jeremy  },
	citeulike-article-id = {665357},
	doi = {10.1145/1111320.1111056},
	isbn = {1595930272},
	journal = {SIGPLAN Not.},
	keywords = {functional},
	month = {January},
	number = {1},
	pages = {206--217},
	priority = {0},
	publisher = {ACM Press},
	title = {Fast and loose reasoning is morally correct},
	url = {http://dx.doi.org/10.1145/1111320.1111056},
	volume = {41},
	year = {2006}
}

@InProceedings{erlangw06:quickcheck,
  author = 	 {Thomas Arts and John Hughes and Joakim Johansson and Ulf Wiger},
  title = 	 {Testing Telecoms Software with Quviq QuickCheck},
  booktitle =	 {ACM SIGPLAN Erlang Workshop},
  year =	 2006,
  editor =	 {Phil Trinder},
  address =	 {Portland, Oregon},
  publisher =	 {ACM SIGPLAN}
}

@article{GF2004,
  author={Aarne Ranta},
  title={Grammatical Framework},
  journal=JFP,
  volume=14,
  number=2,
  year=2004,
  pages={145--189}
}

@article{burton:views,
  author={F. W. Burton and R. D. Cameron},
  title={Pattern matching with abstract data types},
  journal=JFP,
  volume=3,
  number=2,
  month={April},
  year=1993,
  pages={117--190}
}

@InProceedings{pedro:views,
  author={P. G. Pedro, R. Pena, and M. Nunez},
  title={A new look at mattern matching in abstract types},
  booktitle={ACM SIGPLAN International Conference on Functional Programming},
  address={Philadelphia},
  year=1996,
  month="may"
}

@InProceedings{okasaki:views,
  author={C. Okasaki},
  title={Views for Standard ML},
  booktitle={ACM SIGPLAN Workshop on ML},
  address={Baltimore, Maryland},
  year=1998
}

@misc{ burton-et-al:views,
  author={Warren Burton and Erik Meijer and Patrick Sansom and Simon Thompson and Philip Wadler},
  title={Views: An extension to {H}askell pattern matching, http://haskell.org/development/views.html},
  month={October},
  year=1996,
  url={http://haskell.org/development/views.html}
}

