@book{aho.86.dragon,
  author =	 {<NAME>. and <NAME> <NAME>.},
  title =	 {Compilers: Principles, Techniques and Tools},
  publisher =	 {Addison-Wesley},
  year =	 1986
} 

@article{aho.89.acmtpls,
  author =	 {<NAME> and <NAME> and <NAME>},
  title =	 {Code generation using tree matching and dynamic
                  programming},
  journal =	 {ACM Trans. Program. Lang. Syst.},
  volume =	 11,
  number =	 4,
  year =	 1989,
  issn =	 {0164-0925},
  pages =	 {491--516},
  doi =		 {http://doi.acm.org/10.1145/69558.75700},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
} 

@Article{aiken.96.sigplan,
  author =	 {<NAME>},
  title =	 {Cool: A Portable Project for Teaching Compiler
                  Construction},
  journal =	 {ACM SIGPLAN Notices},
  month =	 {July},
  volume =	 31,
  number =	 7,
  year =	 1996,
  issn =	 {0362-1340},
  pages =	 {19--24},
  doi =		 {http://doi.acm.org/10.1145/381841.381847},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
}

@Misc{algol.star,
  author =	 {The Electronic Sky},
  title =	 {Algol Demon Star, Beta Persei, 26 Persei},
  howpublished = {\url{http://www.glyphweb.com/esky/stars/algol.html}},
  year =	 2005
}

@Misc{antiquecomputers,
  oldkeys =	 {AntiqueComputers},
  author =	 {<NAME>},
  title =	 {{Facts and stories about Antique (lonesome)
                  Computers}},
  howpublished = {\url{http://ed-thelen.org/comp-hist/index.html}},
  year =	 2003
}

@TechReport{appel.87.concise,
  author =	 {<NAME>},
  title =	 {Concise specifications of locally optimal code
                  generators},
  institution =	 {Princeton University, Dept. of Computer Science,
                  Princeton, New Jersey},
  number =	 {CS-TR-080-87},
  year =	 1987,
  month =	 {February},
  url =		 {citeseer.nj.nec.com/appel87concise.html},
  abstract =	 {Dynamic programming allows locally optimal
                  instruction selection for expression trees. More
                  importantly, the algorithm allows concise and
                  elegant specification of code generators. Aho,
                  Ganapathi, and Tjiang have built the Twig
                  code-generator-generator, which produces
                  dynamic-programming code-generators from
                  grammar-like specifications.  Encoding a complex
                  architecture as a grammar for a dynamic-programming
                  codegenerator -generator shows the expressive power
                  of the technique. Each instruction, addressing mode,
                  register and class can be expressed individually in
                  the grammar. The grammar can be factored much more
                  readily than with the Graham-Glanville LR(1)
                  algorithm, so it can be much more concise. Twig
                  specifications for the VAX and MC68020 are
                  described, and the corresponding code generators
                  select very good (and under the right assumptions,
                  optimal) instruction sequences.  Limitations and
                  possible improvements to the specification language
                  are discussed.},
}

@book{appel.98.modern,
  author =	 {<NAME>},
  title =	 {Modern Compiler Implementation in {C}, {Java}, {ML}},
  publisher =	 {Cambridge University Press},
  year =	 1998
}

@InProceedings{appelbe.79.sigcse,
  author =	 {<NAME>be},
  title =	 {Teaching Compiler Development},
  booktitle =	 {{SIGCSE'79}: Proceedings of the tenth {SIGCSE}
                  technical symposium on Computer science education},
  year =	 1979,
  pages =	 {23--27},
  doi =		 {http://doi.acm.org/10.1145/800126.809546},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
}


@misc{apple-history.www,
  title =	 {Apple History},
  author =	 {<NAME>},
  howpublished = {\url{http://www.apple-history/.com/}},
  year =	 2006
}

@manual{arm,
  oldkeys =	 {ARM},
  key =		 {ARM},
  title =	 {Ada Reference Manual},
  year =	 1983
}

@Misc{artmuseum,
  oldkeys =	 {ArtMuseum},
  author =	 {ArtMuseum},
  title =	 {{In Depth}},
  howpublished =
                  {\url{http://www.artmuseum.net/w2vr/archives/archives.html}},
  year =	 2003
}

@Misc{asn1con,
  author =	 {ASN.1 Consortium},
  title =	 {{The ASN.1 Consortium}},
  howpublished = {\url{http://www.asn1.org/}},
  year =	 2003
}

@Misc{asn1info,
  author =	 {<NAME>},
  title =	 {{The ASN.1 Information Site}},
  howpublished = {\url{http://asn1.elibel.tm.fr/en/}},
  year =	 2003
}

@Misc{aterm,
  author =	 {{Centrum voor Wiskunde en Informatica}},
  title =	 {{The ATerm Library}},
  howpublished =
                  {\url{http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/ATermLibrary}},
  year =	 2004
}

@Misc{autoconf.www,
  author =	 {<NAME> and <NAME> and <NAME>},
  title =	 {{GNU Autoconf}},
  howpublished = {\url{http://www.gnu.org/software/autoconf/}},
  year =	 2003,
}

@Misc{automake.www,
  oldkeys =	 {automake},
  author =	 {<NAME> and <NAME>},
  title =	 {{GNU Automake}},
  howpublished = {\url{http://www.gnu.org/software/automake/}},
  year =	 2003,
}

@Article{aycock.02.crossroads,
  author =	 {<NAME>},
  title =	 {Why {Bison} is Becoming Extinct},
  journal =	 {ACM Crossroads},
  year =	 2002,
  volume =	 7,
  number =	 5,
}

@InProceedings{aycock.03.sigplan,
  author =	 {<NAME>},
  title =	 {The {ART} of Compiler Construction Projects},
  booktitle =	 {{ACM SIGPLAN Notices}},
  pages =	 {28--32},
  year =	 2003,
  volume =	 38,
  number =	 12,
  month =	 {Dec},
}

@TechReport{aycock.95.mbl,
  author =	 {<NAME>},
  title =	 {{MBL}: A Language for Teaching Compiler
                  Construction},
  institution =	 {Department of Computer Science, University of
                  Calgary},
  year =	 1995,
  number =	 {1995-574-26},
}

@InProceedings{baldwin.03.sigcse,
  author =	 {<NAME>},
  title =	 {A Compiler for Teaching about Compilers},
  booktitle =	 {Proceedings of the 34th {SIGCSE} technical symposium
                  on Computer science education ({SIGCSE}'03)},
  pages =	 {19--23},
  year =	 2003,
  address =	 {Reno, Nevada, USA},
  month =	 {February},
  abstract =	 {Projects in which students write a small compiler
                  are common in compiler design courses, but even a
                  small compiler can be daunting to students with no
                  prior compiler-writing experience. When I recently
                  taught compiler design, I developed a very small
                  language with a highly modular compiler, focusing
                  the project on implementing the core parts of a
                  compiler without requiring students to build all the
                  infrastructure from scratch. This paper describes
                  the language and its compiler, and their successes
                  (and occasional limitations) for teaching compiler
                  design.},
}

@inproceedings{baxter.04.icse,
  author =	 {<NAME> and <NAME> and <NAME>},
  title =	 {{DMS}\textregistered: Program Transformations for
                  Practical Scalable Software Evolution},
  booktitle =	 {Proceedings of the 26th International Conference on
                  Software Engineering (ICSE)},
  year =	 2004,
  isbn =	 {0-7695-2163-0},
  pages =	 {625--634},
  publisher =	 {IEEE Computer Society},
  address =	 {Washington, DC, USA},
}

@Misc{ben-kiki.05.yaml,
  author =	 {<NAME> and <NAME> and <NAME>},
  title =	 {{YAML} Specification Index},
  howpublished = {\url{http://www.yaml.org/spec/}},
  year =	 2005
}

@Misc{bordeleau.03,
  oldkeys =	 {Bordeleau},
  author =	 {<NAME>},
  title =	 {{L'Histoire des Technologies Informatiques et
                  quelques-unes de leurs Applications en \'Education}},
  howpublished =
                  {\url{http://www.scedu.umontreal.ca/sites/histoiredestec/}},
  year =	 2003
}

@PhdThesis{briggs.92.phd,
  oldkeys =	 {Briggs92, briggs92, briggs.92},
  author =	 {<NAME>},
  title =	 {Register Allocation via Graph Coloring},
  school =	 {Rice University, Houston, Texas},
  year =	 1992,
  month =	 {April},
}

@Article{cardelli.96.csur,
  oldkeys =	 {cardelli.96.acmcs},
  author =	 {<NAME>},
  title =	 {Bad engineering properties of object-oriented
                  languages},
  journal =	 {ACM Computing Surveys (CSUR)},
  volume =	 28,
  number =	 {4es},
  year =	 1996,
  issn =	 {0360-0300},
  pages =	 150,
  doi =		 {http://doi.acm.org/10.1145/242224.242415},
  publisher =	 {ACM Press},
  howpublished =
                  {\url{http://lucacardelli.name/Papers/BadPropertiesOfOO.pdf}},
  lrdedoc =	 {comp/prog/oo/cardelli.96.csur.pdf},
}

@article{cattell.80.acmtpls,
  author =	 {<NAME>},
  title =	 {Automatic Derivation of Code Generators from Machine
                  Descriptions},
  journal =	 {ACM Trans. Program. Lang. Syst.},
  volume =	 2,
  number =	 2,
  year =	 1980,
  issn =	 {0164-0925},
  pages =	 {173--190},
  doi =		 {http://doi.acm.org/10.1145/357094.357097},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
}

@Misc{chroncomphist,
  oldkeys =	 {ChronCompHist},
  author =	 {HCS Virtual computer history museum},
  title =	 {{A Chronology of Computer History}},
  howpublished =
                  {\url{http://www.cyberstreet.com/hcs/museum/chron.htm}},
  year =	 2003
}

@Misc{computer50,
  oldkeys =	 {Computer50},
  author =	 {Computer50},
  title =	 {Computer 50 Web Site},
  howpublished = {\url{http://www.computer50.org/}},
  year =	 2002
}

@Misc{computermuseum,
  author =	 {Computer Museum of America},
  howpublished = {\url{http://www.computer-museum.org}},
  year =	 2002
}

@article{conway.63.jacm,
  author =	 {<NAME>},
  title =	 {Design of a separable transition-diagram compiler},
  journal =	 {Commun. ACM},
  volume =	 {6},
  issue =	 {7},
  month =	 {July},
  year =	 {1963},
  issn =	 {0001-0782},
  pages =	 {396--408},
  numpages =	 {13},
  url =		 {http://doi.acm.org/10.1145/366663.366704},
  doi =		 {http://doi.acm.org/10.1145/366663.366704},
  acmid =	 {366704},
  publisher =	 {ACM},
  address =	 {New York, NY, USA},
  abstract =	 {A {COBOL} compiler design is presented which is
                  compact enough to permit rapid, one-pass compilation
                  of a large sub- set of COBOL on a moderately large
                  computer. Versions of the same compiler for smaller
                  machines require only two work- ing tapes plus a
                  compiler tape. The methods given are largely
                  applicable to the construction of {ALGOL}
                  compilers.}
}

@Book{cooper.04.engineering,
  oldkeys =	 {cooper.2004.engineering},
  author =	 {<NAME> and <NAME>},
  title =	 {Engineering a Compiler},
  publisher =	 {Morgan Kaufmann},
  year =	 2004,
  isbn =	 {1-55860-698-X},
}

@InProceedings{debray.02.sigcse,
  author =	 {<NAME>},
  title =	 {Making compiler design relevant for students who
                  will (most likely) never design a compiler},
  booktitle =	 {Proceedings of the 33rd SIGCSE technical symposium
                  on Computer science education},
  year =	 2002,
  isbn =	 {5-58113-473-8},
  pages =	 {341--345},
  location =	 {Cincinnati, Kentucky},
  doi =		 {http://doi.acm.org/10.1145/563340.563473},
  publisher =	 {ACM Press},
}

@Article{dewar.08.crosstalk,
  author =	 {<NAME> and <NAME>},
  title =	 {Computer Science Education: Where Are the Software
                  Engineers of Tomorrow?},
  journal =	 {CrossTalk, The Journal of Defense Software
                  Engineering},
  year =	 2008,
  volume =	 21,
  number =	 1,
  pages =	 {28--30},
  month =	 {January},
  lrdedoc =	 {comp/edu/dewar.08.crosstalk.pdf},
  url =
                  {http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html},
}

@article{dijkstra.72,
  author =	 {<NAME>},
  title =	 {The Humble Programmer.},
  journal =	 {Commun. ACM},
  volume =	 15,
  number =	 10,
  year =	 1972,
  pages =	 {859-866},
  howpublished =
                  {\url{http://www.cs.utexas.edu/users/EWD/ewd03xx/EWD340.PDF}}
,
  bibsource =	 {DBLP, http://dblp.uni-trier.de}
}

@InProceedings{diwan.04.jeric,
  author =	 {<NAME> and <NAME> and <NAME> and <NAME>},
  title =	 {{PL}-detective: A system for teaching programming
                  language concepts},
  journal =	 {Journal on Educational Resources in Computing
                  ({JERIC})},
  volume =	 4,
  number =	 4,
  year =	 2004,
  issn =	 {1531-4278},
  pages =	 1,
  doi =		 {http://doi.acm.org/10.1145/1086339.1086340},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
}

@Misc{duret-lutz.06.autotools,
  author =	 {<NAME>},
  title =	 {{The Autotools Tutorial}},
  howpublished =
                  {\url{http://www-src.lip6.fr/homepages/Alexandre.Duret-Lutz/dl/autotools.pdf/}},
  year =	 2006,
}

@Misc{edwards.03.ln,
  oldkeys =	 {EdwardsLN, edwardsln},
  author =	 {<NAME>},
  title =	 {{COMS W4115 Programming Languages and Translators}},
  howpublished =
                  {\url{http://www.cs.columbia.edu/~sedwards/classes/2003/w4115/}},
  year =	 2003
}

@Manual{flex.07.manual,
  oldkeys =	 {flex},
  title = 	 {The Flex Manual},
  author =	 {<NAME> and <NAME> and <NAME>},
  organization = {The Flex Project},
  month =	 {September},
  year =	 2007,
  note = 	 {\url{http://flex.sourceforge.net/manual/index.html}}
}

@misc{fourmilab.07.univac,
  title =	 {Univac Memories},
  author =	 {<NAME>},
  howpublished = {\url{http://www.fourmilab.ch/documents/univac/}},
  year =	 2007,
}

@Misc{franklinbio,
  oldkeys =	 {FranklinBio},
  author =	 {Corrosion Doctors},
  Title =	 {<NAME>},
  howpublished =
                  {\url{http://www.corrosion-doctors.org/Biographies/FranklinBio.htm}},
  year =	 2004,
}

@Misc{franklinelec,
  oldkeys =	 {FranklinElec},
  author =	 {<NAME>},
  Title =	 {Franklin's Electricity},
  howpublished = {\url{http://www.uh.edu/engines/epi510.htm}},
  year =	 2004,
}

@InProceedings{gagnon.98.tools,
  author =	 {<NAME> and <NAME>},
  title =	 {{SableCC}, an Object-Oriented Compiler Framework},
  booktitle =	 {Proceedings of the Technology of Object-Oriented
                  Languages and Systems (TOOLS)},
  year =	 1998,
  isbn =	 {0-8186-8482-8},
  pages =	 {140--154},
  publisher =	 {IEEE Computer Society},
  address =	 {Washington, DC, USA},
}

@Misc{gccxml,
  author =	 {<NAME>},
  Title =	 {GCC-XML},
  howpublished = {\url{http://gccxml.org}},
  year =	 2004,
}

@Manual{glibc,
  title =	 {The {GNU} {C} Library Reference Manual},
  author =	 {<NAME> and <NAME> and <NAME> and <NAME> and <NAME>},
  organization = {Free Software Foundation},
  address =	 {59 Temple Place -- Suite 330, Boston, MA 02111-1307
                  USA},
  edition =	 {0.10},
  year =	 2003,
}

@Article{goldberg.91.csur,
  author =	 {<NAME>},
  title =	 {What every computer scientist should know about
                  floating-point arithmetic},
  journal =	 {ACM Computing Surveys (CSUR)},
  volume =	 23,
  number =	 1,
  year =	 1991,
  issn =	 {0360-0300},
  pages =	 {5--48},
  doi =		 {http://doi.acm.org/10.1145/103162.103163},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
  howpublished =
                  {\url{http://docs.sun.com/source/806-3568/ncg_goldberg.html}},
}

@Manual{gpc,
  title =	 {The GNU Pascal Compiler Manual},
  organization = {Free Software Foundation},
  address =	 {59 Temple Place -- Suite 330, Boston, MA 02111-1307
                  USA},
  edition =	 20030830,
  year =	 2003,
}

@InProceedings{guimar.84.sigcse,
  author =	 {<NAME>\~aes},
  title =	 {Testing student-made compilers},
  journal =	 {{SIGCSE} Bulletin},
  volume =	 26,
  number =	 3,
  year =	 1994,
  issn =	 {0097-8418},
  pages =	 {37--44},
  note =	 {\url{http://doi.acm.org/10.1145/187387.187402}},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
}

@misc{guy.71.ladybird,
  author =	 {<NAME>},
  title =	 {How It Works...The Computer},
  howpublished = {\url{http://davidguy.brinkster.net/computer/}},
  year =	 1971
}

@Misc{havm.www,
  author =	 {<NAME>},
  Title =	 {\textsc{Havm}},
  howpublished = {\url{http://tiger.lrde.epita.fr/Havm}},
  year =	 2003,
}

@inproceedings{haynes.98.sigcse,
  author =	 {<NAME>},
  title =	 {Experience with an analytic approach to teaching
                  programming languages},
  booktitle =	 {{SIGCSE '98}: Proceedings of the twenty-ninth
                  {SIGCSE} technical symposium on Computer science
                  education},
  year =	 1998,
  isbn =	 {0-89791-994-7},
  pages =	 {350--354},
  location =	 {Atlanta, Georgia, United States},
  doi =		 {http://doi.acm.org/10.1145/273133.274328},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
}

@Misc{helloworld.www,
  oldkeys =	 {HelloWorld, helloworld},
  author =	 {ACM},
  title =	 {{ACM ``Hello World'' Project}},
  howpublished = {\url{http://www2.latech.edu/~acm/HelloWorld.shtml/}},
  year =	 2003
}

@article{hildum.90.tse,
  author =	 {<NAME> and <NAME>},
  title =	 {A Language for Specifying Program Transformations},
  journal =	 {IEEE Trans. Softw. Eng.},
  volume =	 16,
  number =	 6,
  year =	 1990,
  issn =	 {0098-5589},
  pages =	 {630--638},
  doi =		 {http://dx.doi.org/10.1109/32.55091},
  publisher =	 {IEEE Press},
  address =	 {Piscataway, NJ, USA},
}

@Misc{historycomputing.www,
  author =	 {The History of Computing Foundation},
  title =	 {The History of Computing Project},
  howpublished = {\url{http://www.thocp.net/}},
  year =	 2000
}

@Misc{holmevik.03.simula,
  oldkeys =	 {Holmevik, holmevik},
  author =	 {<NAME>},
  title =	 {{The History of Simula}},
  howpublished =
                  {\url{http://java.sun.com/people/jag/SimulaHistory.html}},
  year =	 2003
}

@misc{holt.72,
  author =	 {<NAME>},
  title =	 {Teaching the Fatal Disease (or) Introductory
                  Computer Programming Using {PL/I}},
  institution =	 {Dept. of Computer Science and Computer Systems
                  Research Group, University of Toronto},
  year =	 1972,
  month =	 {November},
  howpublished =
                  {\url{http://plg.uwaterloo.ca/~holt/papers/fatal_disease.html
                  }}
}

@Misc{hpmuseum,
  oldkeys =	 {HPMuseum, hpmuseum},
  author =	 {<NAME>},
  title =	 {{The Museum of HP Calculators}},
  howpublished = {\url{http://hpmuseum.com/}},
  year =	 2003
}

@misc{huggins.06.hopper,
  author =	 {<NAME>},
  title =	 {{Grace Murray Hopper}},
  howpublished =
                  {\url{http://www.jamesshuggins.com/h/tek1/grace_hopper.htm}},
  year =	 2006
}

@article{hughes.89.cj,
  oldkeys =	 {Hughes89, hughes.89},
  author =	 {<NAME>},
  title =	 {Why functional programming matters},
  journal =	 {The Computer Journal},
  year =	 1989,
  volume =	 32,
  number =	 2,
  month =	 Apr,
  pages =	 {98--107},
  note =
                  {\url{http://www.math.chalmers.se/~rjmh/Papers/whyfp.html}}
}

@Misc{ibm.06.pl/i,
  author =	 {IBM},
  title =	 {Enterprise {PL/I} for {z/OS}, Version 3.6, Language
                  Reference, Arithmetic operations},
  url =
                  {\url{http://publib.boulder.ibm.com/infocenter/pdthelp/v1r1/index.jsp?topic=/com.ibm.debugtool7.doc/eqa7ug0202.htm}},
}

@Misc{ieee.98.float,
  author =	 {ANSI/IEEE},
  title =	 {{ANSI/IEEE} Std 854-1987 -- {IEEE} standard for
                  radix-independent floating-point arithmetic},
  year =	 1987,
}

@Misc{infoage,
  oldkeys =	 {InfoAge, infoage},
  author =	 {{National Museum of American History}},
  title =	 {{Information Age: People, Information \&
                  Technology}},
  howpublished = {\url{http://photo2.si.edu/infoage/infoage.html}},
  year =	 2003
}

@Misc{intel4004,
  oldkeys =	 {Intel4004, intel4004},
  author =	 {{National Museum of American History}},
  title =	 {{Intel 4004 Microprocessor}},
  howpublished =
                  {\url{http://micro.magnet.fsu.edu/micro/gallery/computers/computer2.html}},
  year =	 2003
}

@Misc{intel4004it,
  oldkeys =	 {Intel4004It, intel4004it},
  author =	 {{<NAME>'informatica}},
  title =	 {{Intel 4004}},
  howpublished =
                  {\url{http://www.khet.net/gmc/docs/museum/Intel4004.html}},
  year =	 2003
}

@Misc{introspector,
  oldkeys =	 {Introspector, introspector},
  author =	 {{<NAME>}},
  title =	 {{The Introspector Project}},
  howpublished = {\url{http://introspector.sourceforge.net/}},
  year =	 2004
}

@Misc{josuttis.99,
  author =	 {<NAME>},
  title =	 {The {C++} Standard Library: A Tutorial and Reference},
  publisher =	 {Add<NAME>},
  year =	 1999
}

@Article{kay.77,
  author =	 {<NAME> and <NAME>},
  title =	 {Personal Dynamic Media},
  journal =	 {Computer},
  year =	 1977,
  volume =	 31,
  month =	 {March}
}

@Misc{king.www,
  author =	 {<NAME>},
  year =	 1993,
  title =	 {Photos from History Of Programming Languages II},
  howpublished = {\url{http://www2.gsu.edu/~matknk/hopl.html}}
}

@article{kuipers.03.scp,
  author =	 {<NAME> and <NAME>},
  title =	 {Object-oriented tree traversal with {JJForester}},
  Journal =	 {Science of Computer Programming},
  volume =	 47,
  number =	 1,
  year =	 2003,
  issn =	 {0167-6423},
  pages =	 {59--87},
  doi =		 {http://dx.doi.org/10.1016/S0167-6423(02)00108-9},
  publisher =	 {Elsevier North-Holland, Inc.},
  address =	 {Amsterdam, The Netherlands},
  lrdedoc =      {comp/compilers/kuipers.03.scp.pdf},
}

@TechReport{larus.90.spim,
  oldkeys =	 {LarusSpim},
  author =	 {<NAME>},
  title =	 {\textsc{SPIM S20}: A \textsc{MIPS R2000} Simulator},
  institution =	 {Computer Sciences Department, University of
                  Wisconsin--Madison},
  year =	 1990,
  number =	 {TR966},
}

@InProceedings{lattner.03.GCCSummit,
  oldkeys =	 {lattner.2003.GCCSummit},
  Author =	 {<NAME> and <NAME>},
  Title =	 {Architecture for a Next-Generation GCC},
  Booktitle =	 {Proc. First Annual GCC Developers' Summit},
  Address =	 {Ottawa, Canada},
  Month =	 {May},
  Year =	 2003,
  URL =
                  {http://llvm.cs.uiuc.edu/pubs/2003-05-01-GCCSummit2003.html}
}

@Misc{lavine,
  oldkeys =	 {Lavine},
  author =	 {<NAME>},
  title =	 {{Computer Museum of America: Arthur Lavine
                  Exhibition}},
  howpublished =
                  {\url{http://www.computer-museum.org/exhibits/lavine/index.html}},
  year =	 2003
}

@TechReport{leung.96.prop,
  author =	 {<NAME>},
  title =	 {{Prop}: A {C++}-based Pattern Matching Language},
  institution =	 {Courant Institute of Mathematical Sciences},
  year =	 1996,
  url =
                  {http://www.cs.nyu.edu/leunga/papers/research/prop.ps}
}

@article{lewis.68.jacm,
  author =	 {<NAME>. and <NAME>.},
  title =	 {Syntax-Directed Transduction},
  journal =	 {J. ACM},
  volume =	 {15},
  issue =	 {3},
  month =	 {July},
  year =	 {1968},
  issn =	 {0004-5411},
  pages =	 {465--488},
  numpages =	 {24},
  url =		 {http://doi.acm.org/10.1145/321466.321477},
  doi =		 {http://doi.acm.org/10.1145/321466.321477},
  acmid =	 {321477},
  publisher =	 {ACM},
  address =	 {New York, NY, USA},
  abstract =	 {A transduction is a mapping from one set of
                  sequences to another. A syntax directed transduction
                  is a particular type of transduction which is
                  defined on the grammar of a context free language
                  and which is meant to be a model of part of the
                  translation process used in many compilers. The
                  transduction is considered from an automata theory
                  viewpoint as specifying the input-output relation of
                  a machine. There is a close relationship between a
                  subclass of these transductions, the simple syntax
                  directed transductions, and push-down machines. This
                  relationship is investigated in detail and
                  conditions for such transductions to be performed on
                  push-down machines are obtained. In addition, some
                  time bounds for transductions on Turing machines are
                  derived.}
}

@misc{lileks.07.compupromo,
  author =	 {<NAME>},
  title =	 {Compu-Promo},
  url =		 {http://www.lileks.com/institute/compupromo/},
}

@Book{lohr.02.goto,
  author =	 {<NAME>},
  title =	 {Go To: The Story of the Math Majors, Bridge Players,
                  Engineers, Chess Wizards, Maverick Scientists and
                  Iconoclasts --- The Programmers Who Created the
                  Software Revolution},
  publisher =	 {Basic Books},
  year =	 2002,
  ibsn =	 0465042260
}

@Misc{lrde.tiger,
  author =	 {<NAME>},
  title =	 {The {Tiger} Compiler Project Home Page},
  howpublished = {\url{http://tiger.lrde.epita.fr}},
}

@Article{markoff.02.sjmn,
  oldkeys =	 {Markoff},
  author =	 {<NAME>},
  title =	 {Spacewar pioneers --- First video game programmers
                  had a blast but didn't cash in},
  pages =	 {3E},
  month =	 {March},
  year =	 2002,
  journal =	 {San Jose Mercury News},
  howpublished =
                  {\url{http://ed-thelen.org/comp-hist/PDP-1-SpaceWar-Article.html}}
}

@inproceedings{matz.03,
  author =	 {<NAME>},
  title =	 {{Design and Implementation of a Graph Coloring
                  Register Allocator for \textsc{gcc}}},
  pages =	 {151--169},
  year =	 2003,
}

@misc{mccarthy.www,
  author =	 {<NAME>},
  howpublished = {\url{http://www-formal.stanford.edu/jmc/index.html}},
  title =	 {jmc's web page},
  year =	 2006
}

@InProceedings{mead.06.sigcse,
  author =	 {<NAME>},
  title =	 {A compiler tutorial scaled for the programming
                  languages course},
  booktitle =	 {{SIGCSE '06}: Proceedings of the 37th {SIGCSE}
                  technical symposium on Computer science education},
  year =	 2006,
  isbn =	 {1-59593-259-3},
  pages =	 {32--36},
  location =	 {Houston, Texas, USA},
  doi =		 {http://doi.acm.org/10.1145/1121341.1121354},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
}

@Misc{menhir.www,
  author =	 {Fran\c{c}<NAME> and <NAME>},
  title =	 {Menhir {LR(1)} Parser Generator --- Home page},
  howpublished = {\url{http://pauillac.inria.fr/~fpottier/menhir/}},
  year =	 2005
}

@misc{mohr.04.370,
  author =	 {<NAME>},
  title =	 {Computing Science 370 Programming Languages},
  howpublished =
                  {\url{http://www.augustana.ca/~mohrj/courses/2004.fall/csc370/index.html}},
  year =	 2004
}

@Misc{mono.www,
  title =	 {{Mono} Home Page},
  howpublished = {\url{http://www.mono-project.com}},
}

@misc{mouse.www,
  title =	 {Mouse Site},
  author =	 {<NAME>},
  url =
                  {\url{http://sloan.stanford.edu/MouseSite/MouseSitePg1.html}},
}

@Book{muchnick.97.advanced,
  oldkeys =	 {Muchnick97, muchnick.97},
  author =	 {<NAME>},
  title =	 {Advanced Compiler Design and Implementation},
  publisher =	 {Morgan Kaufmann Publishers},
  year =	 1997
}

@Misc{numlock.05.scans,
  author =	 {numlock},
  title =	 {Game/Computer Magazine Scans - 1982/83},
  url =
                  {\url{http://www.flickr.com/photos/numlok/sets/1394109/}},
}

@Misc{ooshape,
  author =	 {<NAME> and <NAME>},
  title =	 {{OO Example Code}},
  howpublished = {\url{http://onestepback.org/articles/poly/}},
  year =	 2003,
}

@Misc{owen.03.www,
  author =	 {<NAME>},
  title =	 {Planet Sinclair},
  howpublished = {\url{http://www.nvg.ntnu.no/sinclair/contents.htm}},
  year =	 2003,
}

@article{parr.95.spe,
  author =	 {<NAME> and <NAME>},
  title =	 {{ANTLR}: A predicated-{LL}($k$) parser generator},
  pages =	 {789--810},
  year =	 1995,
  volume =	 25,
  number =	 7,
  journal =	 {Software, Practice and Experience},
  url =		 {http://citeseer.nj.nec.com/12770}
}

@article{partsch.83.csur,
  author =	 {<NAME> and <NAME>},
  title =	 {Program Transformation Systems},
  journal =	 {ACM Comput. Surv.},
  volume =	 15,
  number =	 3,
  year =	 1983,
  issn =	 {0360-0300},
  pages =	 {199--236},
  doi =		 {http://doi.acm.org/10.1145/356914.356917},
  publisher =	 {ACM},
  address =	 {New York, NY, USA},
}

@Misc{pcmuseum:Windows,
  author =	 {Fortune City},
  title =	 {Windows History},
  howpublished =
                  {\url{http://members.fortunecity.com/pcmuseum/windows.htm}}
}

@Misc{peoplebehindinformatics,
  title =	 {{People behind Informatics --- In memory of
                  <NAME>, <NAME> and <NAME>}},
  howpublished = {\url{http://cs-exhibitions.uni-klu.ac.at/}},
  year =	 2003
}

@Misc{pigott.06.hopl,
  author =	 {<NAME>},
  title =	 {{HOPL}: an interactive Roster of Programming
                  Languages},
  url =		 {\url{http://hopl.murdoch.edu.au/}},
}

@Misc{pixel.07.syntax,
  author =	 {Pixel},
  title =	 {Syntax Across Languages},
  url =
                  {\url{http://merd.sourceforge.net/pixel/language-study/syntax-across-languages/}},
}

@Misc{round.06.quiz,
  title =	 {Programming Language Inventor or Serial Killer Quiz},
  author =	 {<NAME>},
  howpublished = {\url{http://www.malevole.com/mv/misc/killerquiz/}},
}

@InProceedings{schwartzbach.08.cc,
  author =	 {<NAME>},
  title =	 {Design Choices in a Compiler Course or How to Make
                  Undergraduates Love Formal Notation},
  booktitle =	 {Compiler Construction},
  year =	 2008,
  pages =	 {1-15},
  ee =		 {http://dx.doi.org/10.1007/978-3-540-78791-4_1},
  bibsource =	 {DBLP, http://dblp.uni-trier.de}
}

@Misc{scrivener.03,
  oldkeys =	 {Scrivener03},
  author =	 {<NAME>},
  title =	 {{SIGKIDS 2003 Influences Timeline}},
  howpublished =
                  {\url{http://san-diego.siggraph.org/sigkids/Influences.html}},
  year =	 2003
}

@book{sebesta.02,
  author =	 {<NAME>},
  title =	 {Concepts of programming languages (5th ed.)},
  year =	 2002,
  isbn =	 {0-321-17645-6},
  publisher =	 {Addison Wesley Longman Publishing Co., Inc.},
  address =	 {Redwood City, CA, USA},
}

@InProceedings{shapiro.76.sigcse,
  author =	 {<NAME> and <NAME>},
  title =	 {A new approach to teaching a first course in
                  compiler construction},
  booktitle =	 {Proceedings of the {ACM} {SIGCSE}-{SIGCUE} technical
                  symposium on Computer science and education},
  year =	 1976,
  pages =	 {158--166},
  doi =		 {http://doi.acm.org/10.1145/800107.803467},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
}

@Misc{sharples.98,
  oldkeys =	 {Sharples98},
  author =	 {{<NAME>}},
  title =	 {{Why did you bother to write a book?}},
  howpublished =
                  {\url{http://www.eee.bham.ac.uk/sharplem/Routledge/article.htm}},
  year =	 1998
}

@Article{shopyrin.06.ieeesoft,
  author =	 {<NAME>},
  title =	 {Multimethods Implementation in {C++} Using Recursive
                  Deferred Dispatching},
  journal =	 {IEEE Software},
  volume =	 23,
  number =	 3,
  year =	 2006,
  issn =	 {0740-7459},
  pages =	 {62--73},
  doi =		 {http://dx.doi.org/10.1109/MS.2006.77},
  publisher =	 {IEEE Computer Society Press},
  address =	 {Los Alamitos, CA, USA},
  lrdedoc =	 {comp/lang/c++/shopyrin.06.ieeesoft.pdf},
}

@misc{smith.06,
  author =	 {<NAME>},
  title =	 {{PDP-1} Music in 1964},
  howpublished = {\url{http://www.dpbsmith.com/pdp1music/}},
  year =	 2006
}

@misc{smith.jed,
  title =	 {Univac Memories},
  author =	 {<NAME>},
  howpublished = {\url{http://www.stewdio.org/jed/}},
  year =	 2007,
}

@misc{snopes.04.rand,
  author =	 {Snopes.com},
  title =	 {Does Not Compute},
  url =
                  {\url{http://www.snopes.com/inboxer/hoaxes/computer.asp}},
  year =	 2004,
}

@misc{spacewar.www,
  author =	 {<NAME> and <NAME> and <NAME>},
  title =	 {The original {Spacewar!} for {PDP/1} emulated in
                  {Java}},
  year =	 1996,
  howpublished =
                  {\url{http://lcs.www.media.mit.edu/groups/el/projects/spacewar/}}
}

@Misc{speakandspell,
  author =	 {<EMAIL>},
  title =	 {{The Texas Instruments Speak \& Spell}},
  howpublished = {\url{http://www.99er.net/spkspell.html}},
  year =	 2004
}

@Misc{stephenson.03,
  title =	 {The Roman Hand-Abacus},
  year =	 2003,
  author =	 {<NAME>},
  howpublished = {\url{http://www.mat.uc.pt/~jaimecs/maistecno.html}}
}

@Misc{stroustrup.08.faq,
  author =	 {<NAME>},
  title =	 {{Bjarne} {Stroustrup}'s {FAQ}},
  howpublished = {\url{http://www.research.att.com/~bs/bs_faq.html}},
  month =	 {September},
  year =	 2008,
}

@Misc{stroustrup.97,
  author =	 {<NAME>},
  title =	 {The {C++} programming language third edition},
  publisher =	 {Addison Wesley},
  year =	 1997
}

@Misc{subversion,
  author =	 {<NAME> and <NAME> and
                  <NAME>},
  title =	 {{Version Control With Subversion}},
  howpublished = {\url{http://svnbook.red-bean.com}},
  year =	 2004
}

@Misc{sunfortran77,
  oldkeys =	 {SunFortran77},
  author =	 {{Sun Microsystems}},
  title =	 {{Fortran 77 Language Reference (for f77 4.2)}},
  howpublished =
                  {\url{http://www.ictp.trieste.it/~manuals/programming/sun/fortran/f77rm/index.html}},
  year =	 1996
}

@Misc{sutter.09.blog,
  author =	 {<NAME>},
  title =	 {Answer to "16 Technologies": {Engelbart} and the
                  Mother of All Demos},
  howpublished = {\url{http://herbsutter.com/2009/01/08/answer-to-16-technologies-engelbart-and-the-mother-of-all-demos/}},
  month =	 jan,
  year =	 2009,
  note =	 {Herb Sutter's blog post},
}

@misc{tanenbaum.04.linux,
  title =	 {Some Notes on the {"Who wrote Linux"} Kerfuffle,
                  Release 1.5},
  author =	 {<NAME>},
  howpublished = {\url{lecture/compiler-construction/names/}},
  note =	 {An interesting description of an attempt to
                  discredit {Linux} {Torvalds}.},
  year =	 2004,
  month =	 {June},
}

@misc{time.83.computer,
  author =	 {{Time Magazine}},
  title =	 {The Computer, Machine of the Year},
  howpublished =
                  {\url{http://www.time.com/time/covers/0,16641,1101830103,00.html}},
  year =	 1983,
  month =	 {January}
}

@Manual{treecc,
  title = 	 {Tree Compiler-Compiler},
  organization = {The DotGNU Project},
  note = 	 {\url{http://dotgnu.org/treecc/treecc.html}}
}

@Misc{ucla-cg.05.jtb,
  author =	 {{UCLA Compilers Group}},
  title =	 {{Java} {Tree} {Builder} ({JTB})},
  howpublished = {\url{http://compilers.cs.ucla.edu/jtb/}},
  year =	 2005
}

@Book{vanrossum.06.python,
  author =	 {<NAME> and <NAME>, Jr.},
  title =	 {The {Python} Language Reference Manual (version
                  2.5)},
  publisher =	 {Network Theory Ltd.},
  year =	 2006,
  month =	 {November},
  isbn =	 {0-9541617-8-5},
  howpublished = {http://www.network-theory.co.uk/python/language/}
}

@Misc{vaucher.99,
  oldkeys =	 {Vaucher},
  author =	 {<NAME>},
  title =	 {Introduction \`a {SIMULA}},
  howpublished =
                  {\url{http://www.iro.umontreal.ca/~simula/Standard/intro.html}},
  year =	 1999
}

@Misc{vintagecomputercollection,
  author =	 {<NAME>},
  title =	 {{Vintage Computer Collection}},
  howpublished = {\url{http://www.vintage-computer.com/}},
  year =	 2004
}

@Article{visser.01.sigplan,
  oldkeys =	 {Visser2001a},
  author =	 {<NAME>},
  title =	 {Visitor Combination and Traversal Control},
  pages =	 {270--282},
  volume =	 36,
  number =	 11,
  month =	 nov,
  year =	 2001,
  journal =	 {ACM SIGPLAN Notices},
  note =	 {{OOPSLA}~2001 Conference Proceedings:
                  Object-Oriented Programming Systems, Languages, and
                  Applications.},
  lrdedoc =	 {comp/compilers/visser.01.sigplan.pdf},
}

@InProceedings{vollmar.06.sigcse,
  author =	 {<NAME> and <NAME>},
  title =	 {{MARS}: An Education-Oriented {MIPS} Assembly
                  Language Simulator},
  booktitle =	 {Proceedings of the 37th {SIGCSE} technical symposium
                  on Computer science education ({SIGCSE'06})},
  year =	 2006,
  address =	 {Houston, Texas, USA},
  month =	 {March},
  isbn =	 {1-59593-259-3},
  pages =	 {239--243},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
  doi =		 {http://doi.acm.org/10.1145/1121341.1121415},
  abstract =	 {We describe the implementation of "MARS," a GUI,
                  Java-based simulator for the MIPS assembly
                  language. MIPS, the computer architecture underlying
                  the simulated assembly language, is widely used in
                  industry and is the basis of the popular textbook
                  Computer Organization and Design [6], used at over
                  400 universities. The MARS simulator has been
                  implemented with characteristics that are especially
                  useful to undergraduate computer science students
                  and their instructors.},
}

@InProceedings{waite.06.iticse,
  author =	 {<NAME> and <NAME> and <NAME> and <NAME>},
  title =	 {Design and Implementation of a Modern Compiler
                  Course},
  booktitle =	 {Proceedings of the Eleventh Annual Conference on
                  Innovation and Technology in Computer Science
                  Education (ITICSE)},
  year =	 2006,
  month =	 {June},
  pages =	 {18--22},
  address =	 {University of {B}ologna, {I}taly},
  abstract =	 {Current literature states that the undergraduate
                  curriculum can no longer afford the luxury of a
                  traditional compiler construction
                  course. Nevertheless, there is an increasing need
                  for an understanding of how to design and implement
                  domain-specific languages. This paper presents a
                  modern course in compiler construction, designed to
                  provide a student with the capability of quickly
                  constructing robust processors for a variety of
                  language-related applications.},
}

@InProceedings{waite.06.sigcse,
  author =	 {<NAME>},
  title =	 {The Compiler Course in Today's Curriculum: Three
                  Strategies},
  booktitle =	 {Proceedings of the 37th {SIGCSE} technical symposium
                  on Computer science education ({SIGCSE'06})},
  year =	 2006,
  address =	 {Houston, Texas, USA},
  month =	 {March},
  isbn =	 {1-59593-259-3},
  pages =	 {87--91},
  location =	 {Houston, Texas, USA},
  doi =		 {http://doi.acm.org/10.1145/1121341.1121371},
  publisher =	 {ACM Press},
  address =	 {New York, NY, USA},
  abstract =	 {The broadening of computer science education has
                  called into question the roles of many traditional
                  core courses. In order to remain viable, courses
                  such as compiler construction must provide a
                  coherent view of their subject matter that fits with
                  the rest of the institution's curriculum. Three
                  strategies have evolved for this course. As
                  described in this paper, each strategy provides a
                  model that a professor can use to design an
                  appropriate course for their situation.},
}

@misc{watchmen.www,
  author =	 {<NAME>, <NAME>, <NAME>},
  title =	 {The Faces in Front of the Monitors},
  note =	 {Many picture of people who made the computer
                  history.},
  howpublished = {\url{http://www.wbglinks.net/pages/watchmen/}},
  year =	 2006
}

@misc{wbg.06.www,
  title =	 {A Computer Geek's History of the Internet},
  author =	 {{WBGLinks}},
  howpublished = {\url{http://www.wbglinks.net/pages/history/}},
  year =	 2006,
}

@Misc{weatherley.02,
  author =	 {<NAME>},
  title =	 {{Treecc}, the {Tree Compiler-Compiler}},
  howpublished = {\url{http://www.southern-storm.com.au/treecc.html}},
  year =	 2002
}

@Misc{weatherley.02.www,
  author =	 {<NAME>},
  title =	 {{Treecc}: An Aspect-Oriented Approach to Writing
                  Compilers},
  howpublished = {\url{http://dotgnu.org/treecc_essay.html}},
  year =	 2002
}

@article{werner.03.jcsc,
  author =	 {<NAME>},
  title =	 {A parser project in a programming languages course},
  journal =	 {J. Comput. Small Coll.},
  volume =	 18,
  number =	 5,
  year =	 2003,
  pages =	 {184--192},
  publisher =	 {Consortium for Computing Sciences in Colleges},
  address =	 {, USA},
  abstract =	 {This experience report describes a programming
                  exercise designed to reinforce concepts of parsing,
                  regular and context-free grammars, first sets, and
                  abstract syntax trees. Students build a parser for a
                  language with real applications. To make this
                  feasible tools including a compiler compilers and
                  automated support for the visitor design pattern,
                  are used. The exercise is extensible.}
}

@Misc{wikipedia,
  author =	 {Wikipedia},
  title =	 {Wikipedia, free encyclopedia},
  year =	 2005,
  howpublished = {\url{http://en.wikipedia.org/wiki/Main_Page}}
}

@misc{wikipedia.07.atari-2600,
  author =	 {Wikipedia},
  title =	 {Atari 2600 --- Wikipedia{,} The Free Encyclopedia},
  year =	 2007,
  url =
                  {http://en.wikipedia.org/w/index.php?title=Atari_2600&oldid=111764801},
  note =	 "[Online; accessed 5-March-2007]"
}

@Book{wilson.93.lpc,
  oldkeys =	 {Wilson1993, wilson.93},
  author =	 {<NAME> and <NAME>},
  editor =	 {?},
  title =	 {Langages de Programmation Compar\'es},
  publisher =	 {Addison-Wesley},
  year =	 1993,
  edition =	 {2nd},
  month =	 {November},
}

@Misc{wirth.www,
  oldkeys =	 {Wirth},
  author =	 {<NAME>},
  title =	 {{Miklaus Wirth Home Page}},
  howpublished = {\url{http://www.cs.inf.ethz.ch/~wirth/}},
  year =	 1999
}

@Misc{yaxx.www,
  key =		 {Yaxx},
  author =	 {<NAME> and <NAME>},
  title =	 {{YAXX}: {YA}cc e{X}tension to {XML}, a User Manual},
  howpublished = {\url{http://yaxx.sourceforge.net/}},
  year =	 2003
}

@Article{zendra.97.sigplan,
  author =	 {<NAME> and <NAME> and <NAME>},
  title =	 {Efficient dynamic dispatch without virtual function
                  tables: the {SmallEiffel} compiler},
  journal =	 {{ACM SIGPLAN Notices}},
  volume =	 {32},
  number =	 {10},
  year =	 {1997},
  issn =	 {0362-1340},
  pages =	 {125--141},
  doi =		 {http://doi.acm.org/10.1145/263700.263728},
  publisher =	 {ACM},
  address =	 {New York, NY, USA},
  url =		 {http://smarteiffel.loria.fr/papers/oopsla97.pdf},
  abstract =	 {SmallEiffel is an Eiffel compiler which uses a fast
                  simple inference mechanism to remove most last
                  binding calls, replacing them by static
                  bindings. Starting from the system's entry point, it
                  compiles only statically living code, which saves
                  compiling and then removing dead code. As the whole
                  system is analyzed at compile time, multiple
                  inheritance and genericity do not cause any
                  overhead.  SmallEiffel features a coding scheme
                  which eliminates the need for virtual function
                  tables. Dynamic dispatch is implemented without any
                  array access but uses a simple static binary branch
                  code. We show that this implementation makes it
                  possible to use modern hardware very efficiently. It
                  also allows to inline more calls even when dynamic
                  dispatch is required. Some more dispatch sites are
                  removed after the type inference algorithm has been
                  performed, if the different branches of a dispatch
                  site lead to the same code.  The advantage of this
                  approach is that it greatly speeds up execution time
                  and considerably decreases the amount of generated
                  code. }
}

@misc{zuse.04,
  title =	 {The Life and Work of {Konrad Zuse}},
  author =	 {<NAME>},
  howpublished = {\url{http://www.epemag.com/zuse/default.htm#index}},
  year =	 2004,
}
