# strtab

key: ack-fm
value: Frank Mittelbach, e-mail: path |mittelbach@mzdmza.zdv.uni-mainz.de|
filename: master.bib
entry:
@String{ack-fm  =   "Frank Mittelbach,
                    e-mail: \path|mittelbach@mzdmza.zdv.uni-mainz.de|"}


key: ack-mz
filename: master.bib
value:
Mona Zeftel, Addison-Wesley Publishing Company, Reading, MA, USA, e-mail: path |crw@wjh12.harvard.edu|

entry:
@String{ack-mz = "Mona Zeftel,
                  Addison-Wesley Publishing Company,
                  Reading, MA, USA,
                  e-mail: \path|crw@wjh12.harvard.edu|"}


key: ack-nhfb
filename: master.bib
value:
Nelson H. F. Beebe, University of Utah, Department of Mathematics, 110 LCB, 155 S 1400 E RM 233, Salt Lake City, UT 84112-0090, USA, Tel: +1 801 581 5254, FAX: +1 801 581 4148, e-mail: path |beebe@math.utah.edu|, path |beebe@acm.org|, path |beebe@computer.org| (Internet), URL: path |https://www.math.utah.edu/~beebe/|

entry:
@String{ack-nhfb = "Nelson H. F. Beebe,
                    University of Utah,
                    Department of Mathematics, 110 LCB,
                    155 S 1400 E RM 233,
                    Salt Lake City, UT 84112-0090, USA,
                    Tel: +1 801 581 5254,
                    FAX: +1 801 581 4148,
                    e-mail: \path|beebe@math.utah.edu|,
                            \path|beebe@acm.org|,
                            \path|beebe@computer.org| (Internet),
                    URL: \path|https://www.math.utah.edu/~beebe/|"}


key: ack-nj
value: Norbert Juffa, 2445 Mission College Blvd. Santa Clara, CA 95054 USA email: path =norbert@iit.com=
filename: master.bib
entry:
@String{ack-nj =  "Norbert Juffa,
                  2445 Mission College Blvd.
                  Santa Clara, CA 95054
                  USA
                  email: \path=norbert@iit.com="}


key: inst-STAN-CS
value: Stanford University, Department of Computer Science
filename: master.bib
entry:
@String{inst-STAN-CS            = "Stanford University, Department of
                                  Computer Science"}


key: j-CACM
value: Communications of the Association for Computing Machinery
filename: master.bib
entry:
@String{j-CACM                  = "Communications of the Association
                                  for Computing Machinery"}


key: j-IJSAHPC
value: International Journal of Supercomputer Applications and High Performance Computing
filename: master.bib
entry:
@String{j-IJSAHPC               = "International Journal of
                                  Supercomputer Applications and High
                                  Performance Computing"}


key: j-J-MATH-PHYS-MIT
value: Journal of mathematics and physics / Massachusetts Institute of Technology
filename: master.bib
entry:
@String{j-J-MATH-PHYS-MIT       = "Journal of mathematics and physics /
                                  Massachusetts Institute of Technology"}


key: j-MATH-TABLES-OTHER-AIDS-COMPUT
value: Mathematical Tables and Other Aids to Computation
filename: master.bib
entry:
@String{j-MATH-TABLES-OTHER-AIDS-COMPUT = "Mathematical Tables and Other Aids
                                  to Computation"}


key: j-MONTHLY-NOT-ROY-ASTRON-SOC
value: Monthly Notices of the Royal Astronomical Society
filename: master.bib
entry:
@String{j-MONTHLY-NOT-ROY-ASTRON-SOC = "Monthly Notices of the Royal
                                  Astronomical Society"}


key: j-NAMS
value: Notices of the American Mathematical Society
filename: master.bib
entry:
@String{j-NAMS                  = "Notices of the American Mathematical
                                  Society"}


key: j-PROC-NATL-ACAD-SCI-USA
value: Proceedings of the National Academy of Sciences of the United States of America
filename: master.bib
entry:
@String{j-PROC-NATL-ACAD-SCI-USA = "Proceedings of the National Academy of
                                  Sciences of the United States of America"}


key: j-PROC-SID
value: Proceedings of the Society for Information Display
filename: master.bib
entry:
@String{j-PROC-SID              = "Proceedings of the Society for
                                  Information Display"}


key: j-REV-GEN-SCI-PURES-APPL
value: Revue Generale des Sciences Pures et Appliquees
filename: master.bib
entry:
@String{j-REV-GEN-SCI-PURES-APPL = "Revue G{\'e}n{\'e}rale des Sciences Pures
                                  et Appliqu{\'e}es"}


key: j-SCI-PROC-ROY-DUBLIN-SOC
value: Scientific proceedings of the Royal Dublin Society
filename: master.bib
entry:
@String{j-SCI-PROC-ROY-DUBLIN-SOC = "Scientific proceedings of the Royal Dublin
                                  Society"}


key: j-SIGGRAPH
value: ACM SIGGRAPH --- Computer Graphics
filename: master.bib
entry:
@String{j-SIGGRAPH              = "ACM SIG{\-}GRAPH\emdash
                                  Com{\-}puter Graphics"}


key: j-SPE
value: Software --- Practice and Experience
filename: master.bib
entry:
@String{j-SPE                   = "Soft{\-}ware\emdash Prac{\-}tice
                                  and Experience"}


key: pub-ADOBE:adr
value: 1585 Charleston Road, P.~O. Box 7900, Mountain View, CA 94039-7900, USA, Tel: (415) 961-4400
filename: master.bib
entry:
@String{pub-ADOBE:adr           = "1585 Charleston Road, P.~O. Box
                                  7900, Mountain View, CA 94039-7900,
                                  USA, Tel: (415) 961-4400"}


key: pub-BIRKHAUSER:adr
value: Cambridge, MA, USA; Berlin, Germany; Basel, Switzerland
filename: master.bib
entry:
@String{pub-BIRKHAUSER:adr      = "Cambridge, MA, USA; Berlin, Germany; Basel,
                                  Switzerland"}


key: pub-BOWKER:adr
value: 1180 Avenue of the Americas, New York, NY 10036, USA
filename: master.bib
entry:
@String{pub-BOWKER:adr          = "1180 Avenue of the Americas, New
                                  York, NY 10036, USA"}


key: pub-CBI:adr
value: 180 North Michigan Avenue, Chicago, IL 60601, USA
filename: master.bib
entry:
@String{pub-CBI:adr             = "180 North Michigan Avenue, Chicago,
                                  IL 60601, USA"}


key: pub-CBM:adr
value: A Division of Cardinal Business Media Inc., 101 Witmer Road, Horsham, PA 19044, USA
filename: master.bib
entry:
@String{pub-CBM:adr             = "A Division of Cardinal Business
                                  Media Inc., 101 Witmer Road,
                                  Horsham, PA 19044, USA"}


key: pub-CHARTWELL:adr
value: 110 Enterprise Avenue, Secaucus, NJ 07094, USA
filename: master.bib
entry:
@String{pub-CHARTWELL:adr       = "110 Enterprise Avenue, Secaucus, NJ
                                  07094, USA"}


key: pub-CIPS:adr
value: 243 College St, 5th Floor, Toronto, Ontario M5T~2Y1, Canada
filename: master.bib
entry:
@String{pub-CIPS:adr            = "243 College St, 5th Floor, Toronto,
                                  Ontario M5T~2Y1, Canada"}


key: pub-CLSC:adr
value: Department of Physics, University of Utah, Salt Lake City, UT 84112, USA
filename: master.bib
entry:
@String{pub-CLSC:adr            = "Department of Physics, University
                                  of Utah, Salt Lake City, UT 84112,
                                  USA"}


key: pub-COLLIER
value: Collier Books, Macmillan Publishing Company
filename: master.bib
entry:
@String{pub-COLLIER             = "Collier Books, Macmillan Publishing
                                  Company"}


key: pub-COPERNICUS
value: Copernicus (a division of Springer-Verlag New York, Inc.)
filename: master.bib
entry:
@String{pub-COPERNICUS          = "Copernicus (a division of Springer-Verlag
                                  New York, Inc.)"}


key: pub-CRC:adr
value: 2000 N.W. Corporate Blvd., Boca Raton, FL 33431-9868, USA
filename: master.bib
entry:
@String{pub-CRC:adr             = "2000 N.W. Corporate Blvd., Boca Raton,
                                  FL 33431-9868, USA"}


key: pub-CWI:adr
value: P. O. Box 4079, 1009 AB Amsterdam, The Netherlands
filename: master.bib
entry:
@String{pub-CWI:adr             = "P. O. Box 4079, 1009 AB Amsterdam,
                                  The Netherlands"}


key: pub-FSF:adr
value: 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, Tel: (617) 876-3296
filename: master.bib
entry:
@String{pub-FSF:adr             = "51 Franklin Street, Fifth Floor, Boston,
                                  MA 02110-1301, USA, Tel: (617) 876-3296"}


key: pub-GRAPHICCOMM:adr
value: 100 Daingerfield Road, Alexandria, VA 22314-2804, USA
filename: master.bib
entry:
@String{pub-GRAPHICCOMM:adr     = "100 Daingerfield Road, Alexandria,
                                  VA 22314-2804, USA"}


key: pub-HARTLEY-MARKS:adr
value: Point Roberts, WA, USA and Vancouver, BC, Canada
filename: master.bib
entry:
@String{pub-HARTLEY-MARKS:adr   = "Point Roberts, WA, USA and Vancouver, BC,
                                  Canada"}


key: pub-HAYDEN:adr
value: 4300 West 62nd Street, Indianapolis, IN 46268, USA
filename: master.bib
entry:
@String{pub-HAYDEN:adr          = "4300 West 62nd Street,
                                  Indianapolis, IN 46268, USA"}


key: pub-HEINZ-HEISE:adr
value: Helsdorfer Strass e 7, D-30625, Hannover, Germany
filename: master.bib
entry:
@String{pub-HEINZ-HEISE:adr     = "Helsdorfer Stra{\ss}e 7, D-30625, Hannover,
                                  Germany"}


key: pub-IBM-REDBOOKS:adr
value: 11400 Burnet Road, Austin, TX 78758-3493, USA
filename: master.bib
entry:
@String{pub-IBM-REDBOOKS:adr    = "11400 Burnet Road, Austin, TX 78758-3493,
                                   USA"}


key: pub-IEEE:adr
value: 1109 Spring Street, Suite 300, Silver Spring, MD 20910, USA
filename: master.bib
entry:
@String{pub-IEEE:adr            = "1109 Spring Street, Suite 300,
                                  Silver Spring, MD 20910, USA"}


key: pub-IOS:adr
value: Postal Drawer 10558, Burke, VA 2209-0558, USA
filename: master.bib
entry:
@String{pub-IOS:adr             = "Postal Drawer 10558, Burke, VA
                                  2209-0558, USA"}


key: pub-ISO
value: International Organization for Standardization
filename: master.bib
entry:
@String{pub-ISO                 = "International Organization for
                                  Standardization"}


key: pub-ITCP:adr
value: 20 Park Plaza Suite 1001, Boston, MA 02116 USA
filename: master.bib
entry:
@String{pub-ITCP:adr            = "20 Park Plaza Suite 1001, Boston,
                                  MA 02116 USA"}


key: pub-JSA:adr
value: 1-24, Akasaka 4 Chome, Minato-ku, Tokyo, 107 Japan
filename: master.bib
entry:
@String{pub-JSA:adr             = "1-24, Akasaka 4 Chome, Minato-ku,
                                  Tokyo, 107 Japan"}


key: pub-KLUWER:adr
value: Norwell, MA, USA, and Dordrecht, The Netherlands
filename: master.bib
entry:
@String{pub-KLUWER:adr          = "Norwell, MA, USA, and Dordrecht,
                                  The Netherlands"}


key: pub-MACMILLAN-EDUCATION:adr
value: Houndmills, Basingstoke, Hampshire RG21 2XS, UK
filename: master.bib
entry:
@String{pub-MACMILLAN-EDUCATION:adr = "Houndmills, Basingstoke, Hampshire
                                  RG21 2XS, UK"}


key: pub-MIS:adr
value: P. O. Box 5277, Portland, OR 97208-5277, USA, Tel: (503) 282-5215
filename: master.bib
entry:
@String{pub-MIS:adr             = "P. O. Box 5277, Portland, OR
                                  97208-5277, USA, Tel: (503)
                                  282-5215"}


key: pub-MORGAN-KAUFMANN:adrnew
value: 2929 Campus Drive, Suite 260, San Mateo, CA 94403, USA
filename: master.bib
entry:
@String{pub-MORGAN-KAUFMANN:adrnew = "2929 Campus Drive, Suite 260, San
                                  Mateo, CA 94403, USA"}


key: pub-MT:adr
value: M&T Publishing, Inc., 501 Galveston Drive, Redwood City, CA 94063, USA
filename: master.bib
entry:
@String{pub-MT:adr              = "M\&T Publishing, Inc., 501
                                  Galveston Drive, Redwood City, CA
                                  94063, USA"}


key: pub-OHMSHA:adr
value: 3-1 Kanda Nishiki-cho, Chiyoda-ku, Tokyo 101, Japan
filename: master.bib
entry:
@String{pub-OHMSHA:adr          = "3-1 Kanda Nishiki-cho, Chiyoda-ku,
                                  Tokyo 101, Japan"}


key: pub-ORA-MEDIA:adr
value: 1005 Gravenstein Highway North, Sebastopol, CA 95472, USA
filename: master.bib
entry:
@String{pub-ORA-MEDIA:adr       = "1005 Gravenstein Highway North,
                                   Sebastopol, CA 95472, USA"}


key: pub-PRIME-TIME-FREEWARE:adr
value: 370 Altair Way, Suite 150, Sunnyvale, CA, USA
filename: master.bib
entry:
@String{pub-PRIME-TIME-FREEWARE:adr = "370 Altair Way, Suite 150,
                                  Sunnyvale, CA, USA"}


key: pub-PTI:adr
value: 12 Madrona Street, Mill Valley, CA 94941, USA
filename: master.bib
entry:
@String{pub-PTI:adr             = "12 Madrona Street, Mill Valley, CA
                                  94941, USA"}


key: pub-REIDEL:adr
value: Dordrecht, The Netherlands; Boston, MA, USA; Lancaster, UK; Tokyo, Japan
filename: master.bib
entry:
@String{pub-REIDEL:adr          = "Dordrecht, The Netherlands; Boston, MA, USA;
                                  Lancaster, UK; Tokyo, Japan"}


key: pub-SERIF:adr
value: A subsidiary of Xerox Corporation, 701 South Aviation Boulevard, El Segundo, CA 90245, USA
filename: master.bib
entry:
@String{pub-SERIF:adr           = "A subsidiary of Xerox Corporation,
                                  701 South Aviation Boulevard, El
                                  Segundo, CA 90245, USA"}


key: pub-SIAM
value: Society for Industrial and Applied Mathematics
filename: master.bib
entry:
@String{pub-SIAM                = "Society for Industrial and Applied
                                  Mathematics"}


key: pub-STAN-CS
value: Stanford University, Department of Computer Science
filename: master.bib
entry:
@String{pub-STAN-CS             = "Stanford University, Department of
                                  Computer Science"}


key: pub-STAN-CSL
value: Computer System Laboratories, Stanford University
filename: master.bib
entry:
@String{pub-STAN-CSL            = "Computer System Laboratories, Stanford
                                  University"}


key: pub-SUCSLI
value: Stanford University Center for the Study of Language and Information
filename: master.bib
entry:
@String{pub-SUCSLI              = "Stanford University Center for the
                                  Study of Language and Information"}


key: pub-SUN:adr
value: 2550 Garcia Avenue, Mountain View, CA 94043, USA
filename: master.bib
entry:
@String{pub-SUN:adr             = "2550 Garcia Avenue, Mountain View,
                                  CA 94043, USA"}


key: pub-SV:adr
value: Berlin, Germany~/ Heidelberg, Germany~/ London, UK~/ etc.
filename: master.bib
entry:
@String{pub-SV:adr              = "Berlin, Germany~/ Heidelberg,
                                  Germany~/ London, UK~/ etc."}


key: pub-SYBEX:adr
value: 2021 Challenger Driver, Suite 100, Alameda, CA 94501, USA
filename: master.bib
entry:
@String{pub-SYBEX:adr           = "2021 Challenger Driver, Suite 100,
                                  Alameda, CA 94501, USA"}


key: pub-TEXPLORATORS:adr
value: 3701 W. Alabama, Suite 450-273, Houston, TX 77027, USA
filename: master.bib
entry:
@String{pub-TEXPLORATORS:adr    = "3701 W. Alabama, Suite 450-273,
                                  Houston, TX 77027, USA"}


key: pub-UNIC:adr
value: Danmarks EDB-Center for Forskning og Uddannelse, Copenhagen, Denmark
filename: master.bib
entry:
@String{pub-UNIC:adr            = "Danmarks EDB-Center for Forskning
                                  og Uddannelse, Copenhagen, Denmark"}


key: pub-WEITEK:adr
value: 1060 E. Arques Ave., Sunnyvale, CA 94086-BRM-9759, USA
filename: master.bib
entry:
@String{pub-WEITEK:adr          = "1060 E. Arques Ave., Sunnyvale, CA
                                  94086-BRM-9759, USA"}


key: pub-WORLD-SCI
value: World Scientific Publishing Co. Pte. Ltd.
filename: master.bib
entry:
@String{pub-WORLD-SCI           = "World Scientific Publishing
                                  Co. Pte. Ltd."}


key: pub-WORLD-SCI:adr
value: P. O. Box 128, Farrer Road, Singapore 9128
filename: master.bib
entry:
@String{pub-WORLD-SCI:adr       = "P. O. Box 128, Farrer Road,
                                  Singapore 9128"}


# bibtab

bibtype: book
filename: master.bib
label: Aaserud:2013:LLQ
author: Finn Aaserud and J. L. Heilbron
title: Love, Literature, and the Quantum Atom: Niels Bohr's 1913 Trilogy Revisited
publisher: pub-OXFORD
address: pub-OXFORD:adr
pages: viii + 284
year: 2013
ISBN: 0-19-968028-0 (hardcover) OR 0199680280 (hardcover)
ISBN13: 978-0-19-968028-3 (hardcover) OR 9780199680283 (hardcover)
LCCN: QC774.B64 A19 2013
bibdate: Fri Oct 31 06:04:25 MDT 2014
bibtimestamp: 2014.10.31 06:04:25 MDT
subject: Bohr, Niels; Correspondence; Family; Nuclear physicists; Denmark
acknowledgement: ack-nhfb
subjectdates: Niels Bohr (1885--1962)
rawauthor: Finn Aaserud and J. L. Heilbron
rawtitle: Love, Literature, and the Quantum Atom: {Niels Bohr}'s 1913 Trilogy Revisited
bibsource:
https://www.math.utah.edu/pub/bibnet/authors/b/bohr-niels.bib; https://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib; https://www.math.utah.edu/pub/tex/bib/isis2010.bib; https://www.math.utah.edu/pub/tex/bib/master.bib; z3950.loc.gov:7090/Voyager

abstract:
This title presents unpublished excerpts from extensive correspondence between Niels Bohr and his immediate family, and uses it to describe and analyze the psychological and cultural background to his invention of the quantum theory of the atom.

TOC:
Part 1 Niels Bohr's Private Sphere Revealed through unpublished family correspondence / Finn Aaserud 1.1. Introduction 1.2. Finding each other in Copenhagen 1.3. Niels in Cambridge 1.4. Niels in Manchester 1.5. Beginning married life in Copenhagen 1.6. Conclusion Part 2 Nascent Science The scientific and psychological background to Bohr's Trilogy / J. L. Heilbron 2.1. Necessary preliminaries 2.2. Some physics around 1900 2.3.``Stupid electrons'' 2.4. Indictment of ``classical physics'' 2.5. Odin the law giver 2.6. The Trilogy 2.7. Bolts from the blue Works cited Part 3 The Trilogy On the Constitution of Atoms and Molecules / Niels Bohr 3.1. Binding of Electrons by Positive Nuclei 3.2. Systems Containing only a Single Nucleus 3.3. Systems Containing Several Nuclei

rawabstract:
This title presents unpublished excerpts from extensive correspondence between Niels Bohr and his immediate family, and uses it to describe and analyze the psychological and cultural background to his invention of the quantum theory of the atom.

rawTOC:
Part 1 Niels Bohr's Private Sphere \\ Revealed through unpublished family correspondence / Finn Aaserud \\ 1.1. Introduction \\ 1.2. Finding each other in Copenhagen \\ 1.3. Niels in Cambridge \\ 1.4. Niels in Manchester \\ 1.5. Beginning married life in Copenhagen \\ 1.6. Conclusion \\ Part 2 Nascent Science \\ The scientific and psychological background to Bohr's Trilogy / J. L. Heilbron \\ 2.1. Necessary preliminaries \\ 2.2. Some physics around 1900 \\ 2.3.``Stupid electrons'' \\ 2.4. Indictment of ``classical physics'' \\ 2.5. Odin the law giver \\ 2.6. The Trilogy \\ 2.7. Bolts from the blue \\ Works cited \\ Part 3 The Trilogy \\ On the Constitution of Atoms and Molecules / Niels Bohr \\ 3.1. Binding of Electrons by Positive Nuclei \\ 3.2. Systems Containing only a Single Nucleus \\ 3.3. Systems Containing Several Nuclei

entry:
@Book{Aaserud:2013:LLQ,
  author =       "Finn Aaserud and J. L. Heilbron",
  title =        "Love, Literature, and the Quantum Atom: {Niels Bohr}'s
                 1913 Trilogy Revisited",
  publisher =    pub-OXFORD,
  address =      pub-OXFORD:adr,
  pages =        "viii + 284",
  year =         "2013",
  ISBN =         "0-19-968028-0 (hardcover)",
  ISBN-13 =      "978-0-19-968028-3 (hardcover)",
  LCCN =         "QC774.B64 A19 2013",
  bibdate =      "Fri Oct 31 06:04:25 MDT 2014",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/b/bohr-niels.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/r/rutherford-ernest.bib;
                 https://www.math.utah.edu/pub/tex/bib/isis2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "This title presents unpublished excerpts from
                 extensive correspondence between Niels Bohr and his
                 immediate family, and uses it to describe and analyze
                 the psychological and cultural background to his
                 invention of the quantum theory of the atom.",
  acknowledgement = ack-nhfb,
  subject =      "Bohr, Niels; Correspondence; Family; Nuclear
                 physicists; Denmark",
  subject-dates = "Niels Bohr (1885--1962)",
  tableofcontents = "Part 1 Niels Bohr's Private Sphere \\
                 Revealed through unpublished family correspondence /
                 Finn Aaserud \\
                 1.1. Introduction \\
                 1.2. Finding each other in Copenhagen \\
                 1.3. Niels in Cambridge \\
                 1.4. Niels in Manchester \\
                 1.5. Beginning married life in Copenhagen \\
                 1.6. Conclusion \\
                 Part 2 Nascent Science \\
                 The scientific and psychological background to Bohr's
                 Trilogy / J. L. Heilbron \\
                 2.1. Necessary preliminaries \\
                 2.2. Some physics around 1900 \\
                 2.3.``Stupid electrons'' \\
                 2.4. Indictment of ``classical physics'' \\
                 2.5. Odin the law giver \\
                 2.6. The Trilogy \\
                 2.7. Bolts from the blue \\
                 Works cited \\
                 Part 3 The Trilogy \\
                 On the Constitution of Atoms and Molecules / Niels Bohr
                 \\
                 3.1. Binding of Electrons by Positive Nuclei \\
                 3.2. Systems Containing only a Single Nucleus \\
                 3.3. Systems Containing Several Nuclei",
}


bibtype: article
filename: master.bib
label: Abe:index
author: Kris K. Abe and Daniel M. Berry
title: tt indx and tt findphrases, A System for Generating Indexes for Ditroff Documents
journal: j-SPE
volume: 19
number: 1
pages: 1--34
month: jan
monthnumber: 1
year: 1989
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
acknowledgement: ack-nhfb
rawauthor: Kris K. Abe and Daniel M. Berry
rawtitle: {\tt indx} and {\tt findphrases}, {A} System for Generating Indexes for Ditroff Documents
entry:
@Article{Abe:index,
  author =       "Kris K. Abe and Daniel M. Berry",
  title =        "{\tt indx} and {\tt findphrases}, {A} System for
                 Generating Indexes for Ditroff Documents",
  journal =      j-SPE,
  volume =       "19",
  number =       "1",
  pages =        "1--34",
  month =        jan,
  year =         "1989",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Abrahams:1990:TI
author: Paul W. Abrahams and Karl Berry and Kathryn A. Hargreaves
title: TeX for the Impatient
publisher: pub-AW
address: pub-AW:adr
pages: xvii + 357
year: 1990
ISBN: 0-201-51375-7 OR 0201513757
ISBN13: 978-0-201-51375-2 OR 9780201513752
LCCN: Z253.4.T47 A27 1990
bibdate: Tue Dec 14 22:55:21 1993
bibtimestamp: 1993.12.14 22:55:21 ???
acknowledgement: ack-nhfb
key: ABH90
rawauthor: Paul W. Abrahams and Karl Berry and Kathryn A. Hargreaves
rawtitle: {\TeX} for the Impatient
bibsource:
https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/texbook3.bib

abstract:
TeX , a software system created by Donald E. Knuth, sets the standard for typesetting in mathematics, science, and engineering. Features: complete description of TeX commands, arranged for lookup either by function or alphabetically; clear definitions of essential TeX concepts, collected in separate chapter so that the command descriptions remain brief and accessible; explanations of common error messages and advice on solving problems that frequently arise; a collection of useful macros (also available in electronic form).

TOC:
1: Using this book / 1 Syntactic conventions / 2 Descriptions of the commands / 3 2: Using TeX / 7 Turning input into ink / 7 Programs and files you need / 7 Running TeX / 9 Preparing an input file / 10 Commands and control sequences / 10 Arguments / 11 Parameters / 12 Spaces / 12 Comments / 13 Punctuation / 13 Special characters / 15 Groups / 15 Math formulas / 16 How TeX works / 16 New TeX versus old TeX / 18 Resources / 18 3: Examples / 21 Entering simple text / 22 Indentation / 24 Fonts and special characters / 26 Interline spacing / 28 Spacing, rules, and boxes / 30 Odds and ends / o32 Using fonts from other sources / 34 A ruled table / 36 Typesetting mathematics / 38 More mathematics / 40 4: Concepts / 43 5: Commands for composing paragraphs / 97 Characters and accents / 97 Letters and ligatures for European alphabets / 97 Special symbols / 98 Arbitrary characters / 99 Accents / 100 Defeating boundary ligatures / 101 Selecting fonts / 1o2 Particular fonts / 102 Type styles / 103 Uppercase and lowercase / 103 Interword spacing / 104 Centering and justifying lines / 108 Shaping paragraphs / 110 Starting, ending, and indenting paragraphs / 110 Shaping entire paragraphs / 114 Line breaks / 120 Encouraging or discouraging line breaks / 120 Line breaking parameters / 123 Hyphenation / 126 Section headings, lists, and theorems / 129 6: Commands for composing pages / 133 Interline and interparagraph spaces r / 133 Pagebreaks / 136 Encouraging or discouraging page breaks / 136 Page breaking parameters / 138 Page layout / 140 Page description parameters / 140 Page numbers / 142 Header and footer lines / 143 Marks / 144 Insertions / 145 Footnotes / 145 General insertions / 146 Modifying the output routine / 148 Splitting vertical lists / 149 7: Commands for horizontal and vertical modes / 153 Producing space / 153 Fixed-width horizontal space / 153 Fixed-length vertical space / 154 Variable-size space / 155 Manipulating boxes / 160 Constructing hboxes and vboxes / 160 Setting and retrieving the contents of boxes / 164 Shifting boxes / 166 Dimensions of box registers / 167 Struts, phantoms, and empty boxes / 167 Parameters pertaining to malformed boxes / 170 Retrieving the last item from a list / 171 Rules and leaders / 172 Alignments / 176 Tabbing alignments / 176 General alignments / 178 8: Commands for composing math formulas / 187 Simple parts of formulas / 187 Creek letters / 187 Miscellaneous ordinary math symbols / 188 Binary operations / 189 Relations / 190 Left and right delimiters / 191 Arrows / 192 Named mathematical functions / 193 Large operators / 194 Punctuation / 196 Superscripts and subscripts / 197 Selecting and using styles / 198 Compound symbols / 199 Math accents / 199 Fractions and other stacking operations / 200 Dots / 203 Delimiters / 204 Matrices / 205 Roots and radicals / 206 Equation numbers / 207 Multiline displays / 208 Fonts in math formula / 209 Constructing math symbols / 211 Making delimiters bigger / 211 Parts of large symbols / 211 Aligning parts of a formula / 212 Aligning accents / 212 Aligning material vertically / 213 Producing spaces / 214 Fixed-width math spaces / 214 Variable-width math spaces / 215 Spacing parameters for displays / 216 Other spacing parameters for math / 217 Categorizing math constructs / 218 Special actions for math formulas / 218 9: Commands for general operations / 221 Naming and modifying fonts / 221 Converting information to tokens / 224 Numbers / 224 Environmental information / 224 Values of variables / 226 Grouping / 227 Macros / 230 Defining macros / 230 Other definitions / 232 Controlling expansion / 233 Conditional tests / 235 Repeated actions / 240 Doing nothing / 241 Registers / 242 Using registers / 242 Naming and reserving registers, etc. / 244 Doing arithmetic in registers / 245 Ending the job / 246 Input and output / 247 Operations on input files / 247 Operations on output files / 249 Interpreting input characters / 251 Controlling interaction with TeX / 252 Diagnostic aids / 253 Displaying internal data / 253 Specifying what is traced / 256 Sending messages / 261 Initializing TeX / 263 10: Tips and techniques / 265 Correcting bad page breaks / 265 Preserving the end of a page / 267 Leaving space at the top of a page / 267 Correcting bad line breaks / 268 Correcting overfull or underfull boxes / 268 Recovering lost interword spaces / 270 Avoiding unwanted interword spaces / 270 Avoiding excess space around a display / 271 Avoiding excess space after a paragraph / 271 Changing the paragraph shape / 272 Putting paragraphs into a box / 272 Drawing lines / 273 Creating multiline headers or footers / 274 Finding mismatched braces / 275 Setting dimensions / 276 Creating composite fonts / 276 Reproducing text verbatim / 277 Using outer macros / 279 Changing category codes / 280 Making macro files more readable / 281 11: Making sense of error messages / 283 12: A compendium of useful macros / 291 Preliminaries / 291 Displays / 295 Time of day / 297 Lists / 298 Verbatim listing / 300 Tables of contents / 301 Cross-references / 302 Environments / 304 Justification / 306 Tables / 307 Footnotes / 309 Double columns / 309 Finishing up / 311 13: Capsule summary of commands / 313 Index / 341

rawabstract:
\TeX{}, a software system created by Donald E. Knuth, sets the standard for typesetting in mathematics, science, and engineering. Features: complete description of \TeX{} commands, arranged for lookup either by function or alphabetically; clear definitions of essential \TeX{} concepts, collected in separate chapter so that the command descriptions remain brief and accessible; explanations of common error messages and advice on solving problems that frequently arise; a collection of useful macros (also available in electronic form).

shortTOC:
1 Using this book / 1 2 Using TeX / 7 3 Examples / 21 4 Concepts / 43 5 Commands for composing paragraphs / 97 6 Commands for composing Pages / 133 7 Commands for horizontal and vertical modes / 153 8 Commands for composing math formulas / 187 9 Commands for general operations / 221 10 Tips and techniques / 265 11 Making sense of error messages / 283 12 A compendium of useful macros / 291 13 Capsule summary of commands / 313 Index / 341

rawshortTOC:
1 Using this book / 1 \\ 2 Using \TeX{} / 7 \\ 3 Examples / 21 \\ 4 Concepts / 43 \\ 5 Commands for composing paragraphs / 97 \\ 6 Commands for composing Pages / 133 \\ 7 Commands for horizontal and vertical modes / 153 \\ 8 Commands for composing math formulas / 187 \\ 9 Commands for general operations / 221 \\ 10 Tips and techniques / 265 \\ 11 Making sense of error messages / 283 \\ 12 A compendium of useful macros / 291 \\ 13 Capsule summary of commands / 313 \\ Index / 341

rawTOC:
1: Using this book / 1 \\ Syntactic conventions / 2 \\ Descriptions of the commands / 3 \\ 2: Using \TeX{} / 7 \\ Turning input into ink / 7 \\ Programs and files you need / 7 \\ Running \TeX{} / 9 \\ Preparing an input file / 10 \\ Commands and control sequences / 10 \\ Arguments / 11 \\ Parameters / 12 \\ Spaces / 12 \\ Comments / 13 \\ Punctuation / 13 \\ Special characters / 15 \\ Groups / 15 \\ Math formulas / 16 \\ How \TeX{} works / 16 \\ New \TeX{} versus old \TeX{} / 18 \\ Resources / 18 \\ 3: Examples / 21 \\ Entering simple text / 22 \\ Indentation / 24 \\ Fonts and special characters / 26 \\ Interline spacing / 28 \\ Spacing, rules, and boxes / 30 \\ Odds and ends / o32 \\ Using fonts from other sources / 34 \\ A ruled table / 36 \\ Typesetting mathematics / 38 \\ More mathematics / 40 \\ 4: Concepts / 43 \\ 5: Commands for composing paragraphs / 97 \\ Characters and accents / 97 \\ Letters and ligatures for European alphabets / 97 \\ Special symbols / 98 \\ Arbitrary characters / 99 \\ Accents / 100 \\ Defeating boundary ligatures / 101 \\ Selecting fonts / 1o2 \\ Particular fonts / 102 \\ Type styles / 103 \\ Uppercase and lowercase / 103 \\ Interword spacing / 104 \\ Centering and justifying lines / 108 \\ Shaping paragraphs / 110 \\ Starting, ending, and indenting paragraphs / 110 \\ Shaping entire paragraphs / 114 \\ Line breaks / 120 \\ Encouraging or discouraging line breaks / 120 \\ Line breaking parameters / 123 \\ Hyphenation / 126 \\ Section headings, lists, and theorems / 129 \\ 6: Commands for composing pages / 133 \\ Interline and interparagraph spaces r / 133 \\ Pagebreaks / 136 \\ Encouraging or discouraging page breaks / 136 \\ Page breaking parameters / 138 \\ Page layout / 140 \\ Page description parameters / 140 \\ Page numbers / 142 \\ Header and footer lines / 143 \\ Marks / 144 \\ Insertions / 145 \\ Footnotes / 145 \\ General insertions / 146 \\ Modifying the output routine / 148 \\ Splitting vertical lists / 149 \\ 7: Commands for horizontal and vertical modes / 153 \\ Producing space / 153 \\ Fixed-width horizontal space / 153 \\ Fixed-length vertical space / 154 \\ Variable-size space / 155 \\ Manipulating boxes / 160 \\ Constructing hboxes and vboxes / 160 \\ Setting and retrieving the contents of boxes / 164 \\ Shifting boxes / 166 \\ Dimensions of box registers / 167 \\ Struts, phantoms, and empty boxes / 167 \\ Parameters pertaining to malformed boxes / 170 \\ Retrieving the last item from a list / 171 \\ Rules and leaders / 172 \\ Alignments / 176 \\ Tabbing alignments / 176 \\ General alignments / 178 \\ 8: Commands for composing math formulas / 187 \\ Simple parts of formulas / 187 \\ Creek letters / 187 \\ Miscellaneous ordinary math symbols / 188 \\ Binary operations / 189 \\ Relations / 190 \\ Left and right delimiters / 191 \\ Arrows / 192 \\ Named mathematical functions / 193 \\ Large operators / 194 \\ Punctuation / 196 \\ Superscripts and subscripts / 197 \\ Selecting and using styles / 198 \\ Compound symbols / 199 \\ Math accents / 199 \\ Fractions and other stacking operations / 200 \\ Dots / 203 \\ Delimiters / 204 \\ Matrices / 205 \\ Roots and radicals / 206 \\ Equation numbers / 207 \\ Multiline displays / 208 \\ Fonts in math formula / 209 \\ Constructing math symbols / 211 \\ Making delimiters bigger / 211 \\ Parts of large symbols / 211 \\ Aligning parts of a formula / 212 \\ Aligning accents / 212 \\ Aligning material vertically / 213 \\ Producing spaces / 214 \\ Fixed-width math spaces / 214 \\ Variable-width math spaces / 215 \\ Spacing parameters for displays / 216 \\ Other spacing parameters for math / 217 \\ Categorizing math constructs / 218 \\ Special actions for math formulas / 218 \\ 9: Commands for general operations / 221 \\ Naming and modifying fonts / 221 \\ Converting information to tokens / 224 \\ Numbers / 224 \\ Environmental information / 224 \\ Values of variables / 226 \\ Grouping / 227 \\ Macros / 230 \\ Defining macros / 230 \\ Other definitions / 232 \\ Controlling expansion / 233 \\ Conditional tests / 235 \\ Repeated actions / 240 \\ Doing nothing / 241 \\ Registers / 242 \\ Using registers / 242 \\ Naming and reserving registers, etc. / 244 \\ Doing arithmetic in registers / 245 \\ Ending the job / 246 \\ Input and output / 247 \\ Operations on input files / 247 \\ Operations on output files / 249 \\ Interpreting input characters / 251 \\ Controlling interaction with \TeX{} / 252 \\ Diagnostic aids / 253 \\ Displaying internal data / 253 \\ Specifying what is traced / 256 \\ Sending messages / 261 \\ Initializing \TeX{} / 263 \\ 10: Tips and techniques / 265 \\ Correcting bad page breaks / 265 \\ Preserving the end of a page / 267 \\ Leaving space at the top of a page / 267 \\ Correcting bad line breaks / 268 \\ Correcting overfull or underfull boxes / 268 \\ Recovering lost interword spaces / 270 \\ Avoiding unwanted interword spaces / 270 \\ Avoiding excess space around a display / 271 \\ Avoiding excess space after a paragraph / 271 \\ Changing the paragraph shape / 272 \\ Putting paragraphs into a box / 272 \\ Drawing lines / 273 \\ Creating multiline headers or footers / 274 \\ Finding mismatched braces / 275 \\ Setting dimensions / 276 \\ Creating composite fonts / 276 \\ Reproducing text verbatim / 277 \\ Using outer macros / 279 \\ Changing category codes / 280 \\ Making macro files more readable / 281 \\ 11: Making sense of error messages / 283 \\ 12: A compendium of useful macros / 291 \\ Preliminaries / 291 \\ Displays / 295 \\ Time of day / 297 \\ Lists / 298 \\ Verbatim listing / 300 \\ Tables of contents / 301 \\ Cross-references / 302 \\ Environments / 304 \\ Justification / 306 \\ Tables / 307 \\ Footnotes / 309 \\ Double columns / 309 \\ Finishing up / 311 \\ 13: Capsule summary of commands / 313 \\ Index / 341

entry:
@Book{Abrahams:1990:TI,
  author =       "Paul W. Abrahams and Karl Berry and Kathryn A.
                 Hargreaves",
  key =          "ABH90",
  title =        "{\TeX} for the Impatient",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xvii + 357",
  year =         "1990",
  ISBN =         "0-201-51375-7",
  ISBN-13 =      "978-0-201-51375-2",
  LCCN =         "Z253.4.T47 A27 1990",
  bibdate =      "Tue Dec 14 22:55:21 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/texbook3.bib",
  abstract =     "\TeX{}, a software system created by Donald E. Knuth,
                 sets the standard for typesetting in mathematics,
                 science, and engineering. Features: complete
                 description of \TeX{} commands, arranged for lookup
                 either by function or alphabetically; clear definitions
                 of essential \TeX{} concepts, collected in separate
                 chapter so that the command descriptions remain brief
                 and accessible; explanations of common error messages
                 and advice on solving problems that frequently arise; a
                 collection of useful macros (also available in
                 electronic form).",
  acknowledgement = ack-nhfb,
  shorttableofcontents = "1 Using this book / 1 \\
                 2 Using \TeX{} / 7 \\
                 3 Examples / 21 \\
                 4 Concepts / 43 \\
                 5 Commands for composing paragraphs / 97 \\
                 6 Commands for composing Pages / 133 \\
                 7 Commands for horizontal and vertical modes / 153 \\
                 8 Commands for composing math formulas / 187 \\
                 9 Commands for general operations / 221 \\
                 10 Tips and techniques / 265 \\
                 11 Making sense of error messages / 283 \\
                 12 A compendium of useful macros / 291 \\
                 13 Capsule summary of commands / 313 \\
                 Index / 341",
  tableofcontents = "1: Using this book / 1 \\
                 Syntactic conventions / 2 \\
                 Descriptions of the commands / 3 \\
                 2: Using \TeX{} / 7 \\
                 Turning input into ink / 7 \\
                 Programs and files you need / 7 \\
                 Running \TeX{} / 9 \\
                 Preparing an input file / 10 \\
                 Commands and control sequences / 10 \\
                 Arguments / 11 \\
                 Parameters / 12 \\
                 Spaces / 12 \\
                 Comments / 13 \\
                 Punctuation / 13 \\
                 Special characters / 15 \\
                 Groups / 15 \\
                 Math formulas / 16 \\
                 How \TeX{} works / 16 \\
                 New \TeX{} versus old \TeX{} / 18 \\
                 Resources / 18 \\
                 3: Examples / 21 \\
                 Entering simple text / 22 \\
                 Indentation / 24 \\
                 Fonts and special characters / 26 \\
                 Interline spacing / 28 \\
                 Spacing, rules, and boxes / 30 \\
                 Odds and ends / o32 \\
                 Using fonts from other sources / 34 \\
                 A ruled table / 36 \\
                 Typesetting mathematics / 38 \\
                 More mathematics / 40 \\
                 4: Concepts / 43 \\
                 5: Commands for composing paragraphs / 97 \\
                 Characters and accents / 97 \\
                 Letters and ligatures for European alphabets / 97 \\
                 Special symbols / 98 \\
                 Arbitrary characters / 99 \\
                 Accents / 100 \\
                 Defeating boundary ligatures / 101 \\
                 Selecting fonts / 1o2 \\
                 Particular fonts / 102 \\
                 Type styles / 103 \\
                 Uppercase and lowercase / 103 \\
                 Interword spacing / 104 \\
                 Centering and justifying lines / 108 \\
                 Shaping paragraphs / 110 \\
                 Starting, ending, and indenting paragraphs / 110 \\
                 Shaping entire paragraphs / 114 \\
                 Line breaks / 120 \\
                 Encouraging or discouraging line breaks / 120 \\
                 Line breaking parameters / 123 \\
                 Hyphenation / 126 \\
                 Section headings, lists, and theorems / 129 \\
                 6: Commands for composing pages / 133 \\
                 Interline and interparagraph spaces r / 133 \\
                 Pagebreaks / 136 \\
                 Encouraging or discouraging page breaks / 136 \\
                 Page breaking parameters / 138 \\
                 Page layout / 140 \\
                 Page description parameters / 140 \\
                 Page numbers / 142 \\
                 Header and footer lines / 143 \\
                 Marks / 144 \\
                 Insertions / 145 \\
                 Footnotes / 145 \\
                 General insertions / 146 \\
                 Modifying the output routine / 148 \\
                 Splitting vertical lists / 149 \\
                 7: Commands for horizontal and vertical modes / 153 \\
                 Producing space / 153 \\
                 Fixed-width horizontal space / 153 \\
                 Fixed-length vertical space / 154 \\
                 Variable-size space / 155 \\
                 Manipulating boxes / 160 \\
                 Constructing hboxes and vboxes / 160 \\
                 Setting and retrieving the contents of boxes / 164 \\
                 Shifting boxes / 166 \\
                 Dimensions of box registers / 167 \\
                 Struts, phantoms, and empty boxes / 167 \\
                 Parameters pertaining to malformed boxes / 170 \\
                 Retrieving the last item from a list / 171 \\
                 Rules and leaders / 172 \\
                 Alignments / 176 \\
                 Tabbing alignments / 176 \\
                 General alignments / 178 \\
                 8: Commands for composing math formulas / 187 \\
                 Simple parts of formulas / 187 \\
                 Creek letters / 187 \\
                 Miscellaneous ordinary math symbols / 188 \\
                 Binary operations / 189 \\
                 Relations / 190 \\
                 Left and right delimiters / 191 \\
                 Arrows / 192 \\
                 Named mathematical functions / 193 \\
                 Large operators / 194 \\
                 Punctuation / 196 \\
                 Superscripts and subscripts / 197 \\
                 Selecting and using styles / 198 \\
                 Compound symbols / 199 \\
                 Math accents / 199 \\
                 Fractions and other stacking operations / 200 \\
                 Dots / 203 \\
                 Delimiters / 204 \\
                 Matrices / 205 \\
                 Roots and radicals / 206 \\
                 Equation numbers / 207 \\
                 Multiline displays / 208 \\
                 Fonts in math formula / 209 \\
                 Constructing math symbols / 211 \\
                 Making delimiters bigger / 211 \\
                 Parts of large symbols / 211 \\
                 Aligning parts of a formula / 212 \\
                 Aligning accents / 212 \\
                 Aligning material vertically / 213 \\
                 Producing spaces / 214 \\
                 Fixed-width math spaces / 214 \\
                 Variable-width math spaces / 215 \\
                 Spacing parameters for displays / 216 \\
                 Other spacing parameters for math / 217 \\
                 Categorizing math constructs / 218 \\
                 Special actions for math formulas / 218 \\
                 9: Commands for general operations / 221 \\
                 Naming and modifying fonts / 221 \\
                 Converting information to tokens / 224 \\
                 Numbers / 224 \\
                 Environmental information / 224 \\
                 Values of variables / 226 \\
                 Grouping / 227 \\
                 Macros / 230 \\
                 Defining macros / 230 \\
                 Other definitions / 232 \\
                 Controlling expansion / 233 \\
                 Conditional tests / 235 \\
                 Repeated actions / 240 \\
                 Doing nothing / 241 \\
                 Registers / 242 \\
                 Using registers / 242 \\
                 Naming and reserving registers, etc. / 244 \\
                 Doing arithmetic in registers / 245 \\
                 Ending the job / 246 \\
                 Input and output / 247 \\
                 Operations on input files / 247 \\
                 Operations on output files / 249 \\
                 Interpreting input characters / 251 \\
                 Controlling interaction with \TeX{} / 252 \\
                 Diagnostic aids / 253 \\
                 Displaying internal data / 253 \\
                 Specifying what is traced / 256 \\
                 Sending messages / 261 \\
                 Initializing \TeX{} / 263 \\
                 10: Tips and techniques / 265 \\
                 Correcting bad page breaks / 265 \\
                 Preserving the end of a page / 267 \\
                 Leaving space at the top of a page / 267 \\
                 Correcting bad line breaks / 268 \\
                 Correcting overfull or underfull boxes / 268 \\
                 Recovering lost interword spaces / 270 \\
                 Avoiding unwanted interword spaces / 270 \\
                 Avoiding excess space around a display / 271 \\
                 Avoiding excess space after a paragraph / 271 \\
                 Changing the paragraph shape / 272 \\
                 Putting paragraphs into a box / 272 \\
                 Drawing lines / 273 \\
                 Creating multiline headers or footers / 274 \\
                 Finding mismatched braces / 275 \\
                 Setting dimensions / 276 \\
                 Creating composite fonts / 276 \\
                 Reproducing text verbatim / 277 \\
                 Using outer macros / 279 \\
                 Changing category codes / 280 \\
                 Making macro files more readable / 281 \\
                 11: Making sense of error messages / 283 \\
                 12: A compendium of useful macros / 291 \\
                 Preliminaries / 291 \\
                 Displays / 295 \\
                 Time of day / 297 \\
                 Lists / 298 \\
                 Verbatim listing / 300 \\
                 Tables of contents / 301 \\
                 Cross-references / 302 \\
                 Environments / 304 \\
                 Justification / 306 \\
                 Tables / 307 \\
                 Footnotes / 309 \\
                 Double columns / 309 \\
                 Finishing up / 311 \\
                 13: Capsule summary of commands / 313 \\
                 Index / 341",
}


bibtype: book
filename: master.bib
label: Abrahams:1992:UI
author: Paul W. Abrahams and Bruce R. Larson
title: UNIX for the Impatient
publisher: pub-AW
address: pub-AW:adr
pages: xxvii + 559
year: 1992
ISBN: 0-201-55703-7 OR 0201557037
ISBN13: 978-0-201-55703-9 OR 9780201557039
LCCN: QA76.76.O63 A27 1992
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/unix.bib
acknowledgement: ack-nhfb
rawauthor: Paul W. Abrahams and Bruce R. Larson
rawtitle: {UNIX} for the Impatient
note:
Excellent, and thorough, coverage of UNIX, with chapters on the file system, utilities, shells, editors, Emacs, data manipulation, mail, network communications and resources, the X Window System, and a comparison of MS-DOS and UNIX.

TOC:
Introduction UNIX Background The POSIX 2 Standard How to Use This Book Typographical Conventions Syntactic Conventions Getting Started Concepts The UNIX Manual System Administration and the Superuser Users and Groups What the Shell Does The UNIX Kernel Processes The UNIX File System File Permissions Conventions for Using Files Standard Files and Redirection Other Facilities for Interprocess Communication UNIX Commands Local Variables Initialization Files Terminal Descriptions Locales, Code Sets, and Internationalization Regular Expressions Devices Operations on Files Operations on Directories Listing Files with ls Displaying and Concatenating Files with cat Linking, Moving, and Copying Files with ln, mv, and cp Removing Files Examining Files or Output with a Pager Printing Files Finding Files with find Locating, Classifying, and Checking Files Comparing Files Controlling File Access and Ownership Miscellaneous File Utilities Data Compression and Encoding Archiving Sets of Files Examining Files with od Copying and Converting Data with dd Updating Files with patch Creating Special Files Data Manipulation Using Filters Sorting Files with sort Finding Patterns with grep Simple Data Transformations Extracting Parts of Files Combining Files Using sed to Edit from a Script The awk Programming Language Other Data Manipulation Languages Utility Programs Information Services Reporting on the Status of Processes Managing Processes Commands Related to Logging In Controlling Your Terminal On-Line Communication with Other Users Disk Usage Statistics Writing and Reading Strings Evaluating Expressions Special Invocation of Commands Querying Your UNIX Environment Miscellaneous Services Producing Locale Information and Defining a Locale Document Processing Version Control The Korn and POSIX Shells Overview of the Korn Shell Interacting with the Shell Editing an Input Line Calling the Shell Directly Shell Scripts Syntax of Shell Input Patterns Simple Commands Linking Commands with Operators Redirection Here-Documents The test, true, and false Commands Compound Commands How Commands Are Executed Parameters Parameter Expansions Quotation Substitutions Aliases Commands for Job Control The Command History and the fc Command Intrinsic Commands and Predefined Aliases Predefined Variables Used by the Shell Execution Options Initialization Files for the Shell Parsing Command Lines with getopts A Sample Shell Script Other Shells The C Shell csh Bash, the ``Bourne-again Shell'' Standard Editors

rawnote:
Excellent, and thorough, coverage of {UNIX}, with chapters on the file system, utilities, shells, editors, Emacs, data manipulation, mail, network communications and resources, the X Window System, and a comparison of {MS-DOS} and {UNIX}.

rawTOC:
Introduction \\ UNIX Background \\ The POSIX 2 Standard \\ How to Use This Book \\ Typographical Conventions \\ Syntactic Conventions \\ Getting Started \\ Concepts \\ The UNIX Manual \\ System Administration and the Superuser \\ Users and Groups \\ What the Shell Does \\ The UNIX Kernel \\ Processes \\ The UNIX File System \\ File Permissions \\ Conventions for Using Files \\ Standard Files and Redirection \\ Other Facilities for Interprocess Communication \\ UNIX Commands \\ Local Variables \\ Initialization Files \\ Terminal Descriptions \\ Locales, Code Sets, and Internationalization \\ Regular Expressions \\ Devices \\ Operations on Files \\ Operations on Directories \\ Listing Files with ls \\ Displaying and Concatenating Files with cat \\ Linking, Moving, and Copying Files with ln, mv, and cp \\ Removing Files \\ Examining Files or Output with a Pager \\ Printing Files \\ Finding Files with find \\ Locating, Classifying, and Checking Files \\ Comparing Files \\ Controlling File Access and Ownership \\ Miscellaneous File Utilities \\ Data Compression and Encoding \\ Archiving Sets of Files \\ Examining Files with od \\ Copying and Converting Data with dd \\ Updating Files with patch \\ Creating Special Files \\ Data Manipulation Using Filters \\ Sorting Files with sort \\ Finding Patterns with grep \\ Simple Data Transformations \\ Extracting Parts of Files \\ Combining Files \\ Using sed to Edit from a Script \\ The awk Programming Language \\ Other Data Manipulation Languages \\ Utility Programs \\ Information Services \\ Reporting on the Status of Processes \\ Managing Processes \\ Commands Related to Logging In \\ Controlling Your Terminal \\ On-Line Communication with Other Users \\ Disk Usage Statistics \\ Writing and Reading Strings \\ Evaluating Expressions \\ Special Invocation of Commands \\ Querying Your UNIX Environment \\ Miscellaneous Services \\ Producing Locale Information and Defining a Locale \\ Document Processing \\ Version Control \\ The Korn and POSIX Shells \\ Overview of the Korn Shell \\ Interacting with the Shell \\ Editing an Input Line \\ Calling the Shell Directly \\ Shell Scripts \\ Syntax of Shell Input \\ Patterns \\ Simple Commands \\ Linking Commands with Operators \\ Redirection \\ Here-Documents \\ The test, true, and false Commands \\ Compound Commands \\ How Commands Are Executed \\ Parameters \\ Parameter Expansions \\ Quotation \\ Substitutions \\ Aliases \\ Commands for Job Control \\ The Command History and the fc Command \\ Intrinsic Commands and Predefined Aliases \\ Predefined Variables Used by the Shell \\ Execution Options \\ Initialization Files for the Shell \\ Parsing Command Lines with getopts \\ A Sample Shell Script \\ Other Shells \\ The C Shell csh \\ Bash, the ``Bourne-again Shell'' \\ Standard Editors

entry:
@Book{Abrahams:1992:UI,
  author =       "Paul W. Abrahams and Bruce R. Larson",
  title =        "{UNIX} for the Impatient",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xxvii + 559",
  year =         "1992",
  ISBN =         "0-201-55703-7",
  ISBN-13 =      "978-0-201-55703-9",
  LCCN =         "QA76.76.O63 A27 1992",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  note =         "Excellent, and thorough, coverage of {UNIX}, with
                 chapters on the file system, utilities, shells,
                 editors, Emacs, data manipulation, mail, network
                 communications and resources, the X Window System, and
                 a comparison of {MS-DOS} and {UNIX}.",
  acknowledgement = ack-nhfb,
  tableofcontents = "Introduction \\
                 UNIX Background \\
                 The POSIX 2 Standard \\
                 How to Use This Book \\
                 Typographical Conventions \\
                 Syntactic Conventions \\
                 Getting Started \\
                 Concepts \\
                 The UNIX Manual \\
                 System Administration and the Superuser \\
                 Users and Groups \\
                 What the Shell Does \\
                 The UNIX Kernel \\
                 Processes \\
                 The UNIX File System \\
                 File Permissions \\
                 Conventions for Using Files \\
                 Standard Files and Redirection \\
                 Other Facilities for Interprocess Communication \\
                 UNIX Commands \\
                 Local Variables \\
                 Initialization Files \\
                 Terminal Descriptions \\
                 Locales, Code Sets, and Internationalization \\
                 Regular Expressions \\
                 Devices \\
                 Operations on Files \\
                 Operations on Directories \\
                 Listing Files with ls \\
                 Displaying and Concatenating Files with cat \\
                 Linking, Moving, and Copying Files with ln, mv, and cp
                 \\
                 Removing Files \\
                 Examining Files or Output with a Pager \\
                 Printing Files \\
                 Finding Files with find \\
                 Locating, Classifying, and Checking Files \\
                 Comparing Files \\
                 Controlling File Access and Ownership \\
                 Miscellaneous File Utilities \\
                 Data Compression and Encoding \\
                 Archiving Sets of Files \\
                 Examining Files with od \\
                 Copying and Converting Data with dd \\
                 Updating Files with patch \\
                 Creating Special Files \\
                 Data Manipulation Using Filters \\
                 Sorting Files with sort \\
                 Finding Patterns with grep \\
                 Simple Data Transformations \\
                 Extracting Parts of Files \\
                 Combining Files \\
                 Using sed to Edit from a Script \\
                 The awk Programming Language \\
                 Other Data Manipulation Languages \\
                 Utility Programs \\
                 Information Services \\
                 Reporting on the Status of Processes \\
                 Managing Processes \\
                 Commands Related to Logging In \\
                 Controlling Your Terminal \\
                 On-Line Communication with Other Users \\
                 Disk Usage Statistics \\
                 Writing and Reading Strings \\
                 Evaluating Expressions \\
                 Special Invocation of Commands \\
                 Querying Your UNIX Environment \\
                 Miscellaneous Services \\
                 Producing Locale Information and Defining a Locale \\
                 Document Processing \\
                 Version Control \\
                 The Korn and POSIX Shells \\
                 Overview of the Korn Shell \\
                 Interacting with the Shell \\
                 Editing an Input Line \\
                 Calling the Shell Directly \\
                 Shell Scripts \\
                 Syntax of Shell Input \\
                 Patterns \\
                 Simple Commands \\
                 Linking Commands with Operators \\
                 Redirection \\
                 Here-Documents \\
                 The test, true, and false Commands \\
                 Compound Commands \\
                 How Commands Are Executed \\
                 Parameters \\
                 Parameter Expansions \\
                 Quotation \\
                 Substitutions \\
                 Aliases \\
                 Commands for Job Control \\
                 The Command History and the fc Command \\
                 Intrinsic Commands and Predefined Aliases \\
                 Predefined Variables Used by the Shell \\
                 Execution Options \\
                 Initialization Files for the Shell \\
                 Parsing Command Lines with getopts \\
                 A Sample Shell Script \\
                 Other Shells \\
                 The C Shell csh \\
                 Bash, the ``Bourne-again Shell'' \\
                 Standard Editors",
}


bibtype: book
filename: master.bib
label: Abrahams:1997:UIC
author: Paul W. Abrahams and Bruce R. Larson
title: UNIX for the Impatient: CD-ROM Version
publisher: pub-AW
address: pub-AW:adr
edition: Second
pages: xxxvi + 824 + CD-31
year: 1997
ISBN: 0-201-41979-3 OR 0201419793
ISBN13: 978-0-201-41979-5 OR 9780201419795
LCCN: QA76.76.O63 A27 1992
bibdate: Fri Dec 19 10:57:11 1997
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 1997.12.19 10:57:11 ???
acknowledgement: ack-nhfb
rawauthor: Paul W. Abrahams and Bruce R. Larson
rawtitle: {UNIX} for the Impatient: {CD-ROM} Version
entry:
@Book{Abrahams:1997:UIC,
  author =       "Paul W. Abrahams and Bruce R. Larson",
  title =        "{UNIX} for the Impatient: {CD-ROM} Version",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "xxxvi + 824 + CD-31",
  year =         "1997",
  ISBN =         "0-201-41979-3",
  ISBN-13 =      "978-0-201-41979-5",
  LCCN =         "QA76.76.O63 A27 1992",
  bibdate =      "Fri Dec 19 10:57:11 1997",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  price =        "US\$49.00",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Abramowitz:1964:HMF
editor: Milton Abramowitz and Irene A. Stegun
title: Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables
volume: 55
publisher: U. S. Department of Commerce
address: Washington, DC, USA
pages: xiv + 1046
year: 1964
LCCN: QA47.A161 1972; QA 55 A16h 1972
bibdate: Thu Jan 27 07:58:12 2000
bibtimestamp: 2000.01.27 07:58:12 ???
series: Applied mathematics series
acknowledgement: ack-nhfb
key: NBS
raweditor: Milton Abramowitz and Irene A. Stegun
rawtitle: Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables
bibsource:
https://www.math.utah.edu/pub/bibnet/subjects/acc-stab-num-alg.bib; https://www.math.utah.edu/pub/bibnet/subjects/han-wri-mat-sci-2ed.bib; https://www.math.utah.edu/pub/tex/bib/elefunt.bib; https://www.math.utah.edu/pub/tex/bib/master.bib

note:
Tenth printing, with corrections (December 1972). This book is also available online at path =http://www.convertit.com/Go/ConvertIt/Reference/AMS55.ASP= in bitmap image format.

abstract:
This book is a compendium of mathematical formulas, tables, and graphs. It contains a table of analytical integrals, differential equations, and numerical series; and includes tables of trigonometric and hyperbolic functions, tables for numerical integration, rules for differentiation and integration, and techniques for point interpolation and function approximation. Additionally, it devotes a entire section to mathematical and physical constants as fractions and powers of Pi, e, and prime numbers; and discusses statistics by presenting combinatorial analysis and probability functions.

TOC:
Mathematical constants / David S. Liepman Physical constants and conversion factors / A. G. McNish Elementary analytical methods / Milton Abramowitz Elementary transcendental functions: logarithmic, exponential, circular and hyperbolic functions / Ruth Zucker Exponential integral and related functions / Walter Gautschi and William F. Cahill Gamma function and related functions / Philip J. Davis Error function and Fresnel integrals / Walter Gautschi Legendre functions / Irene A. Stegun Bessel functions of integer order / F. W. J. Olver Bessell functions of fractional order / H. A. Antosiewicz Integrals of Bessel functions / Yudell L. Luke Struve functions and related functions / Milton Abramowitz Confluent hypergeometric functions / Lucy Joan Slater Coulomb wave functions / Milton Abramowitz Hypergeometric functions / Fritz Oberhettinger Jacobian elliptic functions and theta functions; Elliptic integrals / L. M. Milne-Thomson Weierstrass elliptic and related functions / Thomas H. Southard Parabolic cylinder functions / J. C. P. Millerldots Mathieu functions / Gertrude Blanch Spheroidal wave functions / Arnold N. Lowan Orthogonal polynomials / Urs W. Hochstrasser Bernoulli and Euler polynomials, Riemann zeta function / Emilie V. Haynesworth and Karl Goldberg Combinatorial analysis / K. Goldberg, M. Newman and E. Haynesworth Numerical interpolation, differentiation and integration / Philip J. Davis and Ivan Polonsky Probability functions / Marvin Zelen and Norman C. Severo Miscellaneous functions / Irene A. Stegun Scales of notation / S. Peavy and A. Schopf Laplace transforms

rawabstract:
This book is a compendium of mathematical formulas, tables, and graphs. It contains a table of analytical integrals, differential equations, and numerical series; and includes tables of trigonometric and hyperbolic functions, tables for numerical integration, rules for differentiation and integration, and techniques for point interpolation and function approximation. Additionally, it devotes a entire section to mathematical and physical constants as fractions and powers of Pi, e, and prime numbers; and discusses statistics by presenting combinatorial analysis and probability functions.

rawnote:
Tenth printing, with corrections (December 1972). This book is also available online at \path=http://www.convertit.com/Go/ConvertIt/Reference/AMS55.ASP= in bitmap image format.

rawTOC:
Mathematical constants / David S. Liepman \\ Physical constants and conversion factors / A. G. McNish \\ Elementary analytical methods / Milton Abramowitz \\ Elementary transcendental functions: logarithmic, exponential, circular and hyperbolic functions / Ruth Zucker \\ Exponential integral and related functions / Walter Gautschi and William F. Cahill \\ Gamma function and related functions / Philip J. Davis \\ Error function and Fresnel integrals / Walter Gautschi \\ Legendre functions / Irene A. Stegun \\ Bessel functions of integer order / F. W. J. Olver \\ Bessell functions of fractional order / H. A. Antosiewicz \\ Integrals of Bessel functions / Yudell L. Luke \\ Struve functions and related functions / Milton Abramowitz \\ Confluent hypergeometric functions / Lucy Joan Slater \\ Coulomb wave functions / Milton Abramowitz \\ Hypergeometric functions / Fritz Oberhettinger \\ Jacobian elliptic functions and theta functions; Elliptic integrals / L. M. Milne-Thomson \\ Weierstrass elliptic and related functions / Thomas H. Southard \\ Parabolic cylinder functions / J. C. P. Miller\ldots{} Mathieu functions / Gertrude Blanch \\ Spheroidal wave functions / Arnold N. Lowan \\ Orthogonal polynomials / Urs W. Hochstrasser \\ Bernoulli and Euler polynomials, Riemann zeta function / Emilie V. Haynesworth and Karl Goldberg \\ Combinatorial analysis / K. Goldberg, M. Newman and E. Haynesworth \\ Numerical interpolation, differentiation and integration / Philip J. Davis and Ivan Polonsky \\ Probability functions / Marvin Zelen and Norman C. Severo \\ Miscellaneous functions / Irene A. Stegun \\ Scales of notation / S. Peavy and A. Schopf \\ Laplace transforms

entry:
@Book{Abramowitz:1964:HMF,
  editor =       "Milton Abramowitz and Irene A. Stegun",
  key =          "NBS",
  title =        "Handbook of Mathematical Functions with Formulas,
                 Graphs, and Mathematical Tables",
  volume =       "55",
  publisher =    "U. S. Department of Commerce",
  address =      "Washington, DC, USA",
  pages =        "xiv + 1046",
  year =         "1964",
  LCCN =         "QA47.A161 1972; QA 55 A16h 1972",
  bibdate =      "Thu Jan 27 07:58:12 2000",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/subjects/acc-stab-num-alg.bib;
                 https://www.math.utah.edu/pub/bibnet/subjects/han-wri-mat-sci-2ed.bib;
                 https://www.math.utah.edu/pub/tex/bib/elefunt.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "Tenth printing, with corrections (December 1972). This
                 book is also available online at
                 \path=http://www.convertit.com/Go/ConvertIt/Reference/AMS55.ASP=
                 in bitmap image format.",
  series =       "Applied mathematics series",
  abstract =     "This book is a compendium of mathematical formulas,
                 tables, and graphs. It contains a table of analytical
                 integrals, differential equations, and numerical
                 series; and includes tables of trigonometric and
                 hyperbolic functions, tables for numerical integration,
                 rules for differentiation and integration, and
                 techniques for point interpolation and function
                 approximation. Additionally, it devotes a entire
                 section to mathematical and physical constants as
                 fractions and powers of Pi, e, and prime numbers; and
                 discusses statistics by presenting combinatorial
                 analysis and probability functions.",
  acknowledgement = ack-nhfb,
  tableofcontents = "Mathematical constants / David S. Liepman \\
                 Physical constants and conversion factors / A. G.
                 McNish \\
                 Elementary analytical methods / Milton Abramowitz \\
                 Elementary transcendental functions: logarithmic,
                 exponential, circular and hyperbolic functions / Ruth
                 Zucker \\
                 Exponential integral and related functions / Walter
                 Gautschi and William F. Cahill \\
                 Gamma function and related functions / Philip J. Davis
                 \\
                 Error function and Fresnel integrals / Walter Gautschi
                 \\
                 Legendre functions / Irene A. Stegun \\
                 Bessel functions of integer order / F. W. J. Olver \\
                 Bessell functions of fractional order / H. A.
                 Antosiewicz \\
                 Integrals of Bessel functions / Yudell L. Luke \\
                 Struve functions and related functions / Milton
                 Abramowitz \\
                 Confluent hypergeometric functions / Lucy Joan Slater
                 \\
                 Coulomb wave functions / Milton Abramowitz \\
                 Hypergeometric functions / Fritz Oberhettinger \\
                 Jacobian elliptic functions and theta functions;
                 Elliptic integrals / L. M. Milne-Thomson \\
                 Weierstrass elliptic and related functions / Thomas H.
                 Southard \\
                 Parabolic cylinder functions / J. C. P. Miller\ldots{}
                 Mathieu functions / Gertrude Blanch \\
                 Spheroidal wave functions / Arnold N. Lowan \\
                 Orthogonal polynomials / Urs W. Hochstrasser \\
                 Bernoulli and Euler polynomials, Riemann zeta function
                 / Emilie V. Haynesworth and Karl Goldberg \\
                 Combinatorial analysis / K. Goldberg, M. Newman and E.
                 Haynesworth \\
                 Numerical interpolation, differentiation and
                 integration / Philip J. Davis and Ivan Polonsky \\
                 Probability functions / Marvin Zelen and Norman C.
                 Severo \\
                 Miscellaneous functions / Irene A. Stegun \\
                 Scales of notation / S. Peavy and A. Schopf \\
                 Laplace transforms",
}


bibtype: book
filename: master.bib
label: Abrams:2004:NFS
publisher: pub-AW
address: pub-AW:adr
pages: xxvi + 528
year: 2004
ISBN: 0-321-15489-4 (hardcover) OR 0321154894 (hardcover)
ISBN13: 978-0-321-15489-7 (hardcover) OR 9780321154897 (hardcover)
LCCN: QA76.76.M52 A27 2004
bibdate: Wed Mar 15 08:56:55 MST 2006
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib; z3950.loc.gov:7090/Voyager
bibtimestamp: 2006.03.15 08:56:55 MST
note: Foreword by Joel Marcey.
series: Microsoft .NET development series
subject: Microsoft .NET Framework
acknowledgement: ack-nhfb
rawnote: Foreword by Joel Marcey.
author:
Brad Abrams and Anders Hejlsberg and Brian Grunkemeyer and Joel Marcey and Kit George and Krzysztof Cwalina and Jeffrey Richter

title:
.NET Framework Standard Library Annotated Reference. Volume 1: Base Class Library and Extended Numerics Library

URL:
http://www.aw-bc.com/catalog/academic/product/0,1144,0321154894,00.html; http://www.loc.gov/catdir/toc/ecip0411/2003024327.html

TOC:
Contents Foreword Preface I. Namespaces 1. System Overview 2. System.IO Overview 3. System.Collections Overview 4. System.Text Overview 5. System.Threading Overview 6. System.Security Overview 7. System.Globalization Overview II. Type Descriptions 1. ApplicationException (System) 2. ArgumentException (System) 3. ArgumentNullException (System) 4. ArgumentOutOfRangeException (System) 5. ArithmeticException (System) 6. Array (System) 7. ArrayTypeMismatchException (System) 8. AsyncCallback (System) 9. Attribute (System) 10. AttributeTargets (System) 11. AttributeUsageAttribute (System) 12. Boolean (System) 13. Byte (System) 14. Char (System) 15. CharEnumerator (System) 16. CLSCompliantAttribute (System) 17. ArrayList (System.Collections) 18. Comparer (System.Collections) 19. DictionaryEntry (System.Collections) 20. Hashtable (System.Collections) 21. ICollection (System.Collections) 22. IComparer (System.Collections) 23. IDictionary (System.Collections) 24. IDictionaryEnumerator (System.Collections) 25. IEnumerable (System.Collections) 26. IEnumerator (System.Collections) 27. IHashCodeProvider (System.Collections) 28. IList (System.Collections) 29. Console (System) 30. Convert (System) 31. DateTime (System) 32. Decimal (System) 33. Delegate (System) 34. ConditionalAttribute (System.Diagnostics) 35. DivideByZeroException (System) 36. Double (System) 37. DuplicateWaitObjectException (System) 38. Enum (System) 39. Environment (System) 40. EventArgs (System) 41. EventHandler (System) 42. Exception (System) 43. ExecutionEngineException (System) 44. FlagsAttribute (System) 45. FormatException (System) 46. GC (System) 47. DateTimeFormatInfo (System.Globalization) 48. DateTimeStyles (System.Globalization) 49. NumberFormatInfo (System.Globalization) 50. NumberStyles (System.Globalization) 51. UnicodeCategory (System.Globalization) 52. IAsyncResult (System) 53. ICloneable (System) 54. IComparable (System) 55. IDisposable (System) 56. IFormatProvider (System) 57. IFormattable (System) 58. IndexOutOfRangeException (System) 59. Int16 (System) 60. Int32 (System) 61. Int64 (System) 62. InvalidCastException (System) 63. InvalidOperationException (System) 64. InvalidProgramException (System) 65. Directory (System.IO) 66. DirectoryNotFoundException (System.IO) 67. EndOfStreamException (System.IO) 68. File (System.IO) 69. FileAccess (System.IO) 70. FileLoadException (System.IO) 71. FileMode (System.IO) 72. FileNotFoundException (System.IO) 73. FileShare (System.IO) 74. FileStream (System.IO) 75. IOException (System.IO) 76. MemoryStream (System.IO) 77. Path (System.IO) 78. PathTooLongException (System.IO) 79. SeekOrigin (System.IO) 80. Stream (System.IO) 81. StreamReader (System.IO) 82. StreamWriter (System.IO) 83. StringReader (System.IO) 84. StringWriter (System.IO) 85. TextReader (System.IO) 86. TextWriter (System.IO) 87. MarshalByRefObject (System) 88. Math (System) 89. NotFiniteNumberException (System) 90. NotSupportedException (System) 91. NullReferenceException (System) 92. Object (System) 93. ObjectDisposedException (System) 94. ObsoleteAttribute (System) 95. OutOfMemoryException (System) 96. OverflowException (System) 97. Random (System) 98. RankException (System) 99. SByte (System) 100. CodeAccessPermission (System.Security) 101. IPermission (System.Security) 102. CodeAccessSecurityAttribute (System.Security.Permissions) 103. EnvironmentPermission (System.Security.Permissions) 104. EnvironmentPermissionAccess (System.Security.Permissions) 105. EnvironmentPermissionAttribute (System.Security.Permissions) 106. FileIOPermission (System.Security.Permissions) 107. FileIOPermissionAccess (System.Security.Permissions) 108. FileIOPermissionAttribute (System.Security.Permissions) 109. PermissionState (System.Security.Permissions) 110. SecurityAction (System.Security.Permissions) 111. SecurityAttribute (System.Security.Permissions) 112. SecurityPermission (System.Security.Permissions) 113. SecurityPermissionAttribute (System.Security.Permissions) 114. SecurityPermissionFlag (System.Security.Permissions) 115. PermissionSet (System.Security) 116. SecurityElement (System.Security) 117. SecurityException (System.Security) 118. VerificationException (System.Security) 119. Single (System) 120. StackOverflowException (System) 121. String (System) 122. SystemException (System) 123. ASCIIEncoding (System.Text) 124. Decoder (System.Text) 125. Encoder (System.Text) 126. Encoding (System.Text) 127. StringBuilder (System.Text) 128. UnicodeEncoding (System.Text) 129. UTF8Encoding (System.Text) 130. Interlocked (System.Threading) 131. Monitor (System.Threading) 132. SynchronizationLockException (System.Threading) 133. Thread (System.Threading) 134. ThreadAbortException (System.Threading) 135. ThreadPriority (System.Threading) 136. ThreadStart (System.Threading) 137. ThreadState (System.Threading) 138. ThreadStateException (System.Threading) 139. Timeout (System.Threading) 140. Timer (System.Threading) 141. TimerCallback (System.Threading) 142. WaitHandle (System.Threading) 143. TimeSpan (System) 144. Type (System) 145. TypeInitializationException (System) 146. UInt16 (System) 147. UInt32 (System) 148. UInt64 (System) 149. UnauthorizedAccessException (System) 150. ValueType (System) 151. Version (System) Index

rawauthor:
Brad Abrams and Anders Hejlsberg and Brian Grunkemeyer and Joel Marcey and Kit George and Krzysztof Cwalina and Jeffrey Richter

rawtitle:
{.NET} {Framework Standard Library} Annotated Reference. Volume 1: Base Class Library and Extended Numerics Library

rawTOC:
Contents\\ Foreword\\ Preface\\ I. Namespaces\\ 1. System Overview \\ 2. System.IO Overview\\ 3. System.Collections Overview\\ 4. System.Text Overview\\ 5. System.Threading Overview\\ 6. System.Security Overview\\ 7. System.Globalization Overview\\ II. Type Descriptions\\ 1. ApplicationException (System)\\ 2. ArgumentException (System)\\ 3. ArgumentNullException (System)\\ 4. ArgumentOutOfRangeException (System)\\ 5. ArithmeticException (System)\\ 6. Array (System)\\ 7. ArrayTypeMismatchException (System)\\ 8. AsyncCallback (System)\\ 9. Attribute (System)\\ 10. AttributeTargets (System)\\ 11. AttributeUsageAttribute (System)\\ 12. Boolean (System)\\ 13. Byte (System)\\ 14. Char (System)\\ 15. CharEnumerator (System)\\ 16. CLSCompliantAttribute (System)\\ 17. ArrayList (System.Collections)\\ 18. Comparer (System.Collections)\\ 19. DictionaryEntry (System.Collections)\\ 20. Hashtable (System.Collections)\\ 21. ICollection (System.Collections)\\ 22. IComparer (System.Collections)\\ 23. IDictionary (System.Collections)\\ 24. IDictionaryEnumerator (System.Collections)\\ 25. IEnumerable (System.Collections)\\ 26. IEnumerator (System.Collections)\\ 27. IHashCodeProvider (System.Collections)\\ 28. IList (System.Collections)\\ 29. Console (System)\\ 30. Convert (System)\\ 31. DateTime (System)\\ 32. Decimal (System)\\ 33. Delegate (System)\\ 34. ConditionalAttribute (System.Diagnostics)\\ 35. DivideByZeroException (System)\\ 36. Double (System)\\ 37. DuplicateWaitObjectException (System)\\ 38. Enum (System)\\ 39. Environment (System)\\ 40. EventArgs (System)\\ 41. EventHandler (System)\\ 42. Exception (System)\\ 43. ExecutionEngineException (System)\\ 44. FlagsAttribute (System)\\ 45. FormatException (System)\\ 46. GC (System)\\ 47. DateTimeFormatInfo (System.Globalization)\\ 48. DateTimeStyles (System.Globalization)\\ 49. NumberFormatInfo (System.Globalization)\\ 50. NumberStyles (System.Globalization)\\ 51. UnicodeCategory (System.Globalization)\\ 52. IAsyncResult (System)\\ 53. ICloneable (System)\\ 54. IComparable (System)\\ 55. IDisposable (System)\\ 56. IFormatProvider (System)\\ 57. IFormattable (System)\\ 58. IndexOutOfRangeException (System)\\ 59. Int16 (System)\\ 60. Int32 (System)\\ 61. Int64 (System)\\ 62. InvalidCastException (System)\\ 63. InvalidOperationException (System)\\ 64. InvalidProgramException (System)\\ 65. Directory (System.IO)\\ 66. DirectoryNotFoundException (System.IO)\\ 67. EndOfStreamException (System.IO)\\ 68. File (System.IO)\\ 69. FileAccess (System.IO)\\ 70. FileLoadException (System.IO)\\ 71. FileMode (System.IO)\\ 72. FileNotFoundException (System.IO)\\ 73. FileShare (System.IO)\\ 74. FileStream (System.IO)\\ 75. IOException (System.IO)\\ 76. MemoryStream (System.IO)\\ 77. Path (System.IO)\\ 78. PathTooLongException (System.IO)\\ 79. SeekOrigin (System.IO)\\ 80. Stream (System.IO)\\ 81. StreamReader (System.IO)\\ 82. StreamWriter (System.IO)\\ 83. StringReader (System.IO)\\ 84. StringWriter (System.IO)\\ 85. TextReader (System.IO)\\ 86. TextWriter (System.IO)\\ 87. MarshalByRefObject (System)\\ 88. Math (System)\\ 89. NotFiniteNumberException (System)\\ 90. NotSupportedException (System)\\ 91. NullReferenceException (System)\\ 92. Object (System)\\ 93. ObjectDisposedException (System)\\ 94. ObsoleteAttribute (System)\\ 95. OutOfMemoryException (System)\\ 96. OverflowException (System)\\ 97. Random (System)\\ 98. RankException (System)\\ 99. SByte (System)\\ 100. CodeAccessPermission (System.Security)\\ 101. IPermission (System.Security)\\ 102. CodeAccessSecurityAttribute (System.Security.Permissions)\\ 103. EnvironmentPermission (System.Security.Permissions)\\ 104. EnvironmentPermissionAccess (System.Security.Permissions)\\ 105. EnvironmentPermissionAttribute (System.Security.Permissions)\\ 106. FileIOPermission (System.Security.Permissions)\\ 107. FileIOPermissionAccess (System.Security.Permissions)\\ 108. FileIOPermissionAttribute (System.Security.Permissions)\\ 109. PermissionState (System.Security.Permissions)\\ 110. SecurityAction (System.Security.Permissions)\\ 111. SecurityAttribute (System.Security.Permissions)\\ 112. SecurityPermission (System.Security.Permissions)\\ 113. SecurityPermissionAttribute (System.Security.Permissions)\\ 114. SecurityPermissionFlag (System.Security.Permissions)\\ 115. PermissionSet (System.Security)\\ 116. SecurityElement (System.Security)\\ 117. SecurityException (System.Security)\\ 118. VerificationException (System.Security)\\ 119. Single (System)\\ 120. StackOverflowException (System)\\ 121. String (System)\\ 122. SystemException (System)\\ 123. ASCIIEncoding (System.Text)\\ 124. Decoder (System.Text)\\ 125. Encoder (System.Text)\\ 126. Encoding (System.Text)\\ 127. StringBuilder (System.Text)\\ 128. UnicodeEncoding (System.Text)\\ 129. UTF8Encoding (System.Text)\\ 130. Interlocked (System.Threading)\\ 131. Monitor (System.Threading)\\ 132. SynchronizationLockException (System.Threading)\\ 133. Thread (System.Threading)\\ 134. ThreadAbortException (System.Threading)\\ 135. ThreadPriority (System.Threading)\\ 136. ThreadStart (System.Threading)\\ 137. ThreadState (System.Threading)\\ 138. ThreadStateException (System.Threading)\\ 139. Timeout (System.Threading)\\ 140. Timer (System.Threading)\\ 141. TimerCallback (System.Threading)\\ 142. WaitHandle (System.Threading)\\ 143. TimeSpan (System)\\ 144. Type (System)\\ 145. TypeInitializationException (System)\\ 146. UInt16 (System)\\ 147. UInt32 (System)\\ 148. UInt64 (System)\\ 149. UnauthorizedAccessException (System)\\ 150. ValueType (System)\\ 151. Version (System)\\ Index

entry:
@Book{Abrams:2004:NFS,
  author =       "Brad Abrams and Anders Hejlsberg and Brian Grunkemeyer
                 and Joel Marcey and Kit George and Krzysztof Cwalina
                 and Jeffrey Richter",
  title =        "{.NET} {Framework Standard Library} Annotated
                 Reference. Volume 1: Base Class Library and Extended
                 Numerics Library",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xxvi + 528",
  year =         "2004",
  ISBN =         "0-321-15489-4 (hardcover)",
  ISBN-13 =      "978-0-321-15489-7 (hardcover)",
  LCCN =         "QA76.76.M52 A27 2004",
  bibdate =      "Wed Mar 15 08:56:55 MST 2006",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 z3950.loc.gov:7090/Voyager",
  note =         "Foreword by Joel Marcey.",
  series =       "Microsoft .NET development series",
  URL =          "http://www.aw-bc.com/catalog/academic/product/0,1144,0321154894,00.html;
                 http://www.loc.gov/catdir/toc/ecip0411/2003024327.html",
  acknowledgement = ack-nhfb,
  subject =      "Microsoft .NET Framework",
  tableofcontents = "Contents\\
                 Foreword\\
                 Preface\\
                 I. Namespaces\\
                 1. System Overview \\
                 2. System.IO Overview\\
                 3. System.Collections Overview\\
                 4. System.Text Overview\\
                 5. System.Threading Overview\\
                 6. System.Security Overview\\
                 7. System.Globalization Overview\\
                 II. Type Descriptions\\
                 1. ApplicationException (System)\\
                 2. ArgumentException (System)\\
                 3. ArgumentNullException (System)\\
                 4. ArgumentOutOfRangeException (System)\\
                 5. ArithmeticException (System)\\
                 6. Array (System)\\
                 7. ArrayTypeMismatchException (System)\\
                 8. AsyncCallback (System)\\
                 9. Attribute (System)\\
                 10. AttributeTargets (System)\\
                 11. AttributeUsageAttribute (System)\\
                 12. Boolean (System)\\
                 13. Byte (System)\\
                 14. Char (System)\\
                 15. CharEnumerator (System)\\
                 16. CLSCompliantAttribute (System)\\
                 17. ArrayList (System.Collections)\\
                 18. Comparer (System.Collections)\\
                 19. DictionaryEntry (System.Collections)\\
                 20. Hashtable (System.Collections)\\
                 21. ICollection (System.Collections)\\
                 22. IComparer (System.Collections)\\
                 23. IDictionary (System.Collections)\\
                 24. IDictionaryEnumerator (System.Collections)\\
                 25. IEnumerable (System.Collections)\\
                 26. IEnumerator (System.Collections)\\
                 27. IHashCodeProvider (System.Collections)\\
                 28. IList (System.Collections)\\
                 29. Console (System)\\
                 30. Convert (System)\\
                 31. DateTime (System)\\
                 32. Decimal (System)\\
                 33. Delegate (System)\\
                 34. ConditionalAttribute (System.Diagnostics)\\
                 35. DivideByZeroException (System)\\
                 36. Double (System)\\
                 37. DuplicateWaitObjectException (System)\\
                 38. Enum (System)\\
                 39. Environment (System)\\
                 40. EventArgs (System)\\
                 41. EventHandler (System)\\
                 42. Exception (System)\\
                 43. ExecutionEngineException (System)\\
                 44. FlagsAttribute (System)\\
                 45. FormatException (System)\\
                 46. GC (System)\\
                 47. DateTimeFormatInfo (System.Globalization)\\
                 48. DateTimeStyles (System.Globalization)\\
                 49. NumberFormatInfo (System.Globalization)\\
                 50. NumberStyles (System.Globalization)\\
                 51. UnicodeCategory (System.Globalization)\\
                 52. IAsyncResult (System)\\
                 53. ICloneable (System)\\
                 54. IComparable (System)\\
                 55. IDisposable (System)\\
                 56. IFormatProvider (System)\\
                 57. IFormattable (System)\\
                 58. IndexOutOfRangeException (System)\\
                 59. Int16 (System)\\
                 60. Int32 (System)\\
                 61. Int64 (System)\\
                 62. InvalidCastException (System)\\
                 63. InvalidOperationException (System)\\
                 64. InvalidProgramException (System)\\
                 65. Directory (System.IO)\\
                 66. DirectoryNotFoundException (System.IO)\\
                 67. EndOfStreamException (System.IO)\\
                 68. File (System.IO)\\
                 69. FileAccess (System.IO)\\
                 70. FileLoadException (System.IO)\\
                 71. FileMode (System.IO)\\
                 72. FileNotFoundException (System.IO)\\
                 73. FileShare (System.IO)\\
                 74. FileStream (System.IO)\\
                 75. IOException (System.IO)\\
                 76. MemoryStream (System.IO)\\
                 77. Path (System.IO)\\
                 78. PathTooLongException (System.IO)\\
                 79. SeekOrigin (System.IO)\\
                 80. Stream (System.IO)\\
                 81. StreamReader (System.IO)\\
                 82. StreamWriter (System.IO)\\
                 83. StringReader (System.IO)\\
                 84. StringWriter (System.IO)\\
                 85. TextReader (System.IO)\\
                 86. TextWriter (System.IO)\\
                 87. MarshalByRefObject (System)\\
                 88. Math (System)\\
                 89. NotFiniteNumberException (System)\\
                 90. NotSupportedException (System)\\
                 91. NullReferenceException (System)\\
                 92. Object (System)\\
                 93. ObjectDisposedException (System)\\
                 94. ObsoleteAttribute (System)\\
                 95. OutOfMemoryException (System)\\
                 96. OverflowException (System)\\
                 97. Random (System)\\
                 98. RankException (System)\\
                 99. SByte (System)\\
                 100. CodeAccessPermission (System.Security)\\
                 101. IPermission (System.Security)\\
                 102. CodeAccessSecurityAttribute
                 (System.Security.Permissions)\\
                 103. EnvironmentPermission
                 (System.Security.Permissions)\\
                 104. EnvironmentPermissionAccess
                 (System.Security.Permissions)\\
                 105. EnvironmentPermissionAttribute
                 (System.Security.Permissions)\\
                 106. FileIOPermission (System.Security.Permissions)\\
                 107. FileIOPermissionAccess
                 (System.Security.Permissions)\\
                 108. FileIOPermissionAttribute
                 (System.Security.Permissions)\\
                 109. PermissionState (System.Security.Permissions)\\
                 110. SecurityAction (System.Security.Permissions)\\
                 111. SecurityAttribute (System.Security.Permissions)\\
                 112. SecurityPermission
                 (System.Security.Permissions)\\
                 113. SecurityPermissionAttribute
                 (System.Security.Permissions)\\
                 114. SecurityPermissionFlag
                 (System.Security.Permissions)\\
                 115. PermissionSet (System.Security)\\
                 116. SecurityElement (System.Security)\\
                 117. SecurityException (System.Security)\\
                 118. VerificationException (System.Security)\\
                 119. Single (System)\\
                 120. StackOverflowException (System)\\
                 121. String (System)\\
                 122. SystemException (System)\\
                 123. ASCIIEncoding (System.Text)\\
                 124. Decoder (System.Text)\\
                 125. Encoder (System.Text)\\
                 126. Encoding (System.Text)\\
                 127. StringBuilder (System.Text)\\
                 128. UnicodeEncoding (System.Text)\\
                 129. UTF8Encoding (System.Text)\\
                 130. Interlocked (System.Threading)\\
                 131. Monitor (System.Threading)\\
                 132. SynchronizationLockException (System.Threading)\\
                 133. Thread (System.Threading)\\
                 134. ThreadAbortException (System.Threading)\\
                 135. ThreadPriority (System.Threading)\\
                 136. ThreadStart (System.Threading)\\
                 137. ThreadState (System.Threading)\\
                 138. ThreadStateException (System.Threading)\\
                 139. Timeout (System.Threading)\\
                 140. Timer (System.Threading)\\
                 141. TimerCallback (System.Threading)\\
                 142. WaitHandle (System.Threading)\\
                 143. TimeSpan (System)\\
                 144. Type (System)\\
                 145. TypeInitializationException (System)\\
                 146. UInt16 (System)\\
                 147. UInt32 (System)\\
                 148. UInt64 (System)\\
                 149. UnauthorizedAccessException (System)\\
                 150. ValueType (System)\\
                 151. Version (System)\\
                 Index",
}


bibtype: misc
filename: master.bib
label: Abraxas:pcyacc
author: Abraxas Software, Inc.
title: PCYACC 2.0
pages: xxvi + 528
year: 1987
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
note: 7033 SW Macadam Ave., Portland, OR 97219.
acknowledgement: ack-nhfb
rawauthor: {Abraxas Software, Inc.}
rawnote: 7033 SW Macadam Ave., Portland, OR 97219.
rawtitle: {PCYACC} 2.0
entry:
@Misc{Abraxas:pcyacc,
  author =       "{Abraxas Software, Inc.}",
  title =        "{PCYACC} 2.0",
  year =         "1987",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "7033 SW Macadam Ave., Portland, OR 97219.",
  acknowledgement = ack-nhfb,
}


bibtype: misc
filename: master.bib
label: ACW:software
author: The Austin Code Works
title: Purveyors of software
pages: xxvi + 528
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
note: 11100 Leafwood Lane, Austin, TX 78750-3409.
acknowledgement: ack-nhfb
rawauthor: The Austin Code Works
rawnote: 11100 Leafwood Lane, Austin, TX 78750-3409.
rawtitle: Purveyors of software
entry:
@Misc{ACW:software,
  author =       "The Austin Code Works",
  title =        "Purveyors of software",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "11100 Leafwood Lane, Austin, TX 78750-3409.",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Aczel:1999:GEE
author: Amir D. Aczel
title: God's Equation: Einstein, Relativity, and the Expanding Universe
publisher: Four Walls Eight Windows
address: New York, NY, USA
pages: xvii + 236
year: 1999
ISBN: 1-56858-139-4 OR 1568581394
ISBN13: 978-1-56858-139-2 OR 9781568581392
LCCN: QB981 .A35 1999
bibdate: Wed Jul 01 10:18:15 2009
bibtimestamp: 2009.07.01 10:18:15 ???
acknowledgement: ack-nhfb
rawauthor: Amir D. Aczel
rawtitle: {God}'s Equation: {Einstein}, Relativity, and the Expanding Universe
bibsource:
aubrey.tamu.edu:7090/voyager; https://www.math.utah.edu/pub/tex/bib/einstein.bib; https://www.math.utah.edu/pub/tex/bib/master.bib

TOC:
Preface 1. Exploding Stars / 1 2. Early Einstein / 13 3. Prague, 1911 / 27 4. Euclid's Riddle / 43 5. Grossmann's Notebooks / 61 6. The Crimean Expedition / 71 7. Riemann's Metric / 91 8. Berlin / 105 9. Principe Island / 121 10. The Joint Meeting / 139 11. Cosmological Considerations / 149 12. The Expansion of Space / 167 13. The Nature of Matter / 181 14. The Geometry of the Universe / 189 15. Batavia, Illinois, May 4, 1998 / 197 16. God's Equation / 207 References / 221 Index / 225

rawTOC:
Preface \\ 1. Exploding Stars / 1 \\ 2. Early Einstein / 13 \\ 3. Prague, 1911 / 27 \\ 4. Euclid's Riddle / 43 \\ 5. Grossmann's Notebooks / 61 \\ 6. The Crimean Expedition / 71 \\ 7. Riemann's Metric / 91 \\ 8. Berlin / 105 \\ 9. Principe Island / 121 \\ 10. The Joint Meeting / 139 \\ 11. Cosmological Considerations / 149 \\ 12. The Expansion of Space / 167 \\ 13. The Nature of Matter / 181 \\ 14. The Geometry of the Universe / 189 \\ 15. Batavia, Illinois, May 4, 1998 / 197 \\ 16. God's Equation / 207 \\ References / 221 \\ Index / 225

entry:
@Book{Aczel:1999:GEE,
  author =       "Amir D. Aczel",
  title =        "{God}'s Equation: {Einstein}, Relativity, and the
                 Expanding Universe",
  publisher =    "Four Walls Eight Windows",
  address =      "New York, NY, USA",
  pages =        "xvii + 236",
  year =         "1999",
  ISBN =         "1-56858-139-4",
  ISBN-13 =      "978-1-56858-139-2",
  LCCN =         "QB981 .A35 1999",
  bibdate =      "Wed Jul 01 10:18:15 2009",
  bibsource =    "aubrey.tamu.edu:7090/voyager;
                 https://www.math.utah.edu/pub/tex/bib/einstein.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 1. Exploding Stars / 1 \\
                 2. Early Einstein / 13 \\
                 3. Prague, 1911 / 27 \\
                 4. Euclid's Riddle / 43 \\
                 5. Grossmann's Notebooks / 61 \\
                 6. The Crimean Expedition / 71 \\
                 7. Riemann's Metric / 91 \\
                 8. Berlin / 105 \\
                 9. Principe Island / 121 \\
                 10. The Joint Meeting / 139 \\
                 11. Cosmological Considerations / 149 \\
                 12. The Expansion of Space / 167 \\
                 13. The Nature of Matter / 181 \\
                 14. The Geometry of the Universe / 189 \\
                 15. Batavia, Illinois, May 4, 1998 / 197 \\
                 16. God's Equation / 207 \\
                 References / 221 \\
                 Index / 225",
}


bibtype: book
filename: master.bib
label: Aczel:2009:UWS
author: Amir D. Aczel
title: Uranium wars: the scientific rivalry that created the nuclear age
publisher: Palgrave Macmillan
address: New York, NY, USA
pages: 248 + 8
year: 2009
ISBN: 0-230-61374-8 OR 0230613748
ISBN13: 978-0-230-61374-4 OR 9780230613744
LCCN: QC773.A1 A28 2009
bibdate: Sat Oct 3 09:57:51 MDT 2009
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib; z3950.loc.gov:7090/Voyager
bibtimestamp: 2009.10.03 09:57:51 MDT
acknowledgement: ack-nhfb
rawauthor: Amir D. Aczel
rawtitle: Uranium wars: the scientific rivalry that created the nuclear age
subject:
nuclear weapons; research; history; 20th Century; nuclear physics; nuclear energy; science and state; uranium as fuel

TOC:
Physics and Uranium On the trail of the nucleus The draw of radioactivity The Meitner--Hahn discovery Enrico Fermi The Rome experiments The events of 1938 That Christmas The Heisenberg menace Chain reaction Copenhagen Truth Building the bomb Decision to use the bomb The spying operation The Cold War Uranium's future

rawTOC:
Physics and Uranium \\ On the trail of the nucleus \\ The draw of radioactivity \\ The Meitner--Hahn discovery \\ Enrico Fermi \\ The Rome experiments \\ The events of 1938 \\ That Christmas \\ The Heisenberg menace \\ Chain reaction \\ Copenhagen \\ Truth \\ Building the bomb \\ Decision to use the bomb \\ The spying operation \\ The Cold War \\ Uranium's future

entry:
@Book{Aczel:2009:UWS,
  author =       "Amir D. Aczel",
  title =        "Uranium wars: the scientific rivalry that created the
                 nuclear age",
  publisher =    "Palgrave Macmillan",
  address =      "New York, NY, USA",
  pages =        "248 + 8",
  year =         "2009",
  ISBN =         "0-230-61374-8",
  ISBN-13 =      "978-0-230-61374-4",
  LCCN =         "QC773.A1 A28 2009",
  bibdate =      "Sat Oct 3 09:57:51 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "nuclear weapons; research; history; 20th Century;
                 nuclear physics; nuclear energy; science and state;
                 uranium as fuel",
  tableofcontents = "Physics and Uranium \\
                 On the trail of the nucleus \\
                 The draw of radioactivity \\
                 The Meitner--Hahn discovery \\
                 Enrico Fermi \\
                 The Rome experiments \\
                 The events of 1938 \\
                 That Christmas \\
                 The Heisenberg menace \\
                 Chain reaction \\
                 Copenhagen \\
                 Truth \\
                 Building the bomb \\
                 Decision to use the bomb \\
                 The spying operation \\
                 The Cold War \\
                 Uranium's future",
}


bibtype: book
filename: master.bib
label: Aczel:2010:PCS
author: Amir D. Aczel
title: Present at the Creation: the Story of CERN and the Large Hadron Collider
publisher: Harmony Books
address: New York, NY, USA
pages: xvi + 271 + 8
year: 2010
ISBN: 0-307-59167-0 OR 0307591670
ISBN13: 978-0-307-59167-8 OR 9780307591678
LCCN: QC787.P73 A29 2010
bibdate: Mon Oct 18 15:38:58 MDT 2010
bibtimestamp: 2010.10.18 15:38:58 MDT
subject: Large Hadron Collider (France and Switzerland); colliders (nuclear physics)
acknowledgement: ack-nhfb
rawauthor: Amir D. Aczel
rawtitle: Present at the Creation: the Story of {CERN} and the {Large Hadron Collider}
bibsource:
https://www.math.utah.edu/pub/bibnet/authors/f/feynman-richard-p.bib; https://www.math.utah.edu/pub/tex/bib/master.bib; z3950.loc.gov:7090/Voyager

TOC:
The exploding protons The LHC and our age-old quest to understand the structure of the universe A place called CERN Building the greatest machine in history LHCb and the mystery of the missing antimatter Richard Feynman and a prelude to the standard model ``Who ordered that?'': the discoveries of leaping leptons Symmetries of nature, Yang--Mills theory, and quarks Hunting the Higgs How the Higgs sprang alive inside a red Camaro (and gave birth to three bosons) Dark matter, dark energy, and the fate of the universe Looking for strings and hidden dimensions Will CERN create a black hole? The LHC and the future of physics Afterword Appendix A: How does an LHC detector work? Appendix B: Particles, forces, and the standard model Appendix C: The key physics principles used in this book

rawTOC:
The exploding protons \\ The LHC and our age-old quest to understand the structure of the universe \\ A place called CERN \\ Building the greatest machine in history \\ LHCb and the mystery of the missing antimatter \\ Richard Feynman and a prelude to the standard model \\ ``Who ordered that?'': the discoveries of leaping leptons \\ Symmetries of nature, Yang--Mills theory, and quarks \\ Hunting the Higgs \\ How the Higgs sprang alive inside a red Camaro (and gave birth to three bosons) \\ Dark matter, dark energy, and the fate of the universe \\ Looking for strings and hidden dimensions \\ Will CERN create a black hole? \\ The LHC and the future of physics \\ Afterword \\ Appendix A: How does an LHC detector work? \\ Appendix B: Particles, forces, and the standard model \\ Appendix C: The key physics principles used in this book

entry:
@Book{Aczel:2010:PCS,
  author =       "Amir D. Aczel",
  title =        "Present at the Creation: the Story of {CERN} and the
                 {Large Hadron Collider}",
  publisher =    "Harmony Books",
  address =      "New York, NY, USA",
  pages =        "xvi + 271 + 8",
  year =         "2010",
  ISBN =         "0-307-59167-0",
  ISBN-13 =      "978-0-307-59167-8",
  LCCN =         "QC787.P73 A29 2010",
  bibdate =      "Mon Oct 18 15:38:58 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/f/feynman-richard-p.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "Large Hadron Collider (France and Switzerland);
                 colliders (nuclear physics)",
  tableofcontents = "The exploding protons \\
                 The LHC and our age-old quest to understand the
                 structure of the universe \\
                 A place called CERN \\
                 Building the greatest machine in history \\
                 LHCb and the mystery of the missing antimatter \\
                 Richard Feynman and a prelude to the standard model \\
                 ``Who ordered that?'': the discoveries of leaping
                 leptons \\
                 Symmetries of nature, Yang--Mills theory, and quarks
                 \\
                 Hunting the Higgs \\
                 How the Higgs sprang alive inside a red Camaro (and
                 gave birth to three bosons) \\
                 Dark matter, dark energy, and the fate of the universe
                 \\
                 Looking for strings and hidden dimensions \\
                 Will CERN create a black hole? \\
                 The LHC and the future of physics \\
                 Afterword \\
                 Appendix A: How does an LHC detector work? \\
                 Appendix B: Particles, forces, and the standard model
                 \\
                 Appendix C: The key physics principles used in this
                 book",
}


bibtype: book
filename: master.bib
label: Aczel:2011:SWL
author: Amir D. Aczel
title: A Strange Wilderness: the Lives of the Great Mathematicians
publisher: Sterling
address: New York, NY, USA
pages: xix + 284
year: 2011
ISBN: 1-4027-8584-4 (hardback), 1-4027-9085-6 (e-book) OR 1402785844 (hardback), 1402790856 (ebook)
LCCN: QA21 .A29 2011
bibdate: Thu Jun 7 16:36:39 MDT 2012
bibtimestamp: 2012.06.07 16:36:39 MDT
subject: Mathematics; History; Mathematicians
acknowledgement: ack-nhfb
rawauthor: Amir D. Aczel
rawtitle: A Strange Wilderness: the Lives of the Great Mathematicians
ISBN13:
978-1-4027-8584-9 (hardback), 978-1-4027-9085-0 (e-book) OR 9781402785849 (hardback), 9781402790850 (ebook)

bibsource:
https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib; https://www.math.utah.edu/pub/tex/bib/fibquart.bib; https://www.math.utah.edu/pub/tex/bib/master.bib; z3950.loc.gov:7090/Voyager

abstract:
Bestselling popular science author Amir Aczel selects the most fascinating individuals and stories in the history of mathematics, presenting a colorful narrative that explores the quirky personalities behind some of the most profound, enduring theorems. Through such mathematical geniuses as Archimedes, Leonardo of Pisa (a.k.a. Fibonacci), Tartaglia (`the stutterer'), Descartes, Gottfried Leibniz, Carl Gauss, Joseph Fourier (Napoleon's mathematician), Evariste Galois, Georg Cantor, Ramanujan, and `Nicholas Bourbaki,' we gather little known details about the alliances and rivalries that profoundly impacted the development of what the scheming doctor-turned-mathematician Geronimo Girolamo called `The Great Art'. This story of mathematics is not your dry `college textbook' account; tales of duels, battlefield heroism, flamboyant arrogance, pranks, secret societies, imprisonment, feuds, theft, and even some fatal errors of judgment fill these pages (clearly, genius doesn't guarantee street smarts). Ultimately, readers will come away from this book entertained, with a newfound appreciation of the tenacity, complexity, eccentricity, and brilliance of the mathematical genius

TOC:
Hellenic foundations God is number Plato's Academy Alexandria The East The House of Wisdom Medieval China Renaissance mathematics Italian shenanigans Heresy To calculus and beyond The gentleman soldier The greatest rivalry Geniuses of the Enlightenment Upheaval in France Napoleon's mathematicians Duel at dawn Toward a new mathematics Infinity and mental illness Unlikely heroes The strangest wilderness

rawabstract:
Bestselling popular science author Amir Aczel selects the most fascinating individuals and stories in the history of mathematics, presenting a colorful narrative that explores the quirky personalities behind some of the most profound, enduring theorems. Through such mathematical geniuses as Archimedes, Leonardo of Pisa (a.k.a. Fibonacci), Tartaglia (`the stutterer'), Descartes, Gottfried Leibniz, Carl Gauss, Joseph Fourier (Napoleon's mathematician), Evariste Galois, Georg Cantor, Ramanujan, and `Nicholas Bourbaki,' we gather little known details about the alliances and rivalries that profoundly impacted the development of what the scheming doctor-turned-mathematician Geronimo Girolamo called `The Great Art'. This story of mathematics is not your dry `college textbook' account; tales of duels, battlefield heroism, flamboyant arrogance, pranks, secret societies, imprisonment, feuds, theft, and even some fatal errors of judgment fill these pages (clearly, genius doesn't guarantee street smarts). Ultimately, readers will come away from this book entertained, with a newfound appreciation of the tenacity, complexity, eccentricity, and brilliance of the mathematical genius

rawTOC:
Hellenic foundations \\ God is number \\ Plato's Academy \\ Alexandria \\ The East \\ The House of Wisdom \\ Medieval China \\ Renaissance mathematics \\ Italian shenanigans \\ Heresy \\ To calculus and beyond \\ The gentleman soldier \\ The greatest rivalry \\ Geniuses of the Enlightenment \\ Upheaval in France \\ Napoleon's mathematicians \\ Duel at dawn \\ Toward a new mathematics \\ Infinity and mental illness \\ Unlikely heroes \\ The strangest wilderness

entry:
@Book{Aczel:2011:SWL,
  author =       "Amir D. Aczel",
  title =        "A Strange Wilderness: the Lives of the Great
                 Mathematicians",
  publisher =    "Sterling",
  address =      "New York, NY, USA",
  pages =        "xix + 284",
  year =         "2011",
  ISBN =         "1-4027-8584-4 (hardback), 1-4027-9085-6 (e-book)",
  ISBN-13 =      "978-1-4027-8584-9 (hardback), 978-1-4027-9085-0
                 (e-book)",
  LCCN =         "QA21 .A29 2011",
  bibdate =      "Thu Jun 7 16:36:39 MDT 2012",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/cryptography2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/fibquart.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "Bestselling popular science author Amir Aczel selects
                 the most fascinating individuals and stories in the
                 history of mathematics, presenting a colorful narrative
                 that explores the quirky personalities behind some of
                 the most profound, enduring theorems. Through such
                 mathematical geniuses as Archimedes, Leonardo of Pisa
                 (a.k.a. Fibonacci), Tartaglia (`the stutterer'),
                 Descartes, Gottfried Leibniz, Carl Gauss, Joseph
                 Fourier (Napoleon's mathematician), Evariste Galois,
                 Georg Cantor, Ramanujan, and `Nicholas Bourbaki,' we
                 gather little known details about the alliances and
                 rivalries that profoundly impacted the development of
                 what the scheming doctor-turned-mathematician Geronimo
                 Girolamo called `The Great Art'. This story of
                 mathematics is not your dry `college textbook' account;
                 tales of duels, battlefield heroism, flamboyant
                 arrogance, pranks, secret societies, imprisonment,
                 feuds, theft, and even some fatal errors of judgment
                 fill these pages (clearly, genius doesn't guarantee
                 street smarts). Ultimately, readers will come away from
                 this book entertained, with a newfound appreciation of
                 the tenacity, complexity, eccentricity, and brilliance
                 of the mathematical genius",
  acknowledgement = ack-nhfb,
  subject =      "Mathematics; History; Mathematicians",
  tableofcontents = "Hellenic foundations \\
                 God is number \\
                 Plato's Academy \\
                 Alexandria \\
                 The East \\
                 The House of Wisdom \\
                 Medieval China \\
                 Renaissance mathematics \\
                 Italian shenanigans \\
                 Heresy \\
                 To calculus and beyond \\
                 The gentleman soldier \\
                 The greatest rivalry \\
                 Geniuses of the Enlightenment \\
                 Upheaval in France \\
                 Napoleon's mathematicians \\
                 Duel at dawn \\
                 Toward a new mathematics \\
                 Infinity and mental illness \\
                 Unlikely heroes \\
                 The strangest wilderness",
}


bibtype: article
filename: master.bib
label: Ada79:rationale
author: Anonymous
title: Rationale for the Design of the Ada Programming Language
journal: j-SIGPLAN
volume: 14
number: 6B
pages: xix + 284
month: jun
monthnumber: 6
year: 1979
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
note: The final standard is cite ANSI:ada.
acknowledgement: ack-nhfb
key: Ada
rawauthor: Anonymous
rawnote: The final standard is \cite{ANSI:ada}.
rawtitle: Rationale for the Design of the {Ada} Programming Language
entry:
@Article{Ada79:rationale,
  author =       "Anonymous",
  key =          "Ada",
  title =        "Rationale for the Design of the {Ada} Programming
                 Language",
  journal =      j-SIGPLAN,
  volume =       "14",
  number =       "6B",
  month =        jun,
  year =         "1979",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "The final standard is \cite{ANSI:ada}.",
  acknowledgement = ack-nhfb,
}


bibtype: article
filename: master.bib
label: Ada79:refman
author: Anonymous
title: Preliminary Ada Reference Manual
journal: j-SIGPLAN
volume: 14
number: 6A
pages: xix + 284
month: jun
monthnumber: 6
year: 1979
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
note: The final standard is cite ANSI:ada.
acknowledgement: ack-nhfb
key: Ada
rawauthor: Anonymous
rawnote: The final standard is \cite{ANSI:ada}.
rawtitle: Preliminary {Ada} Reference Manual
entry:
@Article{Ada79:refman,
  author =       "Anonymous",
  key =          "Ada",
  title =        "Preliminary {Ada} Reference Manual",
  journal =      j-SIGPLAN,
  volume =       "14",
  number =       "6A",
  month =        jun,
  year =         "1979",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "The final standard is \cite{ANSI:ada}.",
  acknowledgement = ack-nhfb,
}


bibtype: manual
filename: master.bib
label: ADA:1992:TRF
author: Adobe Developers Association
title: TIFF Revision 6.0: Final
organization: Adobe Systems Incorporated
address: 1585 Charleston Road P.O. Box 7900 Mountain View, CA 94039-7900
pages: xix + 284
day: 3
month: jun
monthnumber: 6
year: 1992
bibdate: Thu Nov 06 14:44:07 2003
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2003.11.06 14:44:07 ???
keywords: TIFF (Tagged Image File Format) specification
acknowledgement: ack-nhfb
howpublished: World-Wide Web document
rawauthor: {Adobe Developers Association}
rawtitle: {TIFF} Revision 6.0: Final
note:
Includes TIFF Specification Supplement 1 (enhancements for Adobe PageMaker 6.0) [14-Sep-1995] and TIFF Specification Supplement 2 (enhancements for Adobe Photoshop) [22-Mar-2002]. Hypertext linked for Web access.

URL:
http://home.earthlink.net/~ritter/tiff/ (The Unofficial TIFF Home Page); http://partners.adobe.com/asn/tech/tiff/specification.jsp

rawnote:
Includes TIFF Specification Supplement 1 (enhancements for Adobe PageMaker 6.0) [14-Sep-1995] and TIFF Specification Supplement 2 (enhancements for Adobe Photoshop) [22-Mar-2002]. Hypertext linked for Web access.

entry:
@Manual{ADA:1992:TRF,
  author =       "{Adobe Developers Association}",
  title =        "{TIFF} Revision 6.0: Final",
  howpublished = "World-Wide Web document",
  organization = "Adobe Systems Incorporated",
  address =      "1585 Charleston Road P.O. Box 7900 Mountain View, CA
                 94039-7900",
  day =          "3",
  month =        jun,
  year =         "1992",
  bibdate =      "Thu Nov 06 14:44:07 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "Includes TIFF Specification Supplement 1 (enhancements
                 for Adobe PageMaker 6.0) [14-Sep-1995] and TIFF
                 Specification Supplement 2 (enhancements for Adobe
                 Photoshop) [22-Mar-2002]. Hypertext linked for Web
                 access.",
  URL =          "http://home.earthlink.net/~ritter/tiff/ (The
                 Unofficial TIFF Home Page);
                 http://partners.adobe.com/asn/tech/tiff/specification.jsp",
  acknowledgement = ack-nhfb,
  keywords =     "TIFF (Tagged Image File Format) specification",
}


bibtype: book
filename: master.bib
label: Adams:1992:FHC
author: Jeanne C. Adams and Walter S. Brainerd and Jerrold L. Wagener
title: Fortran 90 Handbook: Complete ANSI / ISO Reference
publisher: pub-MCGRAW-HILL
address: pub-MCGRAW-HILL:adr
pages: xi + 740
year: 1992
ISBN: 0-07-000406-4 OR 0070004064
ISBN13: 978-0-07-000406-1 OR 9780070004061
LCCN: QA76.73.F28 F67 1992
bibdate: Sat Jun 17 12:29:56 2000
bibtimestamp: 2000.06.17 12:29:56 ???
note: See cite ANSI:ftn92.
keywords: Computer Programming; Fortran; Fortran 90 (computer program language); Programming Languages
acknowledgement: ack-nhfb
rawauthor: Jeanne C. Adams and Walter S. Brainerd and Jerrold L. Wagener
rawnote: See \cite{ANSI:ftn92}.
rawtitle: {Fortran 90} Handbook: Complete {ANSI\slash ISO} Reference
bibsource:
https://www.math.utah.edu/pub/tex/bib/fortran3.bib; https://www.math.utah.edu/pub/tex/bib/master.bib

TOC:
0. Sneak Preview 1. Introduction 1.1. History 1.2. Why a New Standard? 1.3. Why Not Use Another Language? 1.4. Development of Fortran 90 1.5. Fortran 77 Compatibility 1.6. Extensibility 1.7. Intrinsic and Standard Modules 1.8. The Fortran 90 Language Standard 1.9. References 2. Fortran Concepts and Terms 2.1. Scope and Association 2.2. Program Organization 2.3. Data Environment 2.4. Program Execution 2.5. Terms 2.6. Summary of Forms 2.7. Ordering Requirements 2.8. Example Fortran 90 Program 2.9. Summary 3. Language Elements and Source Form 3.1. The Processor Character Set 3.2. Lexical Tokens 3.3. Source Form 3.4. Rules for Fixed/Free Source Form 3.5. The INCLUDE Line 3.6. Low-Level Syntax 3.7. Summary 4. Data Types 4.1. Building the Data Environment for a Problem Solution 4.2. What Is Meant by ``Type'' in Fortran? 4.3. Intrinsic Data Types 4.4. Derived Types 4.5. Structure Constructors 4.6. Array Constructors 4.7. Summary 5. Declarations 5.1. Type Declaration Statements 5.2. Implicit Typing 5.3. Array Properties 5.4. Pointer Properties 5.6. Object Accessibility and Use 5.7. Procedure Properties 5.8. Automatic Data Objects 5.9. NAMELIST Statement 5.10. Storage Association 5.11. Summary 6. Using Data 6.1. Constants and Variables 6.2. Substrings 6.3. Structure Components 6.4. Arrays 6.5. Pointers and Allocatable Arrays 6.6. Summary 7. Expressions and Assignment 7.1. Introduction to Fortran 90 Expressions 7.2. Formation of Expressions 7.3. Interpretation of Expressions 7.4. Evaluation of Expressions 7.5. Assignment 7.6. Summary 8. Controlling Execution 8.1. The Execution Sequence 8.2. Blocks and Executable Constructs 8.3. IF Construct and IF Statement 8.4. The CASE Construct 8.5. The DO Construct 8.6. Branching 8.7. Obsolescent Control Statements 8.8. Summary 9. Input and Output Processing 9.1. Records, Files, Access Methods, and Units 9.2. Data Transfer Statements 9.3. Execution Model for Data Transfer Statements 9.4. Error and Other Conditions in Input/Output Statements 9.5. The OPEN Statement 9.6. The CLOSE Statement 9.7. Inquiring about Files 9.8. File Positioning Statements 9.9. Restrictions on Input/Output Specifiers, List Items, and Statements 9.10. Summary 10. Input and Output Editing 10.1. Explicit Formatting 10.2. Format Specifications 10.3. Character String Edit Descriptor Form 10.4. Formatted Data Transfer 10.5. File Positioning by Format Control 10.6. Numeric Editing 10.7. Logical Editing 10.8. Character Editing 10.9. Control Edit Descriptors 10.10. List-Directed Formatting 10.11. Namelist Formatting 10.12. Summary 11. Program Units 11.1. Overview 11.2. Main Program 11.3. Internal Procedures 11.4. Host Association 11.5. External Subprograms 11.6. Modules 11.7. Block Data Program Units 11.8. Summary 12. Using Procedures 12.1. Procedure Terms and Concepts 12.2. Subroutines 12.3. Functions 12.4. Procedure-Related Statements 12.5. Argument Association 12.6. Procedure Interfaces 12.7. Summary 13. Intrinsic Procedures 13.1. Intrinsic Procedure Terms and Concepts 13.2. Representation Models 13.3. Inquiry and Numeric Manipulation Functions 13.4. Transfer and Conversion Functions 13.5. Computation Functions 13.6. Array Functions 13.7. Intrinsic Subroutines 13.8. Alphabetical List of All Intrinsic Procedures. 13.9. Specific Names for Generic Intrinsic Procedures. 13.10. Summary 14. Scope, Association, and Definition 14.1. The Use of Names 14.2. Scope 14.3. Association 14.4. Definition Status Appendix A: Intrinsic Procedures Appendix B: Fortran 90 Syntax B.1. The Form of the Syntax B.2. Syntax Rules and Constraints B.3. Cross References Appendix C: Decremental Features C.1. Deleted Features C.2. Obsolescent Features

rawTOC:
0. Sneak Preview \\ 1. Introduction \\ 1.1. History \\ 1.2. Why a New Standard? \\ 1.3. Why Not Use Another Language? \\ 1.4. Development of Fortran 90 \\ 1.5. Fortran 77 Compatibility \\ 1.6. Extensibility \\ 1.7. Intrinsic and Standard Modules \\ 1.8. The Fortran 90 Language Standard \\ 1.9. References \\ 2. Fortran Concepts and Terms \\ 2.1. Scope and Association \\ 2.2. Program Organization \\ 2.3. Data Environment \\ 2.4. Program Execution \\ 2.5. Terms \\ 2.6. Summary of Forms \\ 2.7. Ordering Requirements \\ 2.8. Example Fortran 90 Program \\ 2.9. Summary \\ 3. Language Elements and Source Form \\ 3.1. The Processor Character Set \\ 3.2. Lexical Tokens \\ 3.3. Source Form \\ 3.4. Rules for Fixed/Free Source Form \\ 3.5. The INCLUDE Line \\ 3.6. Low-Level Syntax \\ 3.7. Summary \\ 4. Data Types \\ 4.1. Building the Data Environment for a Problem Solution \\ 4.2. What Is Meant by ``Type'' in Fortran? \\ 4.3. Intrinsic Data Types \\ 4.4. Derived Types \\ 4.5. Structure Constructors \\ 4.6. Array Constructors \\ 4.7. Summary \\ 5. Declarations \\ 5.1. Type Declaration Statements \\ 5.2. Implicit Typing \\ 5.3. Array Properties \\ 5.4. Pointer Properties \\ 5.6. Object Accessibility and Use \\ 5.7. Procedure Properties \\ 5.8. Automatic Data Objects \\ 5.9. NAMELIST Statement \\ 5.10. Storage Association \\ 5.11. Summary \\ 6. Using Data \\ 6.1. Constants and Variables \\ 6.2. Substrings \\ 6.3. Structure Components \\ 6.4. Arrays \\ 6.5. Pointers and Allocatable Arrays \\ 6.6. Summary \\ 7. Expressions and Assignment \\ 7.1. Introduction to Fortran 90 Expressions \\ 7.2. Formation of Expressions \\ 7.3. Interpretation of Expressions \\ 7.4. Evaluation of Expressions \\ 7.5. Assignment \\ 7.6. Summary \\ 8. Controlling Execution \\ 8.1. The Execution Sequence \\ 8.2. Blocks and Executable Constructs \\ 8.3. IF Construct and IF Statement \\ 8.4. The CASE Construct \\ 8.5. The DO Construct \\ 8.6. Branching \\ 8.7. Obsolescent Control Statements \\ 8.8. Summary \\ 9. Input and Output Processing \\ 9.1. Records, Files, Access Methods, and Units \\ 9.2. Data Transfer Statements \\ 9.3. Execution Model for Data Transfer Statements \\ 9.4. Error and Other Conditions in Input/Output Statements \\ 9.5. The OPEN Statement \\ 9.6. The CLOSE Statement \\ 9.7. Inquiring about Files \\ 9.8. File Positioning Statements \\ 9.9. Restrictions on Input/Output Specifiers, List Items, and Statements \\ 9.10. Summary \\ 10. Input and Output Editing \\ 10.1. Explicit Formatting \\ 10.2. Format Specifications \\ 10.3. Character String Edit Descriptor Form \\ 10.4. Formatted Data Transfer \\ 10.5. File Positioning by Format Control \\ 10.6. Numeric Editing \\ 10.7. Logical Editing \\ 10.8. Character Editing \\ 10.9. Control Edit Descriptors \\ 10.10. List-Directed Formatting \\ 10.11. Namelist Formatting \\ 10.12. Summary \\ 11. Program Units \\ 11.1. Overview \\ 11.2. Main Program \\ 11.3. Internal Procedures \\ 11.4. Host Association \\ 11.5. External Subprograms \\ 11.6. Modules \\ 11.7. Block Data Program Units \\ 11.8. Summary \\ 12. Using Procedures \\ 12.1. Procedure Terms and Concepts \\ 12.2. Subroutines \\ 12.3. Functions \\ 12.4. Procedure-Related Statements \\ 12.5. Argument Association \\ 12.6. Procedure Interfaces \\ 12.7. Summary \\ 13. Intrinsic Procedures \\ 13.1. Intrinsic Procedure Terms and Concepts \\ 13.2. Representation Models \\ 13.3. Inquiry and Numeric Manipulation Functions \\ 13.4. Transfer and Conversion Functions \\ 13.5. Computation Functions \\ 13.6. Array Functions \\ 13.7. Intrinsic Subroutines \\ 13.8. Alphabetical List of All Intrinsic Procedures. 13.9. Specific Names for Generic Intrinsic Procedures. 13.10. Summary \\ 14. Scope, Association, and Definition \\ 14.1. The Use of Names \\ 14.2. Scope \\ 14.3. Association \\ 14.4. Definition Status \\ Appendix A: Intrinsic Procedures \\ Appendix B: Fortran 90 Syntax \\ B.1. The Form of the Syntax \\ B.2. Syntax Rules and Constraints \\ B.3. Cross References \\ Appendix C: Decremental Features \\ C.1. Deleted Features \\ C.2. Obsolescent Features

entry:
@Book{Adams:1992:FHC,
  author =       "Jeanne C. Adams and Walter S. Brainerd and Jerrold L.
                 Wagener",
  title =        "{Fortran 90} Handbook: Complete {ANSI\slash ISO}
                 Reference",
  publisher =    pub-MCGRAW-HILL,
  address =      pub-MCGRAW-HILL:adr,
  pages =        "xi + 740",
  year =         "1992",
  ISBN =         "0-07-000406-4",
  ISBN-13 =      "978-0-07-000406-1",
  LCCN =         "QA76.73.F28 F67 1992",
  bibdate =      "Sat Jun 17 12:29:56 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "See \cite{ANSI:ftn92}.",
  price =        "US\$79.50",
  acknowledgement = ack-nhfb,
  keywords =     "Computer Programming; Fortran; Fortran 90 (computer
                 program language); Programming Languages",
  libnote =      "Not yet in my library.",
  tableofcontents = "0. Sneak Preview \\
                 1. Introduction \\
                 1.1. History \\
                 1.2. Why a New Standard? \\
                 1.3. Why Not Use Another Language? \\
                 1.4. Development of Fortran 90 \\
                 1.5. Fortran 77 Compatibility \\
                 1.6. Extensibility \\
                 1.7. Intrinsic and Standard Modules \\
                 1.8. The Fortran 90 Language Standard \\
                 1.9. References \\
                 2. Fortran Concepts and Terms \\
                 2.1. Scope and Association \\
                 2.2. Program Organization \\
                 2.3. Data Environment \\
                 2.4. Program Execution \\
                 2.5. Terms \\
                 2.6. Summary of Forms \\
                 2.7. Ordering Requirements \\
                 2.8. Example Fortran 90 Program \\
                 2.9. Summary \\
                 3. Language Elements and Source Form \\
                 3.1. The Processor Character Set \\
                 3.2. Lexical Tokens \\
                 3.3. Source Form \\
                 3.4. Rules for Fixed/Free Source Form \\
                 3.5. The INCLUDE Line \\
                 3.6. Low-Level Syntax \\
                 3.7. Summary \\
                 4. Data Types \\
                 4.1. Building the Data Environment for a Problem
                 Solution \\
                 4.2. What Is Meant by ``Type'' in Fortran? \\
                 4.3. Intrinsic Data Types \\
                 4.4. Derived Types \\
                 4.5. Structure Constructors \\
                 4.6. Array Constructors \\
                 4.7. Summary \\
                 5. Declarations \\
                 5.1. Type Declaration Statements \\
                 5.2. Implicit Typing \\
                 5.3. Array Properties \\
                 5.4. Pointer Properties \\
                 5.6. Object Accessibility and Use \\
                 5.7. Procedure Properties \\
                 5.8. Automatic Data Objects \\
                 5.9. NAMELIST Statement \\
                 5.10. Storage Association \\
                 5.11. Summary \\
                 6. Using Data \\
                 6.1. Constants and Variables \\
                 6.2. Substrings \\
                 6.3. Structure Components \\
                 6.4. Arrays \\
                 6.5. Pointers and Allocatable Arrays \\
                 6.6. Summary \\
                 7. Expressions and Assignment \\
                 7.1. Introduction to Fortran 90 Expressions \\
                 7.2. Formation of Expressions \\
                 7.3. Interpretation of Expressions \\
                 7.4. Evaluation of Expressions \\
                 7.5. Assignment \\
                 7.6. Summary \\
                 8. Controlling Execution \\
                 8.1. The Execution Sequence \\
                 8.2. Blocks and Executable Constructs \\
                 8.3. IF Construct and IF Statement \\
                 8.4. The CASE Construct \\
                 8.5. The DO Construct \\
                 8.6. Branching \\
                 8.7. Obsolescent Control Statements \\
                 8.8. Summary \\
                 9. Input and Output Processing \\
                 9.1. Records, Files, Access Methods, and Units \\
                 9.2. Data Transfer Statements \\
                 9.3. Execution Model for Data Transfer Statements \\
                 9.4. Error and Other Conditions in Input/Output
                 Statements \\
                 9.5. The OPEN Statement \\
                 9.6. The CLOSE Statement \\
                 9.7. Inquiring about Files \\
                 9.8. File Positioning Statements \\
                 9.9. Restrictions on Input/Output Specifiers, List
                 Items, and Statements \\
                 9.10. Summary \\
                 10. Input and Output Editing \\
                 10.1. Explicit Formatting \\
                 10.2. Format Specifications \\
                 10.3. Character String Edit Descriptor Form \\
                 10.4. Formatted Data Transfer \\
                 10.5. File Positioning by Format Control \\
                 10.6. Numeric Editing \\
                 10.7. Logical Editing \\
                 10.8. Character Editing \\
                 10.9. Control Edit Descriptors \\
                 10.10. List-Directed Formatting \\
                 10.11. Namelist Formatting \\
                 10.12. Summary \\
                 11. Program Units \\
                 11.1. Overview \\
                 11.2. Main Program \\
                 11.3. Internal Procedures \\
                 11.4. Host Association \\
                 11.5. External Subprograms \\
                 11.6. Modules \\
                 11.7. Block Data Program Units \\
                 11.8. Summary \\
                 12. Using Procedures \\
                 12.1. Procedure Terms and Concepts \\
                 12.2. Subroutines \\
                 12.3. Functions \\
                 12.4. Procedure-Related Statements \\
                 12.5. Argument Association \\
                 12.6. Procedure Interfaces \\
                 12.7. Summary \\
                 13. Intrinsic Procedures \\
                 13.1. Intrinsic Procedure Terms and Concepts \\
                 13.2. Representation Models \\
                 13.3. Inquiry and Numeric Manipulation Functions \\
                 13.4. Transfer and Conversion Functions \\
                 13.5. Computation Functions \\
                 13.6. Array Functions \\
                 13.7. Intrinsic Subroutines \\
                 13.8. Alphabetical List of All Intrinsic Procedures.
                 13.9. Specific Names for Generic Intrinsic Procedures.
                 13.10. Summary \\
                 14. Scope, Association, and Definition \\
                 14.1. The Use of Names \\
                 14.2. Scope \\
                 14.3. Association \\
                 14.4. Definition Status \\
                 Appendix A: Intrinsic Procedures \\
                 Appendix B: Fortran 90 Syntax \\
                 B.1. The Form of the Syntax \\
                 B.2. Syntax Rules and Constraints \\
                 B.3. Cross References \\
                 Appendix C: Decremental Features \\
                 C.1. Deleted Features \\
                 C.2. Obsolescent Features",
  xxauthor =     "Jeanne C. Adams and Walter S. Brainerd and Jeanne T.
                 Martin",
}


bibtype: book
filename: master.bib
label: Adams:1997:FHC
title: Fortran 95 Handbook: Complete ISO / ANSI Reference
publisher: pub-MIT
address: pub-MIT:adr
pages: xii + 711
month: nov
monthnumber: 11
year: 1997
ISBN: 0-262-51096-0 OR 0262510960
ISBN13: 978-0-262-51096-7 OR 9780262510967
LCCN: QA76.73.F25 F6 1997
bibdate: Fri Dec 19 10:45:21 1997
bibtimestamp: 1997.12.19 10:45:21 ???
series: Scientific and Engineering Computation
acknowledgement: ack-nhfb
rawtitle: {Fortran 95} Handbook: Complete {ISO\slash ANSI} Reference
editor:
Jeanne C. Adams and Walter S. Brainerd and Jeanne T. Martin and Brian T. Smith and Jerrold L. Wagener

bibsource:
http://www.amazon.com/exec/obidos/ISBN=0262510960/wholesaleproductA/; http://www.cbooks.com/; https://www.math.utah.edu/pub/tex/bib/fortran3.bib; https://www.math.utah.edu/pub/tex/bib/master.bib

URL:
http://www.cbooks.com/sqlnut/SP/search/gtsumt?source=&isbn=0262510960; http://www.mitpress.com/book-home.tcl?isbn=0262510960

abstract:
The booktitle Fortran 95 Handbook, a comprehensive reference work for the Fortran Programmer and Implementor, contains a complete description of the Fortran 95 programming language. The chapters follow the same sequence of topics as the Fortran 95 standard, but contain a more thorough and informal explanation of the language's features and many more examples. Appendices describe all the intrinsic features, the deprecated features, and the complete syntax of the language. In addition to an unusually thorough topical index, there is an index of examples. Major new features added in Fortran 95 are the FORALL statement and construct, pure and elemental procedures, and structure and pointer default initialization.

TOC:
1: What is Fortran 95? 2: Getting started 3: Types of data 4: Introducing arrays 5: Intrinsic procedures 6: Execution control 7: Introducing external procedures 8: More about data; the type declaration statement 9: Arrays and data manipulation 10: Modules 11: More about procedures 12: Advanced array features and derived types 13: Pointers 14: Overview 15: High Performance Fortran Appendix A: Input and output Appendix B: Bits Appendix C: ISO_VARYING_STRINGS Appendix D: Fortran 95's new features: summary Appendix E: Fortran 95 statements Appendix F: Fortran 95 intrinsic procedures Appendix G: Answers to selected exercises

rawabstract:
The \booktitle{Fortran 95 Handbook}, a comprehensive reference work for the Fortran Programmer and Implementor, contains a complete description of the Fortran 95 programming language. The chapters follow the same sequence of topics as the Fortran 95 standard, but contain a more thorough and informal explanation of the language's features and many more examples. Appendices describe all the intrinsic features, the deprecated features, and the complete syntax of the language. In addition to an unusually thorough topical index, there is an index of examples. Major new features added in Fortran 95 are the FORALL statement and construct, pure and elemental procedures, and structure and pointer default initialization.

raweditor:
Jeanne C. Adams and Walter S. Brainerd and Jeanne T. Martin and Brian T. Smith and Jerrold L. Wagener

rawTOC:
1: What is Fortran 95? \\ 2: Getting started \\ 3: Types of data \\ 4: Introducing arrays \\ 5: Intrinsic procedures \\ 6: Execution control \\ 7: Introducing external procedures \\ 8: More about data; the type declaration statement \\ 9: Arrays and data manipulation \\ 10: Modules \\ 11: More about procedures \\ 12: Advanced array features and derived types \\ 13: Pointers \\ 14: Overview \\ 15: High Performance Fortran \\ Appendix A: Input and output \\ Appendix B: Bits \\ Appendix C: ISO\_VARYING\_STRINGS \\ Appendix D: Fortran 95's new features: summary \\ Appendix E: Fortran 95 statements \\ Appendix F: Fortran 95 intrinsic procedures \\ Appendix G: Answers to selected exercises

entry:
@Book{Adams:1997:FHC,
  editor =       "Jeanne C. Adams and Walter S. Brainerd and Jeanne T.
                 Martin and Brian T. Smith and Jerrold L. Wagener",
  title =        "{Fortran 95} Handbook: Complete {ISO\slash ANSI}
                 Reference",
  publisher =    pub-MIT,
  address =      pub-MIT:adr,
  pages =        "xii + 711",
  month =        nov,
  year =         "1997",
  ISBN =         "0-262-51096-0",
  ISBN-13 =      "978-0-262-51096-7",
  LCCN =         "QA76.73.F25 F6 1997",
  bibdate =      "Fri Dec 19 10:45:21 1997",
  bibsource =    "http://www.amazon.com/exec/obidos/ISBN=0262510960/wholesaleproductA/;
                 http://www.cbooks.com/;
                 https://www.math.utah.edu/pub/tex/bib/fortran3.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib",
  series =       "Scientific and Engineering Computation",
  URL =          "http://www.cbooks.com/sqlnut/SP/search/gtsumt?source=&isbn=0262510960;
                 http://www.mitpress.com/book-home.tcl?isbn=0262510960",
  abstract =     "The \booktitle{Fortran 95 Handbook}, a comprehensive
                 reference work for the Fortran Programmer and
                 Implementor, contains a complete description of the
                 Fortran 95 programming language. The chapters follow
                 the same sequence of topics as the Fortran 95 standard,
                 but contain a more thorough and informal explanation of
                 the language's features and many more examples.
                 Appendices describe all the intrinsic features, the
                 deprecated features, and the complete syntax of the
                 language. In addition to an unusually thorough topical
                 index, there is an index of examples. Major new
                 features added in Fortran 95 are the FORALL statement
                 and construct, pure and elemental procedures, and
                 structure and pointer default initialization.",
  acknowledgement = ack-nhfb,
  tableofcontents = "1: What is Fortran 95? \\
                 2: Getting started \\
                 3: Types of data \\
                 4: Introducing arrays \\
                 5: Intrinsic procedures \\
                 6: Execution control \\
                 7: Introducing external procedures \\
                 8: More about data; the type declaration statement \\
                 9: Arrays and data manipulation \\
                 10: Modules \\
                 11: More about procedures \\
                 12: Advanced array features and derived types \\
                 13: Pointers \\
                 14: Overview \\
                 15: High Performance Fortran \\
                 Appendix A: Input and output \\
                 Appendix B: Bits \\
                 Appendix C: ISO\_VARYING\_STRINGS \\
                 Appendix D: Fortran 95's new features: summary \\
                 Appendix E: Fortran 95 statements \\
                 Appendix F: Fortran 95 intrinsic procedures \\
                 Appendix G: Answers to selected exercises",
}


bibtype: book
filename: master.bib
label: Adobe:1985:PLR
author: Adobe Systems Incorporated
title: PostScript Language Reference Manual
publisher: pub-AW
address: pub-AW:adr
pages: ix + 321
year: 1985
ISBN: 0-201-10174-2 OR 0201101742
ISBN13: 978-0-201-10174-4 OR 9780201101744
LCCN: QA76.73.P67 A33 1985
bibdate: Sat Oct 28 08:25:13 2000
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2000.10.28 08:25:13 ???
acknowledgement: ack-nhfb
rawauthor: {Adobe Systems Incorporated}
rawtitle: {PostScript} Language Reference Manual
entry:
@Book{Adobe:1985:PLR,
  author =       "{Adobe Systems Incorporated}",
  title =        "{PostScript} Language Reference Manual",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "ix + 321",
  year =         "{\noopsort{1985a}}1985",
  ISBN =         "0-201-10174-2",
  ISBN-13 =      "978-0-201-10174-4",
  LCCN =         "QA76.73.P67 A33 1985",
  bibdate =      "Sat Oct 28 08:25:13 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Adobe:1985:PLT
author: Adobe Systems Incorporated
title: PostScript Language Tutorial and Cookbook
publisher: pub-AW
address: pub-AW:adr
pages: x + 243
year: 1985
ISBN: 0-201-10179-3 OR 0201101793
ISBN13: 978-0-201-10179-9 OR 9780201101799
LCCN: QA76.73.P67 A34 1985
bibdate: Sat Oct 28 08:25:05 2000
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2000.10.28 08:25:05 ???
acknowledgement: ack-nhfb
rawauthor: {Adobe Systems Incorporated}
rawtitle: {PostScript} Language Tutorial and Cookbook
TOC:
Stack and arithmetic Beginning graphics Procedures and variables printing text More graphics Loops and conditional Arrays More fonts Clipping and line details Images Postscript printers

rawTOC:
Stack and arithmetic \\ Beginning graphics \\ Procedures and variables \\ printing text \\ More graphics \\ Loops and conditional \\ Arrays \\ More fonts \\ Clipping and line details \\ Images \\ Postscript printers

entry:
@Book{Adobe:1985:PLT,
  author =       "{Adobe Systems Incorporated}",
  title =        "{PostScript} Language Tutorial and Cookbook",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "x + 243",
  year =         "{\noopsort{1985b}}1985",
  ISBN =         "0-201-10179-3",
  ISBN-13 =      "978-0-201-10179-9",
  LCCN =         "QA76.73.P67 A34 1985",
  bibdate =      "Sat Oct 28 08:25:05 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "Stack and arithmetic \\
                 Beginning graphics \\
                 Procedures and variables \\
                 printing text \\
                 More graphics \\
                 Loops and conditional \\
                 Arrays \\
                 More fonts \\
                 Clipping and line details \\
                 Images \\
                 Postscript printers",
}


bibtype: manual
filename: master.bib
label: Adobe:1988:DPS
author: Adobe Systems Incorporated
title: The Display PostScript System Reference
organization: pub-ADOBE
pages: x + 243
month: oct
monthnumber: 10
year: 1988
bibdate: Sat Oct 28 08:25:11 2000
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2000.10.28 08:25:11 ???
acknowledgement: ack-nhfb
rawauthor: Adobe Systems Incorporated
rawtitle: The Display {PostScript} System Reference
entry:
@Manual{Adobe:1988:DPS,
  author =       "Adobe Systems Incorporated",
  title =        "The Display {PostScript} System Reference",
  organization = pub-ADOBE,
  month =        oct # " 10",
  year =         "1988",
  bibdate =      "Sat Oct 28 08:25:11 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
}


bibtype: manual
filename: master.bib
label: Adobe:1990:ATF
author: Adobe Systems Incorporated
title: Adobe Type 1 Font Format
organization: pub-ADOBE
address: pub-ADOBE:adr
pages: x + 243
month: mar
monthnumber: 3
year: 1990
bibdate: Sat Oct 28 08:25:07 2000
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2000.10.28 08:25:07 ???
acknowledgement: ack-nhfb
rawauthor: Adobe Systems Incorporated
rawtitle: {Adobe} Type 1 Font Format
entry:
@Manual{Adobe:1990:ATF,
  author =       "Adobe Systems Incorporated",
  title =        "{Adobe} Type 1 Font Format",
  organization = pub-ADOBE,
  address =      pub-ADOBE:adr,
  month =        mar,
  year =         "1990",
  bibdate =      "Sat Oct 28 08:25:07 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
  partnumber =   "LPS0064",
}


bibtype: book
filename: master.bib
label: Adobe:1990:PLR
author: Adobe Systems Incorporated
title: PostScript Language Reference Manual
publisher: pub-AW
address: pub-AW:adr
edition: Second
pages: viii + 764
year: 1990
ISBN: 0-201-18127-4 OR 0201181274
ISBN13: 978-0-201-18127-2 OR 9780201181272
LCCN: QA76.73.P67 P67 1990
bibdate: Sat Oct 28 08:25:15 2000
bibtimestamp: 2000.10.28 08:25:15 ???
acknowledgement: ack-nhfb
rawauthor: {Adobe Systems Incorporated}
rawtitle: {PostScript} Language Reference Manual
bibsource:
https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/postscri.bib

TOC:
Preface Introduction About This Manual Evolution of the PostScript Language LanguageLevel 3 Overview Related Publications Copyrights and Trademarks Basic Ideas Raster Output Devices Scan Conversion Page Description Languages Using the PostScript Language Language Interpreter Syntax Data Types and Objects Stacks Execution Overview of Basic Operators Memory Management File Input and Output Named Resources Functions Errors Early Name Binding Filtered Files Details Binary Encoding Details Graphics Imaging Model Graphics State Coordinate Systems and Transformations Path Construction Painting User Paths Forms Color Spaces Patterns Images Fonts Organization and Use of Fonts Font Dictionaries Character Encoding Glyph Metric Information Font Cache Unique ID Generation Type 3 Fonts Additional Base Font Types Font Derivation and Modification Composite Fonts CID-Keyed Fonts Device Control Using Page Devices Page Device Parameters In-RIP Trapping Output Device Dictionary Rendering CIE-Based Color to Device Color Conversions among Device Color Spaces Transfer Functions Halftones Scan Conversion Details Operators Operator Summary Operator Details LanguageLevel Feature Summary LanguageLevel 3 Features LanguageLevel 2 Features Incompatibilities Implementation Limits Typical Limits Virtual Memory Use Interpreter Parameters Properties of User and System Parameters Defined User and System Parameters Details of User and System Parameters Device Parameters Compatibility Strategies The LanguageLevel Approach When to Provide Compatibility Compatibility Techniques Installing Emulations Character Sets and Encoding Vectors Times Family Helvetica Family Courier Family Symbol Standard Latin Character Set StandardEncoding Encoding Vector ISOLatin1Encoding Encoding Vector CE Encoding Vector Expert Character Set Expert Encoding Vector ExpertSubset Encoding Vector Symbol Character Set 786 Symbol Encoding Vector System Name Encodings Operator Usage Guidelines Bibliography Index

shortTOC:
Basic ideas Language Graphics Fonts Rendering Display postscript Operator Appendices Bibliography Index

rawshortTOC:
Basic ideas \\ Language \\ Graphics \\ Fonts \\ Rendering \\ Display postscript \\ Operator \\ Appendices \\ Bibliography \\ Index

rawTOC:
Preface \\ Introduction \\ About This Manual \\ Evolution of the PostScript Language \\ LanguageLevel 3 Overview \\ Related Publications \\ Copyrights and Trademarks \\ Basic Ideas \\ Raster Output Devices \\ Scan Conversion \\ Page Description Languages \\ Using the PostScript Language \\ Language \\ Interpreter \\ Syntax \\ Data Types and Objects \\ Stacks \\ Execution \\ Overview of Basic Operators \\ Memory Management \\ File Input and Output \\ Named Resources \\ Functions \\ Errors \\ Early Name Binding \\ Filtered Files Details \\ Binary Encoding Details \\ Graphics \\ Imaging Model \\ Graphics State \\ Coordinate Systems and Transformations \\ Path Construction \\ Painting \\ User Paths \\ Forms \\ Color Spaces \\ Patterns \\ Images \\ Fonts \\ Organization and Use of Fonts \\ Font Dictionaries \\ Character Encoding \\ Glyph Metric Information \\ Font Cache \\ Unique ID Generation \\ Type 3 Fonts \\ Additional Base Font Types \\ Font Derivation and Modification \\ Composite Fonts \\ CID-Keyed Fonts \\ Device Control \\ Using Page Devices \\ Page Device Parameters \\ In-RIP Trapping \\ Output Device Dictionary \\ Rendering \\ CIE-Based Color to Device Color \\ Conversions among Device Color Spaces \\ Transfer Functions \\ Halftones \\ Scan Conversion Details \\ Operators \\ Operator Summary \\ Operator Details \\ LanguageLevel Feature Summary \\ LanguageLevel 3 Features \\ LanguageLevel 2 Features \\ Incompatibilities \\ Implementation Limits \\ Typical Limits \\ Virtual Memory Use \\ Interpreter Parameters \\ Properties of User and System Parameters \\ Defined User and System Parameters \\ Details of User and System Parameters \\ Device Parameters \\ Compatibility Strategies \\ The LanguageLevel Approach \\ When to Provide Compatibility \\ Compatibility Techniques \\ Installing Emulations \\ Character Sets and Encoding Vectors \\ Times Family \\ Helvetica Family \\ Courier Family \\ Symbol \\ Standard Latin Character Set \\ StandardEncoding Encoding Vector \\ ISOLatin1Encoding Encoding Vector \\ CE Encoding Vector \\ Expert Character Set \\ Expert Encoding Vector \\ ExpertSubset Encoding Vector \\ Symbol Character Set 786 \\ Symbol Encoding Vector \\ System Name Encodings \\ Operator Usage Guidelines \\ Bibliography \\ Index

entry:
@Book{Adobe:1990:PLR,
  author =       "{Adobe Systems Incorporated}",
  title =        "{PostScript} Language Reference Manual",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "viii + 764",
  year =         "1990",
  ISBN =         "0-201-18127-4",
  ISBN-13 =      "978-0-201-18127-2",
  LCCN =         "QA76.73.P67 P67 1990",
  bibdate =      "Sat Oct 28 08:25:15 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/postscri.bib",
  acknowledgement = ack-nhfb,
  shorttableofcontents = "Basic ideas \\
                 Language \\
                 Graphics \\
                 Fonts \\
                 Rendering \\
                 Display postscript \\
                 Operator \\
                 Appendices \\
                 Bibliography \\
                 Index",
  tableofcontents = "Preface \\
                 Introduction \\
                 About This Manual \\
                 Evolution of the PostScript Language \\
                 LanguageLevel 3 Overview \\
                 Related Publications \\
                 Copyrights and Trademarks \\
                 Basic Ideas \\
                 Raster Output Devices \\
                 Scan Conversion \\
                 Page Description Languages \\
                 Using the PostScript Language \\
                 Language \\
                 Interpreter \\
                 Syntax \\
                 Data Types and Objects \\
                 Stacks \\
                 Execution \\
                 Overview of Basic Operators \\
                 Memory Management \\
                 File Input and Output \\
                 Named Resources \\
                 Functions \\
                 Errors \\
                 Early Name Binding \\
                 Filtered Files Details \\
                 Binary Encoding Details \\
                 Graphics \\
                 Imaging Model \\
                 Graphics State \\
                 Coordinate Systems and Transformations \\
                 Path Construction \\
                 Painting \\
                 User Paths \\
                 Forms \\
                 Color Spaces \\
                 Patterns \\
                 Images \\
                 Fonts \\
                 Organization and Use of Fonts \\
                 Font Dictionaries \\
                 Character Encoding \\
                 Glyph Metric Information \\
                 Font Cache \\
                 Unique ID Generation \\
                 Type 3 Fonts \\
                 Additional Base Font Types \\
                 Font Derivation and Modification \\
                 Composite Fonts \\
                 CID-Keyed Fonts \\
                 Device Control \\
                 Using Page Devices \\
                 Page Device Parameters \\
                 In-RIP Trapping \\
                 Output Device Dictionary \\
                 Rendering \\
                 CIE-Based Color to Device Color \\
                 Conversions among Device Color Spaces \\
                 Transfer Functions \\
                 Halftones \\
                 Scan Conversion Details \\
                 Operators \\
                 Operator Summary \\
                 Operator Details \\
                 LanguageLevel Feature Summary \\
                 LanguageLevel 3 Features \\
                 LanguageLevel 2 Features \\
                 Incompatibilities \\
                 Implementation Limits \\
                 Typical Limits \\
                 Virtual Memory Use \\
                 Interpreter Parameters \\
                 Properties of User and System Parameters \\
                 Defined User and System Parameters \\
                 Details of User and System Parameters \\
                 Device Parameters \\
                 Compatibility Strategies \\
                 The LanguageLevel Approach \\
                 When to Provide Compatibility \\
                 Compatibility Techniques \\
                 Installing Emulations \\
                 Character Sets and Encoding Vectors \\
                 Times Family \\
                 Helvetica Family \\
                 Courier Family \\
                 Symbol \\
                 Standard Latin Character Set \\
                 StandardEncoding Encoding Vector \\
                 ISOLatin1Encoding Encoding Vector \\
                 CE Encoding Vector \\
                 Expert Character Set \\
                 Expert Encoding Vector \\
                 ExpertSubset Encoding Vector \\
                 Symbol Character Set 786 \\
                 Symbol Encoding Vector \\
                 System Name Encodings \\
                 Operator Usage Guidelines \\
                 Bibliography \\
                 Index",
  xxauthor =     "Ed Taft and Jeff Walden and Paul Engstrom",
}


bibtype: book
filename: master.bib
label: Adobe:1993:PDP
author: Adobe Systems Incorporated
title: Programming the Display PostScript System with X
publisher: pub-AW
address: pub-AW:adr
pages: viii + 764
year: 1993
ISBN: 0-201-62203-3 OR 0201622033
ISBN13: 978-0-201-62203-4 OR 9780201622034
LCCN: QA76.73.P67 D57 1993
bibdate: Sat Aug 27 10:53:05 1994
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 1994.08.27 10:53:05 ???
acknowledgement: ack-nhfb
rawauthor: {Adobe Systems Incorporated}
rawtitle: Programming the {Display PostScript System} with {X}
entry:
@Book{Adobe:1993:PDP,
  author =       "{Adobe Systems Incorporated}",
  title =        "Programming the {Display PostScript System} with {X}",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  year =         "1993",
  ISBN =         "0-201-62203-3",
  ISBN-13 =      "978-0-201-62203-4",
  LCCN =         "QA76.73.P67 D57 1993",
  bibdate =      "Sat Aug 27 10:53:05 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  price =        "US\$29.95",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Adobe:1997:AFA
author: Adobe Press
title: Adobe FAQ: Adobe's most frequently asked questions answered
publisher: pub-ADOBE-PRESS
address: pub-ADOBE-PRESS:adr
pages: xvi + 774
year: 1997
ISBN: 1-56830-372-6 OR 1568303726
ISBN13: 978-1-56830-372-7 OR 9781568303727
LCCN: QA76.754 .A36 1997
bibdate: Fri Aug 21 12:48:20 1998
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 1998.08.21 12:48:20 ???
note: Includes CD-ROM.
acknowledgement: ack-nhfb
rawauthor: {Adobe Press}
rawnote: Includes CD-ROM.
rawtitle: {Adobe FAQ}: {Adobe}'s most frequently asked questions answered
annote:
Covers Adobe Acrobat 3.0 (Capture, Distiller, Exchange, Reader), After Effects 3.1, FontFolio 7.09, Framemaker 5 Illustrator 7.0, PageMaker 6.5, PageMill 2.0, Persuasion 4.0 PhotoShop 4.0, Premiere 4.2 SiteMill 1.0, and Type Manager Deluxe.

entry:
@Book{Adobe:1997:AFA,
  author =       "{Adobe Press}",
  title =        "{Adobe FAQ}: {Adobe}'s most frequently asked questions
                 answered",
  publisher =    pub-ADOBE-PRESS,
  address =      pub-ADOBE-PRESS:adr,
  pages =        "xvi + 774",
  year =         "1997",
  ISBN =         "1-56830-372-6",
  ISBN-13 =      "978-1-56830-372-7",
  LCCN =         "QA76.754 .A36 1997",
  bibdate =      "Fri Aug 21 12:48:20 1998",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "Includes CD-ROM.",
  acknowledgement = ack-nhfb,
  annote =       "Covers Adobe Acrobat 3.0 (Capture, Distiller,
                 Exchange, Reader), After Effects 3.1, FontFolio 7.09,
                 Framemaker 5 Illustrator 7.0, PageMaker 6.5, PageMill
                 2.0, Persuasion 4.0 PhotoShop 4.0, Premiere 4.2
                 SiteMill 1.0, and Type Manager Deluxe.",
}


bibtype: book
filename: master.bib
label: Adobe:1999:PLR
author: Adobe Systems Incorporated
title: PostScript Language Reference
publisher: pub-AW
address: pub-AW:adr
edition: Third
pages: xii + 897
year: 1999
ISBN: 0-201-37922-8 OR 0201379228
ISBN13: 978-0-201-37922-8 OR 9780201379228
LCCN: QA76.73.P67 P67 1999
bibdate: Tue Dec 05 18:14:16 2000
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2000.12.05 18:14:16 ???
acknowledgement: ack-nhfb
rawauthor: {Adobe Systems Incorporated}
rawtitle: {PostScript} Language Reference
note:
This new edition defines PostScript Language Level 3. An electronic version of the book is available at the Adobe Web site, and is also included in a CD-ROM attached to the book.

URL:
http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf; http://partners.adobe.com/supportservice/devrelations/PDFS/TN/PLRM.pdf

TOC:
Preface Introduction About This Manual Evolution of the PostScript Language LanguageLevel 3 Overview Related Publications Copyrights and Trademarks Basic Ideas Raster Output Devices Scan Conversion Page Description Languages Using the PostScript Language Language Interpreter Syntax Data Types and Objects Stacks Execution Overview of Basic Operators Memory Management File Input and Output Named Resources Functions Errors Early Name Binding Filtered Files Details Binary Encoding Details Graphics Imaging Model Graphics State Coordinate Systems and Transformations Path Construction Painting User Paths Forms Color Spaces Patterns Images Fonts Organization and Use of Fonts Font Dictionaries Character Encoding Glyph Metric Information Font Cache Unique ID Generation Type 3 Fonts Additional Base Font Types Font Derivation and Modification Composite Fonts CID-Keyed Fonts Device Control Using Page Devices Page Device Parameters In-RIP Trapping Output Device Dictionary Rendering CIE-Based Color to Device Color Conversions among Device Color Spaces Transfer Functions Halftones Scan Conversion Details Operators Operator Summary Operator Details LanguageLevel Feature Summary LanguageLevel 3 Features LanguageLevel 2 Features Incompatibilities Implementation Limits Typical Limits Virtual Memory Use Interpreter Parameters Properties of User and System Parameters Defined User and System Parameters Details of User and System Parameters Device Parameters Compatibility Strategies The LanguageLevel Approach When to Provide Compatibility Compatibility Techniques Installing Emulations Character Sets and Encoding Vectors Times Family Helvetica Family Courier Family Symbol Standard Latin Character Set StandardEncoding Encoding Vector ISOLatin1Encoding Encoding Vector CE Encoding Vector Expert Character Set Expert Encoding Vector ExpertSubset Encoding Vector Symbol Character Set 786 Symbol Encoding Vector System Name Encodings Operator Usage Guidelines Bibliography Index

rawnote:
This new edition defines PostScript Language Level 3. An electronic version of the book is available at the Adobe Web site, and is also included in a CD-ROM attached to the book.

rawTOC:
Preface \\ Introduction \\ About This Manual \\ Evolution of the PostScript Language \\ LanguageLevel 3 Overview \\ Related Publications \\ Copyrights and Trademarks \\ Basic Ideas \\ Raster Output Devices \\ Scan Conversion \\ Page Description Languages \\ Using the PostScript Language \\ Language \\ Interpreter \\ Syntax \\ Data Types and Objects \\ Stacks \\ Execution \\ Overview of Basic Operators \\ Memory Management \\ File Input and Output \\ Named Resources \\ Functions \\ Errors \\ Early Name Binding \\ Filtered Files Details \\ Binary Encoding Details \\ Graphics \\ Imaging Model \\ Graphics State \\ Coordinate Systems and Transformations \\ Path Construction \\ Painting \\ User Paths \\ Forms \\ Color Spaces \\ Patterns \\ Images \\ Fonts \\ Organization and Use of Fonts \\ Font Dictionaries \\ Character Encoding \\ Glyph Metric Information \\ Font Cache \\ Unique ID Generation \\ Type 3 Fonts \\ Additional Base Font Types \\ Font Derivation and Modification \\ Composite Fonts \\ CID-Keyed Fonts \\ Device Control \\ Using Page Devices \\ Page Device Parameters \\ In-RIP Trapping \\ Output Device Dictionary \\ Rendering \\ CIE-Based Color to Device Color \\ Conversions among Device Color Spaces \\ Transfer Functions \\ Halftones \\ Scan Conversion Details \\ Operators \\ Operator Summary \\ Operator Details \\ LanguageLevel Feature Summary \\ LanguageLevel 3 Features \\ LanguageLevel 2 Features \\ Incompatibilities \\ Implementation Limits \\ Typical Limits \\ Virtual Memory Use \\ Interpreter Parameters \\ Properties of User and System Parameters \\ Defined User and System Parameters \\ Details of User and System Parameters \\ Device Parameters \\ Compatibility Strategies \\ The LanguageLevel Approach \\ When to Provide Compatibility \\ Compatibility Techniques \\ Installing Emulations \\ Character Sets and Encoding Vectors \\ Times Family \\ Helvetica Family \\ Courier Family \\ Symbol \\ Standard Latin Character Set \\ StandardEncoding Encoding Vector \\ ISOLatin1Encoding Encoding Vector \\ CE Encoding Vector \\ Expert Character Set \\ Expert Encoding Vector \\ ExpertSubset Encoding Vector \\ Symbol Character Set 786 \\ Symbol Encoding Vector \\ System Name Encodings \\ Operator Usage Guidelines \\ Bibliography \\ Index

entry:
@Book{Adobe:1999:PLR,
  author =       "{Adobe Systems Incorporated}",
  title =        "{PostScript} Language Reference",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Third",
  pages =        "xii + 897",
  year =         "1999",
  ISBN =         "0-201-37922-8",
  ISBN-13 =      "978-0-201-37922-8",
  LCCN =         "QA76.73.P67 P67 1999",
  bibdate =      "Tue Dec 05 18:14:16 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "This new edition defines PostScript Language Level 3.
                 An electronic version of the book is available at the
                 Adobe Web site, and is also included in a CD-ROM
                 attached to the book.",
  price =        "US\$49.95, CDN\$74.95",
  URL =          "http://partners.adobe.com/asn/developer/PDFS/TN/PLRM.pdf;
                 http://partners.adobe.com/supportservice/devrelations/PDFS/TN/PLRM.pdf",
  acknowledgement = ack-nhfb,
  tableofcontents = "Preface \\
                 Introduction \\
                 About This Manual \\
                 Evolution of the PostScript Language \\
                 LanguageLevel 3 Overview \\
                 Related Publications \\
                 Copyrights and Trademarks \\
                 Basic Ideas \\
                 Raster Output Devices \\
                 Scan Conversion \\
                 Page Description Languages \\
                 Using the PostScript Language \\
                 Language \\
                 Interpreter \\
                 Syntax \\
                 Data Types and Objects \\
                 Stacks \\
                 Execution \\
                 Overview of Basic Operators \\
                 Memory Management \\
                 File Input and Output \\
                 Named Resources \\
                 Functions \\
                 Errors \\
                 Early Name Binding \\
                 Filtered Files Details \\
                 Binary Encoding Details \\
                 Graphics \\
                 Imaging Model \\
                 Graphics State \\
                 Coordinate Systems and Transformations \\
                 Path Construction \\
                 Painting \\
                 User Paths \\
                 Forms \\
                 Color Spaces \\
                 Patterns \\
                 Images \\
                 Fonts \\
                 Organization and Use of Fonts \\
                 Font Dictionaries \\
                 Character Encoding \\
                 Glyph Metric Information \\
                 Font Cache \\
                 Unique ID Generation \\
                 Type 3 Fonts \\
                 Additional Base Font Types \\
                 Font Derivation and Modification \\
                 Composite Fonts \\
                 CID-Keyed Fonts \\
                 Device Control \\
                 Using Page Devices \\
                 Page Device Parameters \\
                 In-RIP Trapping \\
                 Output Device Dictionary \\
                 Rendering \\
                 CIE-Based Color to Device Color \\
                 Conversions among Device Color Spaces \\
                 Transfer Functions \\
                 Halftones \\
                 Scan Conversion Details \\
                 Operators \\
                 Operator Summary \\
                 Operator Details \\
                 LanguageLevel Feature Summary \\
                 LanguageLevel 3 Features \\
                 LanguageLevel 2 Features \\
                 Incompatibilities \\
                 Implementation Limits \\
                 Typical Limits \\
                 Virtual Memory Use \\
                 Interpreter Parameters \\
                 Properties of User and System Parameters \\
                 Defined User and System Parameters \\
                 Details of User and System Parameters \\
                 Device Parameters \\
                 Compatibility Strategies \\
                 The LanguageLevel Approach \\
                 When to Provide Compatibility \\
                 Compatibility Techniques \\
                 Installing Emulations \\
                 Character Sets and Encoding Vectors \\
                 Times Family \\
                 Helvetica Family \\
                 Courier Family \\
                 Symbol \\
                 Standard Latin Character Set \\
                 StandardEncoding Encoding Vector \\
                 ISOLatin1Encoding Encoding Vector \\
                 CE Encoding Vector \\
                 Expert Character Set \\
                 Expert Encoding Vector \\
                 ExpertSubset Encoding Vector \\
                 Symbol Character Set 786 \\
                 Symbol Encoding Vector \\
                 System Name Encodings \\
                 Operator Usage Guidelines \\
                 Bibliography \\
                 Index",
}


bibtype: book
filename: master.bib
label: Adobe:2000:PRA
author: Adobe Systems Incorporated
title: PDF Reference: Adobe Portable Document Format, Version 1.3
publisher: pub-AW
address: pub-AW:adr
edition: Second
pages: xvi + 679
year: 2000
ISBN: 0-201-61588-6 (paperback) OR 0201615886 (paperback)
ISBN13: 978-0-201-61588-3 (paperback) OR 9780201615883 (paperback)
LCCN: QA76.76.T49 P38 2000
bibdate: Wed Sep 20 11:06:40 2000
bibtimestamp: 2000.09.20 11:06:40 ???
URL: http://partners.adobe.com/asn/developer/acrosdk/DOCS/PDFRef.pdf
acknowledgement: ack-nhfb
rawauthor: {Adobe Systems Incorporated}
rawtitle: {PDF} Reference: {Adobe} Portable Document Format, Version 1.3
bibsource:
https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/postscri.bib

entry:
@Book{Adobe:2000:PRA,
  author =       "{Adobe Systems Incorporated}",
  title =        "{PDF} Reference: {Adobe} Portable Document Format,
                 Version 1.3",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "xvi + 679",
  year =         "2000",
  ISBN =         "0-201-61588-6 (paperback)",
  ISBN-13 =      "978-0-201-61588-3 (paperback)",
  LCCN =         "QA76.76.T49 P38 2000",
  bibdate =      "Wed Sep 20 11:06:40 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/postscri.bib",
  price =        "US\$49.95",
  URL =          "http://partners.adobe.com/asn/developer/acrosdk/DOCS/PDFRef.pdf",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Adobe:AT1.190
author: Adobe Systems Incorporated
title: Adobe Type 1 Font Format---Version 1.1
publisher: pub-AW
address: pub-AW:adr
pages: iii + 103
month: aug
monthnumber: 8
year: 1990
ISBN: 0-201-57044-0 OR 0201570440
ISBN13: 978-0-201-57044-1 OR 9780201570441
LCCN: QA76.73.P67 A36 1990
bibdate: Sat Oct 28 08:24:48 2000
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2000.10.28 08:24:48 ???
URL: http://partners.adobe.com/asn/developer/pdfs/tn/T1_SPEC.PDF
acknowledgement: ack-nhfb
rawauthor: Adobe Systems Incorporated
rawtitle: {Adobe} Type 1 Font Format---Version 1.1
entry:
@Book{Adobe:AT1.190,
  author =       "Adobe Systems Incorporated",
  title =        "{Adobe} Type 1 Font Format---Version 1.1",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "iii + 103",
  month =        aug,
  year =         "1990",
  ISBN =         "0-201-57044-0",
  ISBN-13 =      "978-0-201-57044-1",
  LCCN =         "QA76.73.P67 A36 1990",
  bibdate =      "Sat Oct 28 08:24:48 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  price =        "US\$14.95",
  URL =          "http://partners.adobe.com/asn/developer/pdfs/tn/T1_SPEC.PDF",
  acknowledgement = ack-nhfb,
}


bibtype: misc
filename: master.bib
label: Adobe:colophon
author: Adobe Systems Incorporated
title: Colophon: Adobe Systems News Publication
pages: iii + 103
bibdate: Sat Oct 28 08:25:09 2000
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2000.10.28 08:25:09 ???
acknowledgement: ack-nhfb
rawauthor: Adobe Systems Incorporated
rawtitle: {Colophon}: {Adobe Systems News} {Publication}
entry:
@Misc{Adobe:colophon,
  author =       "Adobe Systems Incorporated",
  title =        "{Colophon}: {Adobe Systems News} {Publication}",
  bibdate =      "Sat Oct 28 08:25:09 2000",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
}


bibtype: techreport
filename: master.bib
label: Adobe:docstruct-spec
author: PostScript Developer Support Group
title: Document Structuring Conventions Specification, Version 2.1
number: PN LPS5001
institution: pub-ADOBE
address: pub-ADOBE:adr
pages: iii + 103
month: jan
monthnumber: 1
year: 1989
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
acknowledgement: ack-nhfb
rawauthor: {PostScript Developer Support Group}
rawtitle: {Document Structuring Conventions} Specification, Version 2.1
note:
Available electronically from path |ps-file-server@adobe.com| in response to an e-mail request tt send Documents path |struct.ps.Zba|. The request tt send Index will return a complete index for the server.

rawnote:
Available electronically from \path|ps-file-server@adobe.com| in response to an e-mail request {\tt send Documents \path|struct.ps.Zba|}. The request {\tt send Index} will return a complete index for the server.

entry:
@TechReport{Adobe:docstruct-spec,
  author =       "{PostScript Developer Support Group}",
  title =        "{Document Structuring Conventions} Specification,
                 Version 2.1",
  number =       "PN LPS5001",
  institution =  pub-ADOBE,
  address =      pub-ADOBE:adr,
  month =        jan # " 16",
  year =         "1989",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "Available electronically from
                 \path|ps-file-server@adobe.com| in response to an
                 e-mail request {\tt send Documents
                 \path|struct.ps.Zba|}. The request {\tt send Index}
                 will return a complete index for the server.",
  acknowledgement = ack-nhfb,
}


bibtype: techreport
filename: master.bib
label: Adobe:epsf-spec
author: Adobe PostScript Developer Support Group
title: Encapsulated PostScript Files Specification Version 2.0
number: PN LPS5002
institution: pub-ADOBE
address: pub-ADOBE:adr
pages: iii + 103
month: jun
monthnumber: 6
year: 1989
bibdate: Sat Aug 27 10:55:59 1994
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 1994.08.27 10:55:59 ???
acknowledgement: ack-nhfb
rawauthor: {Adobe PostScript Developer Support Group}
rawtitle: {Encapsulated PostScript Files} Specification Version 2.0
note:
Available electronically from path |ps-file-server@adobe.com| in response to an e-mail request tt send Documents EPSF.ps.Zba. The request tt send Index will return a complete index for the server. The version 3.0 specification is published in cite [Appendix~H]Adobe:1990:PLR.

rawnote:
Available electronically from \path|ps-file-server@adobe.com| in response to an e-mail request {\tt send Documents EPSF.ps.Zba}. The request {\tt send Index} will return a complete index for the server. The version 3.0 specification is published in \cite[Appendix~H]{Adobe:1990:PLR}.

entry:
@TechReport{Adobe:epsf-spec,
  author =       "{Adobe PostScript Developer Support Group}",
  title =        "{Encapsulated PostScript Files} Specification Version
                 2.0",
  number =       "PN LPS5002",
  institution =  pub-ADOBE,
  address =      pub-ADOBE:adr,
  month =        jun # " 5",
  year =         "1989",
  bibdate =      "Sat Aug 27 10:55:59 1994",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "Available electronically from
                 \path|ps-file-server@adobe.com| in response to an
                 e-mail request {\tt send Documents EPSF.ps.Zba}. The
                 request {\tt send Index} will return a complete index
                 for the server. The version 3.0 specification is
                 published in \cite[Appendix~H]{Adobe:1990:PLR}.",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Aho:1972:TPT
author: Alfred V. Aho and Jeffrey D. Ullman
title: The Theory of Parsing, Translation, and Compiling. I: Parsing
volume: I
publisher: pub-PH
address: pub-PH:adr
pages: xviii + 542
year: 1972
ISBN: 0-13-914556-7 OR 0139145567
ISBN13: 978-0-13-914556-8 OR 9780139145568
LCCN: QA76.6 .A286 1972-73
bibdate: Wed Dec 15 15:01:28 1993
bibtimestamp: 1993.12.15 15:01:28 ???
acknowledgement: ack-nhfb
rawauthor: Alfred V. Aho and Jeffrey D. Ullman
rawtitle: The Theory of Parsing, Translation, and Compiling. {I}: Parsing
bibsource:
https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/string-matching.bib

TOC:
0: Mathematical preliminaries 1: An introduction to compiling 2: Elements of language theory 3: Theory of translation 4: General parsing methods 5: One-pass no backtrack parsing 6: Limited backtrack parsing algorithms

rawTOC:
0: Mathematical preliminaries \\ 1: An introduction to compiling \\ 2: Elements of language theory \\ 3: Theory of translation \\ 4: General parsing methods \\ 5: One-pass no backtrack parsing \\ 6: Limited backtrack parsing algorithms

entry:
@Book{Aho:1972:TPT,
  author =       "Alfred V. Aho and Jeffrey D. Ullman",
  title =        "The Theory of Parsing, Translation, and Compiling.
                 {I}: Parsing",
  volume =       "I",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xviii + 542",
  year =         "1972",
  ISBN =         "0-13-914556-7",
  ISBN-13 =      "978-0-13-914556-8",
  LCCN =         "QA76.6 .A286 1972-73",
  bibdate =      "Wed Dec 15 15:01:28 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "0: Mathematical preliminaries \\
                 1: An introduction to compiling \\
                 2: Elements of language theory \\
                 3: Theory of translation \\
                 4: General parsing methods \\
                 5: One-pass no backtrack parsing \\
                 6: Limited backtrack parsing algorithms",
}


bibtype: book
filename: master.bib
label: Aho:1973:TPT
author: Alfred V. Aho and Jeffrey D. Ullman
title: The Theory of Parsing, Translation, and Compiling. II. Compiling
volume: II
publisher: pub-PH
address: pub-PH:adr
pages: xiii + 460
year: 1973
ISBN: 0-13-914564-8 OR 0139145648
ISBN13: 978-0-13-914564-3 OR 9780139145643
LCCN: QA76.6 .A286 1972-73
bibdate: Wed Dec 15 15:01:25 1993
bibtimestamp: 1993.12.15 15:01:25 ???
acknowledgement: ack-nhfb
rawauthor: Alfred V. Aho and Jeffrey D. Ullman
rawtitle: The Theory of Parsing, Translation, and Compiling. {II}. {Compiling}
bibsource:
https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/string-matching.bib

TOC:
7: Techniques for parser optimization 8: Theory of deterministic parsing 9: Translation and code generation 10: Bookkeeping 11: Code optimization

rawTOC:
7: Techniques for parser optimization \\ 8: Theory of deterministic parsing \\ 9: Translation and code generation \\ 10: Bookkeeping \\ 11: Code optimization

entry:
@Book{Aho:1973:TPT,
  author =       "Alfred V. Aho and Jeffrey D. Ullman",
  title =        "The Theory of Parsing, Translation, and Compiling.
                 {II}. {Compiling}",
  volume =       "II",
  publisher =    pub-PH,
  address =      pub-PH:adr,
  pages =        "xiii + 460",
  year =         "1973",
  ISBN =         "0-13-914564-8",
  ISBN-13 =      "978-0-13-914564-3",
  LCCN =         "QA76.6 .A286 1972-73",
  bibdate =      "Wed Dec 15 15:01:25 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "7: Techniques for parser optimization \\
                 8: Theory of deterministic parsing \\
                 9: Translation and code generation \\
                 10: Bookkeeping \\
                 11: Code optimization",
}


bibtype: book
filename: master.bib
label: Aho:1974:DAC
author: Alfred V. Aho and John E. Hopcroft and Jeffrey D. Ullman
title: The Design and Analysis of Computer Algorithms
publisher: pub-AW
address: pub-AW:adr
pages: x + 470
year: 1974
ISBN: 0-201-00029-6 OR 0201000296
ISBN13: 978-0-201-00029-0 OR 9780201000290
LCCN: QA76.6 .A284 1974
bibdate: Tue Dec 14 22:34:07 1993
bibtimestamp: 1993.12.14 22:34:07 ???
acknowledgement: ack-nhfb
rawauthor: Alfred V. Aho and John E. Hopcroft and Jeffrey D. Ullman
rawtitle: The Design and Analysis of Computer Algorithms
bibsource:
https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/string-matching.bib

TOC:
1. Models of computation 2. Design of efficient algorithms 3. Sorting and order statistics 4. Data structures for set manipulation problems 5. Algorithms on graphs 6. Matrix multiplication and related operations 7. The Fast Fourier Transform and its applications 8. Integer and polynomial arithmetic 9. Pattern-matching algorithms 10. NP-complete problems 11. Some provably intractable problems 12. Lower bounds on numbers of arithmetic operations

rawTOC:
1. Models of computation \\ 2. Design of efficient algorithms \\ 3. Sorting and order statistics \\ 4. Data structures for set manipulation problems \\ 5. Algorithms on graphs \\ 6. Matrix multiplication and related operations \\ 7. The Fast Fourier Transform and its applications \\ 8. Integer and polynomial arithmetic \\ 9. Pattern-matching algorithms \\ 10. NP-complete problems \\ 11. Some provably intractable problems \\ 12. Lower bounds on numbers of arithmetic operations

entry:
@Book{Aho:1974:DAC,
  author =       "Alfred V. Aho and John E. Hopcroft and Jeffrey D.
                 Ullman",
  title =        "The Design and Analysis of Computer Algorithms",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "x + 470",
  year =         "1974",
  ISBN =         "0-201-00029-6",
  ISBN-13 =      "978-0-201-00029-0",
  LCCN =         "QA76.6 .A284 1974",
  bibdate =      "Tue Dec 14 22:34:07 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/string-matching.bib",
  acknowledgement = ack-nhfb,
  tableofcontents = "1. Models of computation \\
                 2. Design of efficient algorithms \\
                 3. Sorting and order statistics \\
                 4. Data structures for set manipulation problems \\
                 5. Algorithms on graphs \\
                 6. Matrix multiplication and related operations \\
                 7. The Fast Fourier Transform and its applications \\
                 8. Integer and polynomial arithmetic \\
                 9. Pattern-matching algorithms \\
                 10. NP-complete problems \\
                 11. Some provably intractable problems \\
                 12. Lower bounds on numbers of arithmetic operations",
}


bibtype: book
filename: master.bib
label: Aho:1977:PCD
author: Alfred V. Aho and Jeffrey D. Ullman
title: Principles of Compiler Design
publisher: pub-AW
address: pub-AW:adr
pages: x + 604
year: 1977
ISBN: 0-201-00022-9 (hardcover), 0-201-10073-8 OR 0201000229 (hardcover), 0201100738
ISBN13: 978-0-201-00022-1 (hardcover), 978-0-201-10073-0 OR 9780201000221 (hardcover), 9780201100730
LCCN: QA76.6 .A285 1977
bibdate: Tue Dec 14 22:34:24 1993
bibtimestamp: 1993.12.14 22:34:24 ???
note: See also the much expanded subsequent book cite Aho:1986:CPC.
remark: This is commonly called the ``green dragon'' book, after its colorful cover design.
acknowledgement: ack-nhfb
rawauthor: Alfred V. Aho and Jeffrey D. Ullman
rawnote: See also the much expanded subsequent book \cite{Aho:1986:CPC}.
rawtitle: Principles of Compiler Design
bibsource:
https://www.math.utah.edu/pub/tex/bib/fortran1.bib; https://www.math.utah.edu/pub/tex/bib/fortran2.bib; https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/unix.bib

TOC:
1: Introduction to Compilers 1.1 Compilers and translators / 1 1.2 Why do we need translators? / 3 1.3 The structure of a compiler / 5 1.4 Lexical analysis / 10 1.5 Syntax analysis / 12 1.6 Intermediate code generation / 13 1.7 Optimization / 17 1.8 Code generation / 19 1.9 Bookkeeping / 20 1.10 Error handling / 21 1.11 Compiler-writing tools / 21 1.12 Getting started / 23 2: Programming Languages 2.1 High-level programming languages / 26 2.2 Definitions of programming languages / 28 2.3 The lexical and syntactic structure of a language / 32 2.4 Data elements / 34 2.5 Data structures / 38 2.6 Operators / 45 2.7 Assignment / 50 2.8 Statements / 53 2.9 Program units / 55 2.10 Data environments / 57 2.11 Parameter transmission / 59 2.12 Storage management / 63 3: Finite Automata and Lexical Analysis 3.1 The role of the lexical analyzer 7 / 4 3.2 A simple approach to the design of lexical analyzers / 76 3.3 Regular expressions / 82 3.4 Finite automata / 88 3.5 From regular expressions to finite automata / 95 3.6 Minimizing the number of slates of a DFA / 99 3.7 A language for specifying lexical analyzers / 103 3.8 Implementation of a lexical analyzer / 109 3.9 The scanner generator as Swiss army knife / 118 4: The Syntactic Specification of Programming Languages 4.1 Context-free grammars / 126 4.2 Derivations and parse trees / 129 4.3 Capabilities of context-free grammars / 136 5: Basic Parsing Techniques 5.1 Parsers / 146 5.2 Shift--reduce parsing / 150 5.3 Operator-precedence parsing / 158 5.4 Top-down parsing / 174 5.5 Predictive parsers / 184 6: Automatic Construction of Efficient Parsers 6.1 LR parsers / 198 6.2 The canonical collection of LR(0) items / 204 6.3 Constructing SLR parsing tables / 211 6.4 Constructing canonical LR parsing tables / 214 6.5 Constructing LALR parsing tables / 219 6.6 Using ambiguous grammars / 225 6.7 An automatic parser generator / 229 6.8 Implementation of LR parsing tables / 233 6.9 Constructing LALR sets of items / 236 7: Syntax-Directed Translation 7.1 Syntax-directed translation schemes / 246 7.2 Implementation of syntax-directed translators / 249 7.3 Intermediate code / 254 7.4 Postfix notation / 254 7.5 Parse trees and syntax trees / 258 7.6 Three-address code, quadruples, and triples / 259 7.7 Translation of assignment statements / 265 7.8 Boolean expressions / 271 7.9 Statements that alter the flow of control / 281 7.10 Postfix translations / 286 7.11 Translation with a top-down parser / 290 8: More About Translation 8.1 Array references in arithmetic expressions / 296 8.2 Procedure calls / 303 8.3 Declarations / 307 8.4 Case statements / 308 8.5 Record structures / 312 8.6 PL/I-style structures / 317 9: Symbol Tables 9.1 The contents of a symbol table / 328 9.2 Data structures for symbol tables / 336 9.3 Representing scope information / 341 10: Run-time Storage Administration 10.1 Implementation of a simple stack allocation scheme / 351 10.2 Implementation of block-structured languages / 356 10.3 Storage allocation in FORTRAN / 364 10.4 Storage allocation in block-structured languages / 377 11: Error Detection and Recovery 11.1 Errors / 382 11.2 Lexical-phase errors / 388 11.3 Syntactic-phase errors / 391 11.4 Semantic errors / 402 12: Introduction to Code Optimization 12.1 The principal sources of optimization / 408 12.2 Loop optimization / 410 12.3 The DAG representation of basic blocks / 418 12.4 Value numbers and algebraic laws / 427 12.5 Global data-flow analysis / 429 13: More About Loop Optimization 13.1 Dominators / 442 13.2 Reducible flow graphs / 447 13.3 Depth-first search / 449 13.4 Loop-invariant computations / 454 13.5 Induction variable elimination / 466 13.6 Some other loop optimizations / 471 14: More About Data-Flow Analysis 14.1 Reaching definitions again / 478 14.2 Available expressions / 482 14.3 Copy propagation / 487 14.4 Backward flow problems / 489 14.5 Very busy expressions and code hoisting / 491 14.6 The four kinds of data-flow analysis problems / 497 14.7 Handling pointers / 499 14.8 Interprocedural data-flow analysis / 504 14.9 Putting it all together / 511 15: Code Generation 15.1 Object programs / 518 15.2 Problems in code generation / 521 15.3 A machine model / 523 15.4 A simple code generator / 525 15.5 Register allocation and assignment / 533 15.6 Code generation from DAG's / 537 15.7 Peephole optimization / 548 Appendix A: A Look at Some Compilers A.1 The C compilers / 557 A.2 The FORTRAN H compiler / 559 A.3 The BLISS/11 compiler / 561 Appendix B: A Compiler Project B.1 Introduction / 563 B.2 A PASCAL Subset / 563 B.3 Program structure / 566 B.4 Lexical conventions / 566 B.5 Suggested exercises / 567 B.6 Some extensions / 569 Bibliography / 570 Index / 592

rawTOC:
1: Introduction to Compilers \\ 1.1 Compilers and translators / 1 \\ 1.2 Why do we need translators? / 3 \\ 1.3 The structure of a compiler / 5 \\ 1.4 Lexical analysis / 10 \\ 1.5 Syntax analysis / 12 \\ 1.6 Intermediate code generation / 13 \\ 1.7 Optimization / 17 \\ 1.8 Code generation / 19 \\ 1.9 Bookkeeping / 20 \\ 1.10 Error handling / 21 \\ 1.11 Compiler-writing tools / 21 \\ 1.12 Getting started / 23 \\ 2: Programming Languages \\ 2.1 High-level programming languages / 26 \\ 2.2 Definitions of programming languages / 28 \\ 2.3 The lexical and syntactic structure of a language / 32 \\ 2.4 Data elements / 34 \\ 2.5 Data structures / 38 \\ 2.6 Operators / 45 \\ 2.7 Assignment / 50 \\ 2.8 Statements / 53 \\ 2.9 Program units / 55 \\ 2.10 Data environments / 57 \\ 2.11 Parameter transmission / 59 \\ 2.12 Storage management / 63 \\ 3: Finite Automata and Lexical Analysis \\ 3.1 The role of the lexical analyzer 7 / 4 \\ 3.2 A simple approach to the design of lexical analyzers / 76 \\ 3.3 Regular expressions / 82 \\ 3.4 Finite automata / 88 \\ 3.5 From regular expressions to finite automata / 95 \\ 3.6 Minimizing the number of slates of a DFA / 99 \\ 3.7 A language for specifying lexical analyzers / 103 \\ 3.8 Implementation of a lexical analyzer / 109 \\ 3.9 The scanner generator as Swiss army knife / 118 \\ 4: The Syntactic Specification of Programming Languages \\ 4.1 Context-free grammars / 126 \\ 4.2 Derivations and parse trees / 129 \\ 4.3 Capabilities of context-free grammars / 136 \\ 5: Basic Parsing Techniques \\ 5.1 Parsers / 146 \\ 5.2 Shift--reduce parsing / 150 \\ 5.3 Operator-precedence parsing / 158 \\ 5.4 Top-down parsing / 174 \\ 5.5 Predictive parsers / 184 \\ 6: Automatic Construction of Efficient Parsers \\ 6.1 LR parsers / 198 \\ 6.2 The canonical collection of LR(0) items / 204 \\ 6.3 Constructing SLR parsing tables / 211 \\ 6.4 Constructing canonical LR parsing tables / 214 \\ 6.5 Constructing LALR parsing tables / 219 \\ 6.6 Using ambiguous grammars / 225 \\ 6.7 An automatic parser generator / 229 \\ 6.8 Implementation of LR parsing tables / 233 \\ 6.9 Constructing LALR sets of items / 236 \\ 7: Syntax-Directed Translation \\ 7.1 Syntax-directed translation schemes / 246 \\ 7.2 Implementation of syntax-directed translators / 249 \\ 7.3 Intermediate code / 254 \\ 7.4 Postfix notation / 254 \\ 7.5 Parse trees and syntax trees / 258 \\ 7.6 Three-address code, quadruples, and triples / 259 \\ 7.7 Translation of assignment statements / 265 \\ 7.8 Boolean expressions / 271 \\ 7.9 Statements that alter the flow of control / 281 \\ 7.10 Postfix translations / 286 \\ 7.11 Translation with a top-down parser / 290 \\ 8: More About Translation \\ 8.1 Array references in arithmetic expressions / 296 \\ 8.2 Procedure calls / 303 \\ 8.3 Declarations / 307 \\ 8.4 Case statements / 308 \\ 8.5 Record structures / 312 \\ 8.6 PL/I-style structures / 317 \\ 9: Symbol Tables \\ 9.1 The contents of a symbol table / 328 \\ 9.2 Data structures for symbol tables / 336 \\ 9.3 Representing scope information / 341 \\ 10: Run-time Storage Administration \\ 10.1 Implementation of a simple stack allocation scheme / 351 \\ 10.2 Implementation of block-structured languages / 356 \\ 10.3 Storage allocation in FORTRAN / 364 \\ 10.4 Storage allocation in block-structured languages / 377 \\ 11: Error Detection and Recovery \\ 11.1 Errors / 382 \\ 11.2 Lexical-phase errors / 388 \\ 11.3 Syntactic-phase errors / 391 \\ 11.4 Semantic errors / 402 \\ 12: Introduction to Code Optimization \\ 12.1 The principal sources of optimization / 408 \\ 12.2 Loop optimization / 410 \\ 12.3 The DAG representation of basic blocks / 418 \\ 12.4 Value numbers and algebraic laws / 427 \\ 12.5 Global data-flow analysis / 429 \\ 13: More About Loop Optimization \\ 13.1 Dominators / 442 \\ 13.2 Reducible flow graphs / 447 \\ 13.3 Depth-first search / 449 \\ 13.4 Loop-invariant computations / 454 \\ 13.5 Induction variable elimination / 466 \\ 13.6 Some other loop optimizations / 471 \\ 14: More About Data-Flow Analysis \\ 14.1 Reaching definitions again / 478 \\ 14.2 Available expressions / 482 \\ 14.3 Copy propagation / 487 \\ 14.4 Backward flow problems / 489 \\ 14.5 Very busy expressions and code hoisting / 491 \\ 14.6 The four kinds of data-flow analysis problems / 497 \\ 14.7 Handling pointers / 499 \\ 14.8 Interprocedural data-flow analysis / 504 \\ 14.9 Putting it all together / 511 \\ 15: Code Generation \\ 15.1 Object programs / 518 \\ 15.2 Problems in code generation / 521 \\ 15.3 A machine model / 523 \\ 15.4 A simple code generator / 525 \\ 15.5 Register allocation and assignment / 533 \\ 15.6 Code generation from DAG's / 537 \\ 15.7 Peephole optimization / 548 \\ Appendix A: A Look at Some Compilers \\ A.1 The C compilers / 557 \\ A.2 The FORTRAN H compiler / 559 \\ A.3 The BLISS/11 compiler / 561 \\ Appendix B: A Compiler Project \\ B.1 Introduction / 563 \\ B.2 A PASCAL Subset / 563 \\ B.3 Program structure / 566 \\ B.4 Lexical conventions / 566 \\ B.5 Suggested exercises / 567 \\ B.6 Some extensions / 569 \\ Bibliography / 570 \\ Index / 592

entry:
@Book{Aho:1977:PCD,
  author =       "Alfred V. Aho and Jeffrey D. Ullman",
  title =        "Principles of Compiler Design",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "x + 604",
  year =         "1977",
  ISBN =         "0-201-00022-9 (hardcover), 0-201-10073-8",
  ISBN-13 =      "978-0-201-00022-1 (hardcover), 978-0-201-10073-0",
  LCCN =         "QA76.6 .A285 1977",
  bibdate =      "Tue Dec 14 22:34:24 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran1.bib;
                 https://www.math.utah.edu/pub/tex/bib/fortran2.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  note =         "See also the much expanded subsequent book
                 \cite{Aho:1986:CPC}.",
  acknowledgement = ack-nhfb,
  remark =       "This is commonly called the ``green dragon'' book,
                 after its colorful cover design.",
  tableofcontents = "1: Introduction to Compilers \\
                 1.1 Compilers and translators / 1 \\
                 1.2 Why do we need translators? / 3 \\
                 1.3 The structure of a compiler / 5 \\
                 1.4 Lexical analysis / 10 \\
                 1.5 Syntax analysis / 12 \\
                 1.6 Intermediate code generation / 13 \\
                 1.7 Optimization / 17 \\
                 1.8 Code generation / 19 \\
                 1.9 Bookkeeping / 20 \\
                 1.10 Error handling / 21 \\
                 1.11 Compiler-writing tools / 21 \\
                 1.12 Getting started / 23 \\
                 2: Programming Languages \\
                 2.1 High-level programming languages / 26 \\
                 2.2 Definitions of programming languages / 28 \\
                 2.3 The lexical and syntactic structure of a language /
                 32 \\
                 2.4 Data elements / 34 \\
                 2.5 Data structures / 38 \\
                 2.6 Operators / 45 \\
                 2.7 Assignment / 50 \\
                 2.8 Statements / 53 \\
                 2.9 Program units / 55 \\
                 2.10 Data environments / 57 \\
                 2.11 Parameter transmission / 59 \\
                 2.12 Storage management / 63 \\
                 3: Finite Automata and Lexical Analysis \\
                 3.1 The role of the lexical analyzer 7 / 4 \\
                 3.2 A simple approach to the design of lexical
                 analyzers / 76 \\
                 3.3 Regular expressions / 82 \\
                 3.4 Finite automata / 88 \\
                 3.5 From regular expressions to finite automata / 95
                 \\
                 3.6 Minimizing the number of slates of a DFA / 99 \\
                 3.7 A language for specifying lexical analyzers / 103
                 \\
                 3.8 Implementation of a lexical analyzer / 109 \\
                 3.9 The scanner generator as Swiss army knife / 118 \\
                 4: The Syntactic Specification of Programming Languages
                 \\
                 4.1 Context-free grammars / 126 \\
                 4.2 Derivations and parse trees / 129 \\
                 4.3 Capabilities of context-free grammars / 136 \\
                 5: Basic Parsing Techniques \\
                 5.1 Parsers / 146 \\
                 5.2 Shift--reduce parsing / 150 \\
                 5.3 Operator-precedence parsing / 158 \\
                 5.4 Top-down parsing / 174 \\
                 5.5 Predictive parsers / 184 \\
                 6: Automatic Construction of Efficient Parsers \\
                 6.1 LR parsers / 198 \\
                 6.2 The canonical collection of LR(0) items / 204 \\
                 6.3 Constructing SLR parsing tables / 211 \\
                 6.4 Constructing canonical LR parsing tables / 214 \\
                 6.5 Constructing LALR parsing tables / 219 \\
                 6.6 Using ambiguous grammars / 225 \\
                 6.7 An automatic parser generator / 229 \\
                 6.8 Implementation of LR parsing tables / 233 \\
                 6.9 Constructing LALR sets of items / 236 \\
                 7: Syntax-Directed Translation \\
                 7.1 Syntax-directed translation schemes / 246 \\
                 7.2 Implementation of syntax-directed translators / 249
                 \\
                 7.3 Intermediate code / 254 \\
                 7.4 Postfix notation / 254 \\
                 7.5 Parse trees and syntax trees / 258 \\
                 7.6 Three-address code, quadruples, and triples / 259
                 \\
                 7.7 Translation of assignment statements / 265 \\
                 7.8 Boolean expressions / 271 \\
                 7.9 Statements that alter the flow of control / 281 \\
                 7.10 Postfix translations / 286 \\
                 7.11 Translation with a top-down parser / 290 \\
                 8: More About Translation \\
                 8.1 Array references in arithmetic expressions / 296
                 \\
                 8.2 Procedure calls / 303 \\
                 8.3 Declarations / 307 \\
                 8.4 Case statements / 308 \\
                 8.5 Record structures / 312 \\
                 8.6 PL/I-style structures / 317 \\
                 9: Symbol Tables \\
                 9.1 The contents of a symbol table / 328 \\
                 9.2 Data structures for symbol tables / 336 \\
                 9.3 Representing scope information / 341 \\
                 10: Run-time Storage Administration \\
                 10.1 Implementation of a simple stack allocation scheme
                 / 351 \\
                 10.2 Implementation of block-structured languages / 356
                 \\
                 10.3 Storage allocation in FORTRAN / 364 \\
                 10.4 Storage allocation in block-structured languages /
                 377 \\
                 11: Error Detection and Recovery \\
                 11.1 Errors / 382 \\
                 11.2 Lexical-phase errors / 388 \\
                 11.3 Syntactic-phase errors / 391 \\
                 11.4 Semantic errors / 402 \\
                 12: Introduction to Code Optimization \\
                 12.1 The principal sources of optimization / 408 \\
                 12.2 Loop optimization / 410 \\
                 12.3 The DAG representation of basic blocks / 418 \\
                 12.4 Value numbers and algebraic laws / 427 \\
                 12.5 Global data-flow analysis / 429 \\
                 13: More About Loop Optimization \\
                 13.1 Dominators / 442 \\
                 13.2 Reducible flow graphs / 447 \\
                 13.3 Depth-first search / 449 \\
                 13.4 Loop-invariant computations / 454 \\
                 13.5 Induction variable elimination / 466 \\
                 13.6 Some other loop optimizations / 471 \\
                 14: More About Data-Flow Analysis \\
                 14.1 Reaching definitions again / 478 \\
                 14.2 Available expressions / 482 \\
                 14.3 Copy propagation / 487 \\
                 14.4 Backward flow problems / 489 \\
                 14.5 Very busy expressions and code hoisting / 491 \\
                 14.6 The four kinds of data-flow analysis problems /
                 497 \\
                 14.7 Handling pointers / 499 \\
                 14.8 Interprocedural data-flow analysis / 504 \\
                 14.9 Putting it all together / 511 \\
                 15: Code Generation \\
                 15.1 Object programs / 518 \\
                 15.2 Problems in code generation / 521 \\
                 15.3 A machine model / 523 \\
                 15.4 A simple code generator / 525 \\
                 15.5 Register allocation and assignment / 533 \\
                 15.6 Code generation from DAG's / 537 \\
                 15.7 Peephole optimization / 548 \\
                 Appendix A: A Look at Some Compilers \\
                 A.1 The C compilers / 557 \\
                 A.2 The FORTRAN H compiler / 559 \\
                 A.3 The BLISS/11 compiler / 561 \\
                 Appendix B: A Compiler Project \\
                 B.1 Introduction / 563 \\
                 B.2 A PASCAL Subset / 563 \\
                 B.3 Program structure / 566 \\
                 B.4 Lexical conventions / 566 \\
                 B.5 Suggested exercises / 567 \\
                 B.6 Some extensions / 569 \\
                 Bibliography / 570 \\
                 Index / 592",
}


bibtype: book
filename: master.bib
label: Aho:1986:CPC
author: Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman
title: Compilers: Principles, Techniques, and Tools
publisher: pub-AW
address: pub-AW:adr
pages: x + 796
year: 1986
LCCN: QA76.76.C65 A371 1986
bibdate: Tue Dec 14 22:33:59 1993
bibtimestamp: 1993.12.14 22:33:59 ???
note: See cite Aho:1977:PCD.
remark: This is commonly called the ``red dragon'' book, after its colorful cover design.
acknowledgement: ack-nhfb
rawauthor: Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman
rawnote: See \cite{Aho:1977:PCD}.
rawtitle: Compilers: Principles, Techniques, and Tools
ISBN:
0-201-10088-6 (hardcover), 0-201-10194-7 (paperback) OR 0201100886 (hardcover), 0201101947 (paperback)

ISBN13:
978-0-201-10088-4 (hardcover), 978-0-201-10194-2 (paperback) OR 9780201100884 (hardcover), 9780201101942 (paperback)

bibsource:
https://www.math.utah.edu/pub/tex/bib/fortran2.bib; https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/unix.bib

TOC:
1: Introduction to Compiling / 1 1.1 Compilers / 1 1.2 Analysis of the source program / 4 1.3 The phases of a compiler / 10 1.4 Cousins of the compiler / 16 1.5 The grouping of phases / 20 1.6 Compiler-construction tools / 22 Bibliographic notes / 23 2: A Simple One-Pass Compiler / 25 2.1 Overview / 25 2.2 Syntax definition / 26 2.3 Syntax-directed translation / 33 2.4 Parsing / 40 2.5 A translator for simple expressions / 48 2.6 Lexical analysis / 54 2.7 Incorporating a symbol table / 60 2.8 Abstract stack machines / 62 2.9 Putting the techniques together / 69 Exercises / 78 Bibliographic notes / 81 3: Lexical Analysis / 83 3.1 The role of the lexical analyzer / 84 3.2 Input buffering / 88 3.3 Specification of tokens / 92 3.4 Recognition of tokens / 98 3.5 A language for specifying lexical analyzers / 105 3.6 Finite automata / 113 3.7 From a regular expression to an NFA / 121 3.8 Design of a lexical analyzer generator / 128 3.9 Optimization of DFA-based pattern matchers / 134 Exercises / 146 Bibliographic notes / 157 4: Syntax Analysis / 159 4.1 The role of the par ser / 160 4.2 Context-free grammars / 165 4.3 Writing a grammar / 172 4.4 Top-down parsing / 181 4.5 Bottom-up par sing / 195 4.6 Operator-precedence parsing / 203 4.7 LR parsers / 215 4.8 Using ambiguous grammars / 247 4.9 Parser generators / 257 Exercises / 267 Bibliographic notes / 277 5: Syntax-Directed Translation / 279 5.1 Syntax-directed definitions / 280 5.2 Construction of syntax trees / 287 5.3 Bottom-up evaluation of S-attributed definitions / 293 5.4 L-attributed definitions / 296 5.5 Top-down translation / 302 5.6 Bottom-up evaluation of inherited attributes / 308 5.7 Recursive evaluators / 316 5.8 Space for attribute values at compile time / 320 5.9 Assigning space at compiler-construction time / 323 5.10 Analysis of syntax-directed definitions / 329 Exercises / 336 Bibliographic notes / 340 6: Type Checking / 343 6.1 Type systems / 344 6.2 Specification of a simple type checker / 348 6.3 Equivalence of type expressions / 352 6.4 Type conversions / 359 6.5 Overloading of functions and operators / 361 6.6 Polymorphic functions / 364 6.7 An algorithm for unification / 376 Exercises / 381 Bibliographic notes / 386 7: Run-Time Environments / 389 7.1 Source language issues / 389 7.2 Storage organization / 396 7.3 Storage-allocation strategies / 401 7.4 Access to nonlocal names / 411 7.5 Parameter passing / 424 7.6 Symbol tables / 429 7.7 Language facilities for dynamic storage allocation / 440 7.8 Dynamic storage allocation techniques / 442 7.9 Storage allocation in Fortran / 446 Exercises / 455 Bibliographic notes / 461 8: Intermediate Code Generation / 463 8.1 Intermediate languages / 464 8.2 Declarations / 473 8.3 Assignment statements / 478 8.4 Boolean expressions / 488 8.5 Case statements / 497 8.6 Back patching / 500 8.7 Procedure calls / 506 Exercises / 508 Bibliographic notes / 511 9: Code Generation / 513 9.1 Issues in the design of a code generator / 514 9.2 The target machine / 519 9.3 Run-time storage management / 522 9.4 Basic blocks and flow graphs / 528 9.5 Next-use information / 534 9.6 A simple code generator / 535 9.7 Register allocation and assignment / 541 9.8 The dag representation of basic blocks / 546 9.9 Peephole optimization / 554 9.10 Generating code from dags / 557 9.11 Dynamic programming code-generation algorithm / 567 9.12 Code-generator generators / 572 Exercises / 580 Bibliographic notes / 583 10: Code Optimization / 585 1O.1 Introduction / 586 10.2 The principal sources of optimization / 592 10.3 Optimization of basic blocks / 598 10.4 Loops in flow graphs / 602 10.5 Introduction to global data-flow analysis / 608 10.6 Iterative solution of data-flow equations / 624 10.7 Code-improving transformations / 633 10.8 Dealing with aliases / 648 10.9 Data-flow analysis of structured flow graphs / 660 10.10 Efficient data-flow algorithms / 671 10.11 A tool for data-flow analysis / 680 10.12 Estimation of types / 694 10.13 Symbolic debugging of optimized code / 703 Exercises / 711 Bibliographic notes / 718 11: Want to Write a Compiler? / 723 11.1 Planning a compiler / 723 11.2 Approaches to compiler development / 725 11.3 The compiler-development environment / 729 11.4 Testing and maintenance / 731 12: A Look at Some Compilers / 733 12.1 EQN, a preprocessor for typesetting mathematics / 733 12.2 Compilers for Pascal / 734 12.3 The C compilers / 735 12.4 The Fortran H compilers / 737 12.5 The Bliss/11 compiler / 740 12.6 Modula-2 optimizing compiler / 742 Appendix A: Compiler Project / 745 A.1 Introduction / 745 A.2 A Pascal subset / 745 A.3 Program structure / 745 A.4 Lexical conventions / 748 A.5 Suggested exercises / 749 A.6 Evolution of the interpreter / 750 A.7 Extensions / 751 Bibliography / 752 Index / 780

shortTOC:
1: Introduction to Compiling / 1 2: A Simple One-Pass Compiler / 25 3: Lexical Analysis / 83 4: Syntax Analysis / 159 5: Syntax-Directed Translation / 279 6: Type Checking / 343 7: Run-Time Environments / 389 8: Intermediate Code Generation / 463 9: Code Generation / 513 10: Code Optimization / 585 11: Want to Write a Compiler? / 723 12: A Look at Some Compilers / 733 Appendix A: Compiler Project / 745 Bibliography / 752 Index / 780

rawshortTOC:
1: Introduction to Compiling / 1 \\ 2: A Simple One-Pass Compiler / 25 \\ 3: Lexical Analysis / 83 \\ 4: Syntax Analysis / 159 \\ 5: Syntax-Directed Translation / 279 \\ 6: Type Checking / 343 \\ 7: Run-Time Environments / 389 \\ 8: Intermediate Code Generation / 463 \\ 9: Code Generation / 513 \\ 10: Code Optimization / 585 \\ 11: Want to Write a Compiler? / 723 \\ 12: A Look at Some Compilers / 733 \\ Appendix A: Compiler Project / 745 \\ Bibliography / 752 \\ Index / 780

rawTOC:
1: Introduction to Compiling / 1 \\ 1.1 Compilers / 1 \\ 1.2 Analysis of the source program / 4 \\ 1.3 The phases of a compiler / 10 \\ 1.4 Cousins of the compiler / 16 \\ 1.5 The grouping of phases / 20 \\ 1.6 Compiler-construction tools / 22 \\ Bibliographic notes / 23 \\ 2: A Simple One-Pass Compiler / 25 \\ 2.1 Overview / 25 \\ 2.2 Syntax definition / 26 \\ 2.3 Syntax-directed translation / 33 \\ 2.4 Parsing / 40 \\ 2.5 A translator for simple expressions / 48 \\ 2.6 Lexical analysis / 54 \\ 2.7 Incorporating a symbol table / 60 \\ 2.8 Abstract stack machines / 62 \\ 2.9 Putting the techniques together / 69 \\ Exercises / 78 \\ Bibliographic notes / 81 \\ 3: Lexical Analysis / 83 \\ 3.1 The role of the lexical analyzer / 84 \\ 3.2 Input buffering / 88 \\ 3.3 Specification of tokens / 92 \\ 3.4 Recognition of tokens / 98 \\ 3.5 A language for specifying lexical analyzers / 105 \\ 3.6 Finite automata / 113 \\ 3.7 From a regular expression to an NFA / 121 \\ 3.8 Design of a lexical analyzer generator / 128 \\ 3.9 Optimization of DFA-based pattern matchers / 134 \\ Exercises / 146 \\ Bibliographic notes / 157 \\ 4: Syntax Analysis / 159 \\ 4.1 The role of the par ser / 160 \\ 4.2 Context-free grammars / 165 \\ 4.3 Writing a grammar / 172 \\ 4.4 Top-down parsing / 181 \\ 4.5 Bottom-up par sing / 195 \\ 4.6 Operator-precedence parsing / 203 \\ 4.7 LR parsers / 215 \\ 4.8 Using ambiguous grammars / 247 \\ 4.9 Parser generators / 257 \\ Exercises / 267 \\ Bibliographic notes / 277 \\ 5: Syntax-Directed Translation / 279 \\ 5.1 Syntax-directed definitions / 280 \\ 5.2 Construction of syntax trees / 287 \\ 5.3 Bottom-up evaluation of S-attributed definitions / 293 \\ 5.4 L-attributed definitions / 296 \\ 5.5 Top-down translation / 302 \\ 5.6 Bottom-up evaluation of inherited attributes / 308 \\ 5.7 Recursive evaluators / 316 \\ 5.8 Space for attribute values at compile time / 320 \\ 5.9 Assigning space at compiler-construction time / 323 \\ 5.10 Analysis of syntax-directed definitions / 329 \\ Exercises / 336 \\ Bibliographic notes / 340 \\ 6: Type Checking / 343 \\ 6.1 Type systems / 344 \\ 6.2 Specification of a simple type checker / 348 \\ 6.3 Equivalence of type expressions / 352 \\ 6.4 Type conversions / 359 \\ 6.5 Overloading of functions and operators / 361 \\ 6.6 Polymorphic functions / 364 \\ 6.7 An algorithm for unification / 376 \\ Exercises / 381 \\ Bibliographic notes / 386 \\ 7: Run-Time Environments / 389 \\ 7.1 Source language issues / 389 \\ 7.2 Storage organization / 396 \\ 7.3 Storage-allocation strategies / 401 \\ 7.4 Access to nonlocal names / 411 \\ 7.5 Parameter passing / 424 \\ 7.6 Symbol tables / 429 \\ 7.7 Language facilities for dynamic storage allocation / 440 \\ 7.8 Dynamic storage allocation techniques / 442 \\ 7.9 Storage allocation in Fortran / 446 \\ Exercises / 455 \\ Bibliographic notes / 461 \\ 8: Intermediate Code Generation / 463 \\ 8.1 Intermediate languages / 464 \\ 8.2 Declarations / 473 \\ 8.3 Assignment statements / 478 \\ 8.4 Boolean expressions / 488 \\ 8.5 Case statements / 497 \\ 8.6 Back patching / 500 \\ 8.7 Procedure calls / 506 \\ Exercises / 508 \\ Bibliographic notes / 511 \\ 9: Code Generation / 513 \\ 9.1 Issues in the design of a code generator / 514 \\ 9.2 The target machine / 519 \\ 9.3 Run-time storage management / 522 \\ 9.4 Basic blocks and flow graphs / 528 \\ 9.5 Next-use information / 534 \\ 9.6 A simple code generator / 535 \\ 9.7 Register allocation and assignment / 541 \\ 9.8 The dag representation of basic blocks / 546 \\ 9.9 Peephole optimization / 554 \\ 9.10 Generating code from dags / 557 \\ 9.11 Dynamic programming code-generation algorithm / 567 \\ 9.12 Code-generator generators / 572 \\ Exercises / 580 \\ Bibliographic notes / 583 \\ 10: Code Optimization / 585 \\ 1O.1 Introduction / 586 \\ 10.2 The principal sources of optimization / 592 \\ 10.3 Optimization of basic blocks / 598 \\ 10.4 Loops in flow graphs / 602 \\ 10.5 Introduction to global data-flow analysis / 608 \\ 10.6 Iterative solution of data-flow equations / 624 \\ 10.7 Code-improving transformations / 633 \\ 10.8 Dealing with aliases / 648 \\ 10.9 Data-flow analysis of structured flow graphs / 660 \\ 10.10 Efficient data-flow algorithms / 671 \\ 10.11 A tool for data-flow analysis / 680 \\ 10.12 Estimation of types / 694 \\ 10.13 Symbolic debugging of optimized code / 703 \\ Exercises / 711 \\ Bibliographic notes / 718 \\ 11: Want to Write a Compiler? / 723 \\ 11.1 Planning a compiler / 723 \\ 11.2 Approaches to compiler development / 725 \\ 11.3 The compiler-development environment / 729 \\ 11.4 Testing and maintenance / 731 \\ 12: A Look at Some Compilers / 733 \\ 12.1 EQN, a preprocessor for typesetting mathematics / 733 \\ 12.2 Compilers for Pascal / 734 \\ 12.3 The C compilers / 735 \\ 12.4 The Fortran H compilers / 737 \\ 12.5 The Bliss/11 compiler / 740 \\ 12.6 Modula-2 optimizing compiler / 742 \\ Appendix A: Compiler Project / 745 \\ A.1 Introduction / 745 \\ A.2 A Pascal subset / 745 \\ A.3 Program structure / 745 \\ A.4 Lexical conventions / 748 \\ A.5 Suggested exercises / 749 \\ A.6 Evolution of the interpreter / 750 \\ A.7 Extensions / 751 \\ Bibliography / 752 \\ Index / 780

entry:
@Book{Aho:1986:CPC,
  author =       "Alfred V. Aho and Ravi Sethi and Jeffrey D. Ullman",
  title =        "Compilers: Principles, Techniques, and Tools",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "x + 796",
  year =         "1986",
  ISBN =         "0-201-10088-6 (hardcover), 0-201-10194-7 (paperback)",
  ISBN-13 =      "978-0-201-10088-4 (hardcover), 978-0-201-10194-2
                 (paperback)",
  LCCN =         "QA76.76.C65 A371 1986",
  bibdate =      "Tue Dec 14 22:33:59 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fortran2.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  note =         "See \cite{Aho:1977:PCD}.",
  acknowledgement = ack-nhfb,
  remark =       "This is commonly called the ``red dragon'' book, after
                 its colorful cover design.",
  shorttableofcontents = "1: Introduction to Compiling / 1 \\
                 2: A Simple One-Pass Compiler / 25 \\
                 3: Lexical Analysis / 83 \\
                 4: Syntax Analysis / 159 \\
                 5: Syntax-Directed Translation / 279 \\
                 6: Type Checking / 343 \\
                 7: Run-Time Environments / 389 \\
                 8: Intermediate Code Generation / 463 \\
                 9: Code Generation / 513 \\
                 10: Code Optimization / 585 \\
                 11: Want to Write a Compiler? / 723 \\
                 12: A Look at Some Compilers / 733 \\
                 Appendix A: Compiler Project / 745 \\
                 Bibliography / 752 \\
                 Index / 780",
  tableofcontents = "1: Introduction to Compiling / 1 \\
                 1.1 Compilers / 1 \\
                 1.2 Analysis of the source program / 4 \\
                 1.3 The phases of a compiler / 10 \\
                 1.4 Cousins of the compiler / 16 \\
                 1.5 The grouping of phases / 20 \\
                 1.6 Compiler-construction tools / 22 \\
                 Bibliographic notes / 23 \\
                 2: A Simple One-Pass Compiler / 25 \\
                 2.1 Overview / 25 \\
                 2.2 Syntax definition / 26 \\
                 2.3 Syntax-directed translation / 33 \\
                 2.4 Parsing / 40 \\
                 2.5 A translator for simple expressions / 48 \\
                 2.6 Lexical analysis / 54 \\
                 2.7 Incorporating a symbol table / 60 \\
                 2.8 Abstract stack machines / 62 \\
                 2.9 Putting the techniques together / 69 \\
                 Exercises / 78 \\
                 Bibliographic notes / 81 \\
                 3: Lexical Analysis / 83 \\
                 3.1 The role of the lexical analyzer / 84 \\
                 3.2 Input buffering / 88 \\
                 3.3 Specification of tokens / 92 \\
                 3.4 Recognition of tokens / 98 \\
                 3.5 A language for specifying lexical analyzers / 105
                 \\
                 3.6 Finite automata / 113 \\
                 3.7 From a regular expression to an NFA / 121 \\
                 3.8 Design of a lexical analyzer generator / 128 \\
                 3.9 Optimization of DFA-based pattern matchers / 134
                 \\
                 Exercises / 146 \\
                 Bibliographic notes / 157 \\
                 4: Syntax Analysis / 159 \\
                 4.1 The role of the par ser / 160 \\
                 4.2 Context-free grammars / 165 \\
                 4.3 Writing a grammar / 172 \\
                 4.4 Top-down parsing / 181 \\
                 4.5 Bottom-up par sing / 195 \\
                 4.6 Operator-precedence parsing / 203 \\
                 4.7 LR parsers / 215 \\
                 4.8 Using ambiguous grammars / 247 \\
                 4.9 Parser generators / 257 \\
                 Exercises / 267 \\
                 Bibliographic notes / 277 \\
                 5: Syntax-Directed Translation / 279 \\
                 5.1 Syntax-directed definitions / 280 \\
                 5.2 Construction of syntax trees / 287 \\
                 5.3 Bottom-up evaluation of S-attributed definitions /
                 293 \\
                 5.4 L-attributed definitions / 296 \\
                 5.5 Top-down translation / 302 \\
                 5.6 Bottom-up evaluation of inherited attributes / 308
                 \\
                 5.7 Recursive evaluators / 316 \\
                 5.8 Space for attribute values at compile time / 320
                 \\
                 5.9 Assigning space at compiler-construction time / 323
                 \\
                 5.10 Analysis of syntax-directed definitions / 329 \\
                 Exercises / 336 \\
                 Bibliographic notes / 340 \\
                 6: Type Checking / 343 \\
                 6.1 Type systems / 344 \\
                 6.2 Specification of a simple type checker / 348 \\
                 6.3 Equivalence of type expressions / 352 \\
                 6.4 Type conversions / 359 \\
                 6.5 Overloading of functions and operators / 361 \\
                 6.6 Polymorphic functions / 364 \\
                 6.7 An algorithm for unification / 376 \\
                 Exercises / 381 \\
                 Bibliographic notes / 386 \\
                 7: Run-Time Environments / 389 \\
                 7.1 Source language issues / 389 \\
                 7.2 Storage organization / 396 \\
                 7.3 Storage-allocation strategies / 401 \\
                 7.4 Access to nonlocal names / 411 \\
                 7.5 Parameter passing / 424 \\
                 7.6 Symbol tables / 429 \\
                 7.7 Language facilities for dynamic storage allocation
                 / 440 \\
                 7.8 Dynamic storage allocation techniques / 442 \\
                 7.9 Storage allocation in Fortran / 446 \\
                 Exercises / 455 \\
                 Bibliographic notes / 461 \\
                 8: Intermediate Code Generation / 463 \\
                 8.1 Intermediate languages / 464 \\
                 8.2 Declarations / 473 \\
                 8.3 Assignment statements / 478 \\
                 8.4 Boolean expressions / 488 \\
                 8.5 Case statements / 497 \\
                 8.6 Back patching / 500 \\
                 8.7 Procedure calls / 506 \\
                 Exercises / 508 \\
                 Bibliographic notes / 511 \\
                 9: Code Generation / 513 \\
                 9.1 Issues in the design of a code generator / 514 \\
                 9.2 The target machine / 519 \\
                 9.3 Run-time storage management / 522 \\
                 9.4 Basic blocks and flow graphs / 528 \\
                 9.5 Next-use information / 534 \\
                 9.6 A simple code generator / 535 \\
                 9.7 Register allocation and assignment / 541 \\
                 9.8 The dag representation of basic blocks / 546 \\
                 9.9 Peephole optimization / 554 \\
                 9.10 Generating code from dags / 557 \\
                 9.11 Dynamic programming code-generation algorithm /
                 567 \\
                 9.12 Code-generator generators / 572 \\
                 Exercises / 580 \\
                 Bibliographic notes / 583 \\
                 10: Code Optimization / 585 \\
                 1O.1 Introduction / 586 \\
                 10.2 The principal sources of optimization / 592 \\
                 10.3 Optimization of basic blocks / 598 \\
                 10.4 Loops in flow graphs / 602 \\
                 10.5 Introduction to global data-flow analysis / 608
                 \\
                 10.6 Iterative solution of data-flow equations / 624
                 \\
                 10.7 Code-improving transformations / 633 \\
                 10.8 Dealing with aliases / 648 \\
                 10.9 Data-flow analysis of structured flow graphs / 660
                 \\
                 10.10 Efficient data-flow algorithms / 671 \\
                 10.11 A tool for data-flow analysis / 680 \\
                 10.12 Estimation of types / 694 \\
                 10.13 Symbolic debugging of optimized code / 703 \\
                 Exercises / 711 \\
                 Bibliographic notes / 718 \\
                 11: Want to Write a Compiler? / 723 \\
                 11.1 Planning a compiler / 723 \\
                 11.2 Approaches to compiler development / 725 \\
                 11.3 The compiler-development environment / 729 \\
                 11.4 Testing and maintenance / 731 \\
                 12: A Look at Some Compilers / 733 \\
                 12.1 EQN, a preprocessor for typesetting mathematics /
                 733 \\
                 12.2 Compilers for Pascal / 734 \\
                 12.3 The C compilers / 735 \\
                 12.4 The Fortran H compilers / 737 \\
                 12.5 The Bliss/11 compiler / 740 \\
                 12.6 Modula-2 optimizing compiler / 742 \\
                 Appendix A: Compiler Project / 745 \\
                 A.1 Introduction / 745 \\
                 A.2 A Pascal subset / 745 \\
                 A.3 Program structure / 745 \\
                 A.4 Lexical conventions / 748 \\
                 A.5 Suggested exercises / 749 \\
                 A.6 Evolution of the interpreter / 750 \\
                 A.7 Extensions / 751 \\
                 Bibliography / 752 \\
                 Index / 780",
}


bibtype: book
filename: master.bib
label: Aho:1988:APL
author: Alfred V. Aho and Brian W. Kernighan and Peter J. Weinberger
title: The AWK Programming Language
publisher: pub-AW
address: pub-AW:adr
pages: x + 210
year: 1988
ISBN: 0-201-07981-X OR 020107981X
ISBN13: 978-0-201-07981-4 OR 9780201079814
LCCN: QA76.73.A95 A35 1988
MRclass: 68N15, 68-01, 68N20, 68N25
bibdate: Sun May 02 07:44:41 1999
bibtimestamp: 1999.05.02 07:44:41 ???
note: See also cite FSF:gawk,MKS:awk,Polytron:polyawk.
ZMnumber: 0751.68009
acknowledgement: ack-nhfb
key: AWK87
rawauthor: Alfred V. Aho and Brian W. Kernighan and Peter J. Weinberger
rawnote: See also \cite{FSF:gawk,MKS:awk,Polytron:polyawk}.
rawtitle: The {AWK} Programming Language
bibsource:
https://www.math.utah.edu/pub/bibnet/subjects/acc-stab-num-alg.bib; https://www.math.utah.edu/pub/bibnet/subjects/han-wri-mat-sci-2ed.bib; https://www.math.utah.edu/pub/tex/bib/css.bib; https://www.math.utah.edu/pub/tex/bib/gnu.bib; https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/unix.bib

TOC:
Preface / 1: An AWK Tutorial / Getting Started / Simple Output / Fancier Output / Selection / Computing with AWK / Control-Flow Statements / Arrays / A Handful of Useful ``One-liners'' / What Next? / 2: The AWK Language / Patterns / Actions / User-Defined Functions / Output / Input / Interaction with Other Programs / Summary / 3: Data Processing / Data Transformation and Reduction / Data Validation / Bundle and Unbundle / Multiline Records / Summary / 4: Reports and Databases / Generating Reports / Packaged Queries / A Relational Database System / Summary / 5: Processing Words / Random Text Generation / Interactive Text-Manipulation / Text Processing / Summary / 6: Little Languages / An Assembler and Interpreter / A Language for Drawing Graphs / A Sort Generator / A Reverse-Polish Calculator / An Infix Calculator / Recursive-Descent Parsing / Summary / 7: Experiments with Algorithms / Sorting / Profiling / Topological Sorting / Make: A File Updating Program / Summary / 8: Epilog / AWK as a Language / Performance / Conclusion / Appendix A: AWK Summary / Appendix B: Answers to Selected Exercises / Index

shortTOC:
1: An AWK Tutorial / 2: The AWK Language / 3: Data Processing / 4: Reports and Databases / 5: Processing Words / 6: Little Languages / 7: Experiments with Algorithms / Make: A File Updating Program / 8: Epilog / Appendix A: AWK Summary / Appendix B: Answers to Selected Exercises / Index

rawshortTOC:
1: An AWK Tutorial / \\ 2: The AWK Language / \\ 3: Data Processing / \\ 4: Reports and Databases / \\ 5: Processing Words / \\ 6: Little Languages / \\ 7: Experiments with Algorithms / \\ Make: A File Updating Program / \\ 8: Epilog / \\ Appendix A: AWK Summary / \\ Appendix B: Answers to Selected Exercises / \\ Index

rawTOC:
Preface / \\ 1: An AWK Tutorial / \\ Getting Started / \\ Simple Output / \\ Fancier Output / \\ Selection / \\ Computing with AWK / \\ Control-Flow Statements / \\ Arrays / \\ A Handful of Useful ``One-liners'' / \\ What Next? / \\ 2: The AWK Language / \\ Patterns / \\ Actions / \\ User-Defined Functions / \\ Output / \\ Input / \\ Interaction with Other Programs / \\ Summary / \\ 3: Data Processing / \\ Data Transformation and Reduction / \\ Data Validation / \\ Bundle and Unbundle / \\ Multiline Records / \\ Summary / \\ 4: Reports and Databases / \\ Generating Reports / \\ Packaged Queries / \\ A Relational Database System / \\ Summary / \\ 5: Processing Words / \\ Random Text Generation / \\ Interactive Text-Manipulation / \\ Text Processing / \\ Summary / \\ 6: Little Languages / \\ An Assembler and Interpreter / \\ A Language for Drawing Graphs / \\ A Sort Generator / \\ A Reverse-Polish Calculator / \\ An Infix Calculator / \\ Recursive-Descent Parsing / \\ Summary / \\ 7: Experiments with Algorithms / \\ Sorting / \\ Profiling / \\ Topological Sorting / \\ Make: A File Updating Program / \\ Summary / \\ 8: Epilog / \\ AWK as a Language / \\ Performance / \\ Conclusion / \\ Appendix A: AWK Summary / \\ Appendix B: Answers to Selected Exercises / \\ Index

entry:
@Book{Aho:1988:APL,
  author =       "Alfred V. Aho and Brian W. Kernighan and Peter J.
                 Weinberger",
  key =          "AWK87",
  title =        "The {AWK} Programming Language",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "x + 210",
  year =         "1988",
  ISBN =         "0-201-07981-X",
  ISBN-13 =      "978-0-201-07981-4",
  LCCN =         "QA76.73.A95 A35 1988",
  MRclass =      "68N15, 68-01, 68N20, 68N25",
  bibdate =      "Sun May 02 07:44:41 1999",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/subjects/acc-stab-num-alg.bib;
                 https://www.math.utah.edu/pub/bibnet/subjects/han-wri-mat-sci-2ed.bib;
                 https://www.math.utah.edu/pub/tex/bib/css.bib;
                 https://www.math.utah.edu/pub/tex/bib/gnu.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib",
  note =         "See also \cite{FSF:gawk,MKS:awk,Polytron:polyawk}.",
  ZMnumber =     "0751.68009",
  acknowledgement = ack-nhfb,
  nb =           "the author order is AKW, but the key looks better as
                 AWK",
  shorttableofcontents = "1: An AWK Tutorial / \\
                 2: The AWK Language / \\
                 3: Data Processing / \\
                 4: Reports and Databases / \\
                 5: Processing Words / \\
                 6: Little Languages / \\
                 7: Experiments with Algorithms / \\
                 Make: A File Updating Program / \\
                 8: Epilog / \\
                 Appendix A: AWK Summary / \\
                 Appendix B: Answers to Selected Exercises / \\
                 Index",
  tableofcontents = "Preface / \\
                 1: An AWK Tutorial / \\
                 Getting Started / \\
                 Simple Output / \\
                 Fancier Output / \\
                 Selection / \\
                 Computing with AWK / \\
                 Control-Flow Statements / \\
                 Arrays / \\
                 A Handful of Useful ``One-liners'' / \\
                 What Next? / \\
                 2: The AWK Language / \\
                 Patterns / \\
                 Actions / \\
                 User-Defined Functions / \\
                 Output / \\
                 Input / \\
                 Interaction with Other Programs / \\
                 Summary / \\
                 3: Data Processing / \\
                 Data Transformation and Reduction / \\
                 Data Validation / \\
                 Bundle and Unbundle / \\
                 Multiline Records / \\
                 Summary / \\
                 4: Reports and Databases / \\
                 Generating Reports / \\
                 Packaged Queries / \\
                 A Relational Database System / \\
                 Summary / \\
                 5: Processing Words / \\
                 Random Text Generation / \\
                 Interactive Text-Manipulation / \\
                 Text Processing / \\
                 Summary / \\
                 6: Little Languages / \\
                 An Assembler and Interpreter / \\
                 A Language for Drawing Graphs / \\
                 A Sort Generator / \\
                 A Reverse-Polish Calculator / \\
                 An Infix Calculator / \\
                 Recursive-Descent Parsing / \\
                 Summary / \\
                 7: Experiments with Algorithms / \\
                 Sorting / \\
                 Profiling / \\
                 Topological Sorting / \\
                 Make: A File Updating Program / \\
                 Summary / \\
                 8: Epilog / \\
                 AWK as a Language / \\
                 Performance / \\
                 Conclusion / \\
                 Appendix A: AWK Summary / \\
                 Appendix B: Answers to Selected Exercises / \\
                 Index",
}


bibtype: book
filename: master.bib
label: Aho:2007:CPT
editor: Alfred V. Aho and Monica S. Lam and Ravi Sethi and Jeffrey D. Ullman
title: Compilers: Principles, Techniques, and Tools
publisher: Pearson/Addison Wesley
address: Boston, MA, USA
edition: Second
pages: xxiv + 1009
year: 2007
LCCN: QA76.76.C65 A37 2007
bibdate: Tue Jan 30 16:21:16 MST 2007
bibtimestamp: 2007.01.30 16:21:16 MST
URL: http://www.loc.gov/catdir/toc/ecip0618/2006024333.html
subject: Compilers (Computer programs)
acknowledgement: ack-nhfb
raweditor: Alfred V. Aho and Monica S. Lam and Ravi Sethi and Jeffrey D. Ullman
rawtitle: Compilers: Principles, Techniques, and Tools
ISBN:
0-321-48681-1 (hardcover), 0-321-49169-6 (paperback) OR 0321486811 (hardcover), 0321491696 (paperback)

ISBN13:
978-0-321-48681-3 (hardcover), 978-0-321-49169-5 (paperback) OR 9780321486813 (hardcover), 9780321491695 (paperback)

bibsource:
https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/unix.bib; z3950.loc.gov:7090/Voyager

abstract:
This new edition of the classic `Dragon' book has been completely revised to include the most recent developments to compiling. The book provides a thorough introduction to compiler design and continues to emphasize the applicability of compiler technology to a broad range of problems in software design and development. The first half of the book is designed for use in an undergraduate compilers course while the second half can be used in a graduate course stressing code optimization.

remark:
Revised edition of cite Aho:1986:CPC. This is commonly called the ``purple dragon'' book, after its colorful cover design.

TOC:
1: Introduction / 1 1.1 Language Processors / 1 1.1.1 Exercises for Section 1.1 / 3 1.2 The Structure of a Compiler / 4 1.2.1 Lexical Analysis / 5 1.2.2 Syntax Analysis / 8 1.2.3 Semantic Analysis / 8 1.2.4 Intermediate Code Generation / 9 1.2.5 Code Optimization / 10 1.2.6 Code Generation / 10 1.2.7 Symbol-Table Management / 11 1.2.8 The Grouping of Phases into Passes / 11 1.2.9 Compiler-Construction Tools / 12 1.3 The Evolution of Programming Languages / 12 1.3.1 The Move to Higher-level Languages / 13 1.3.2 Impacts on Compilers / 14 1.3.3 Exercises for Section 1.3 / 14 1.4 The Science of Building a Compiler / 15 1.4.1 Modeling in Compiler Design and Implementation / 15 1.4.2 The Science of Code Optimization / 15 1.5 Applications of Compiler Technology / 17 1.5.1 Implementation of High-Level Programming Languages / 17 1.5.2 Optimizations for Computer Architectures / 19 1.5.3 Design of New Computer Architectures / 21 1.5.4 Program Translations / 22 1.5.5 Software Productivity Tools / 23 1.6 Programming Language Basics / 25 1.6.1 The Static/Dynamic Distinction / 25 1.6.2 Environments and States / 26 1.6.3 Static Scope and Block Structure / 28 1.6.4 Explicit Access Control / 31 1.6.5 Dynamic Scope / 31 1.6.6 Parameter Passing Mechanisms / 33 1.6.7 Aliasing / 35 1.6.8 Exercises for Section 1.6 / 35 1.7 Summary of Chapter 1 / 36 1.8 References for Chapter 1 / 38 2: A Simple Syntax-Directed Translator / 39 2.1 Introduction / 40 2.2 Syntax Definition / 42 2.2.1 Definition of Grammars / 42 2.2.2 Derivations / 44 2.2.3 Parse Trees / 45 2.2.4 Ambiguity / 47 2.2.5 Associativity of Operators / 48 2.2.6 Precedence of Operators / 48 2.2.7 Exercises for Section 2.2 / 51 2.3 Syntax-Directed Translation / 52 2.3.1 Postfix Notation / 53 2.3.2 Synthesized Attributes / 54 2.3.3 Simple Syntax-Directed Definitions / 56 2.3.4 Tree Traversals / 56 2.3.5 Translation Schemes / 57 2.3.6 Exercises for Section 2.3 / 60 2.4 Parsing / 60 2.4.1 Top-Down Parsing / 61 2.4.2 Predictive Parsing / 64 2.4.3 When to Use $epsilon $-Productions / 65 2.4.4 Designing a Predictive Parser / 66 2.4.5 Left Recursion / 67 2.4.6 Exercises for Section 2.4 / 68 2.5 A Translator for Simple Expressions / 68 2.5.1 Abstract and Concrete Syntax / 69 2.5.2 Adapting the Translation Scheme / 70 2.5.3 Procedures for the Nonterminals / 72 2.5.4 Simplifying the Translator / 73 2.5.5 The Complete Program / 74 2.6 Lexical Analysis / 76 2.6.1 Removal of White Space and Comments / 77 2.6.2 Reading Ahead / 78 2.6.3 Constants / 78 2.6.4 Recognizing Keywords and Identifiers / 79 2.6.5 A Lexical Analyzer / 81 2.6.6 Exercises for Section 2.6 / 84 2.7 Symbol Tables / 85 2.7.1 Symbol Table Per Scope / 86 2.7.2 The Use of Symbol Tables / 89 2.8 Intermediate Code Generation / 91 2.8.1 Two Kinds of Intermediate Representations / 91 2.8.2 Construction of Syntax Trees / 92 2.8.3 Static Checking / 97 2.8.4 Three-Address Code / 99 2.8.5 Exercises for Section 2.8 / 105 2.9 Summary of Chapter 2 / 105 3: Lexical Analysis / 109 3.1 The Role of the Lexical Analyzer / 109 3.1.1 Lexical Analysis Versus Parsing / 110 3.1.2 Tokens, Patterns, and Lexemes / 111 3.1.3 Attributes for Tokens / 112 3.1.4 Lexical Errors / 113 3.1.5 Exercises for Section 3.1 / 114 3.2 Input Buffering / 115 3.2.1 Buffer Pairs / 115 3.2.2 Sentinels / 116 3.3 Specification of Tokens / 116 3.3.1 Strings and Languages / 117 3.3.2 Operations on Languages / 119 3.3.3 Regular Expressions / 120 3.3.4 Regular Definitions / 123 3.3.5 Extensions of Regular Expressions / 124 3.3.6 Exercises for Section 3.3 / 125 3.4 Recognition of Tokens / 128 3.4.1 Transition Diagrams / 130 3.4.2 Recognition of Reserved Words and Identifiers / 132 3.4.3 Completion of the Running Example / 133 3.4.4 Architecture of a Transition-Diagram-Based Lexical Analyzer / 134 3.4.5 Exercises for Section 3.4 / 136 3.5 The Lexical-Analyzer Generator Lex / 140 3.5.1 Use of Lex / 140 3.5.2 Structure of Lex Programs / 141 3.5.3 Conflict Resolution in Lex / 144 3.5.4 The Lookahead Operator / 144 3.5.5 Exercises for Section 3.5 / 146 3.6 Finite Automata / 147 3.6.1 Nondeterministic Finite Automata / 147 3.6.2 Transition Tables / 148 3.6.3 Acceptance of Input Strings by Automata / 149 3.6.4 Deterministic Finite Automata / 149 3.6.5 Exercises for Section 3.6 / 151 3.7 From Regular Expressions to Automata / 152 3.7.1 Conversion of an NFA to a DFA / 152 3.7.2 Simulation of an NFA / 156 3.7.3 Efficiency of NFA Simulation / 157 3.7.4 Construction of an NFA from a Regular Expression / 159 3.7.5 Efficiency of String-Processing Algorithms / 163 3.7.6 Exercises for Section 3.7 / 166 3.8 Design of a Lexical-Analyzer Generator / 166 3.8.1 The Structure of the Generated Analyzer / 167 3.8.2 Pattern Matching Based on NFA's / 168 3.8.3 DFA's for Lexical Analyzers / 170 3.8.4 Implementing the Lookahead Operator / 171 3.8.5 Exercises for Section 3.8 / 172 3.9 Optimization of DFA-Based Pattern Matchers / 173 3.9.1 Important States of an NFA / 173 3.9.2 Functions Computed From the Syntax Tree / 175 3.9.3 Computing em nullable, em firstpos, and em lastpos / 176 3.9.4 Computing em followpos / 177 3.9.5 Converting a Regular Expression Directly to a DFA / 179 3.9.6 Minimizing the Number of States of a DFA / 180 3.9.7 State Minimization in Lexical Analyzers / 184 3.9.8 Trading Time for Space in DFA Simulation / 185 3.9.9 Exercises for Section 3.9 / 186 3.10 Summary of Chapter 3 / 187 3.11 References for Chapter 3 / 189 4: Syntax Analysis / 191 4.1 Introduction / 192 4.1.1 The Role of the Parser / 192 4.1.2 Representative Grammars / 193 4.1.3 Syntax Error Handling / 194 4.1.4 Error-Recovery Strategies / 195 4.2 Context-Free Grammars / 197 4.2.1 The Formal Definition of a Context-Free Grammar. / 197 4.2.2 Notational Conventions / 198 4.2.3 Derivations / 199 4.2.4 Parse Trees and Derivations / 201 4.2.5 Ambiguity / 203 4.2.6 Verifying the Language Generated by a Grammar / 204 4.2.7 Context-Free Grammars Versus Regular Expressions / 205 4.2.8 Exercise for Section 4.2 / 206 4.3 Writing a Grammar / 209 4.3.1 Lexical Versus Syntactic Analysis / 209 4.3.2 Eliminating Ambiguity / 210 4.3.3 Elimination of Left Recursion / 212 4.3.4 Left Factoring / 214 4.3.5 Non-Context-Free Language Constructs / 215 4.3.6 Exercises for Section 4.3 / 216 4.4 Top-Down Parsing / 217 4.4.1 Recursive-Descent Parsing / 219 4.4.2 FIRST and FOLLOW / 220 4.4.3 LL(l) Grammars / 222 4.4.4 Nonrecursive Predictive Parsing / 226 4.4.5 Error Recovery in Predictive Parsing / 228 4.4.6 Exercises for Section 4.4 / 231 4.5 Bottom-Up Parsing / 233 4.5.1 Reductions / 234 4.5.2 Handle Pruning / 235 4.5.3 Shift-Reduce Parsing / 236 4.5.4 Conflicts During Shift-Reduce Parsing / 238 4.5.5 Exercises for Section 4.5 / 240 4.6 Introduction to LR Parsing: Simple LR / 241 4.6.1 Why LR Parsers? / 241 4.6.2 Items and the LR(0) Automaton / 242 4.6.3 The LR-Parsing Algorithm / 248 4.6.4 Constructing SLR-Parsing Tables / 252 4.6.5 Viable Prefixes / 256 4.6.6 Exercises for Section 4.6 / 257 4.7 More Powerful LR Parsers / 259 4.7.1 Canonical LR(1) Items / 260 4.7.2 Constructing LR(1) Sets of Items / 261 4.7.3 Canonical LR(1) Parsing Tables / 265 4.7.4 Constructing LALR Parsing Tables / 266 4.7.5 Efficient Construction of LALR Parsing Tables / 270 4.7.6 Compaction of LR Parsing Tables / 275 4.7.7 Exercises for Section 4.7 / 277 4.8 Using Ambiguous Grammars / 278 4.8.1 Precedence and Associativity to Resolve Conflicts / 279 4.8.2 The ``Dangling-Else'' Ambiguity / 281 4.8.3 Error Recovery in LR Parsing / 283 4.8.4 Exercises for Section 4.8 / 285 4.9 Parser Generators / 287 4.9.1 The Parser Generator Yacc / 287 4.9.2 Using Yacc with Ambiguous Grammars / 291 4.9.3 Creating Yacc Lexical Analyzers with Lex / 294 4.9.4 Error Recovery in Yacc / 295 4.9.5 Exercises for Section 4.9 / 297 4.10 Summary of Chapter 4 / 297 4.11 References for Chapter 4 / 300 5: Syntax-Directed Translation / 303 5.1 Syntax-Directed Definitions / 304 5.1.1 Inherited and Synthesized Attributes / 304 5.1.2 Evaluating an SDD at the Nodes of a Parse Tree / 306 5.1.3 Exercises for Section 5.1 / 309 5.2 Evaluation Orders for SDD's / 310 5.2.1 Dependency Graphs / 310 5.2.2 Ordering the Evaluation of Attributes / 312 5.2.3 S-Attributed Definitions / 312 5.2.4 L-Attributed Definitions / 313 5.2.5 Semantic Rules with Controlled Side Effects / 314 5.2.6 Exercises for Section 5.2 / 317 5.3 Applications of Syntax-Directed Translation / 318 5.3.1 Construction of Syntax Trees / 318 5.3.2 The Structure of a Type / 321 5.3.3 Exercises for Section 5.3 / 323 5.4 Syntax-Directed Translation Schemes / 324 5.4.1 Postfix Translation Schemes / 324 5.4.2 Parser-Stack Implementation of Postfix SDT's / 325 5.4.3 SDT's With Actions Inside Productions / 327 5.4.4 Eliminating Left Recursion From SDT 's / 328 5.4.5 SDT's for L-Attributed Definitions / 331 5.4.6 Exercises for Section 5.4 / 336 5.5 Implementing L-Attributed SDD's / 337 5.5.1 Translation During Recursive-Descent Parsing / 338 5.5.2 On-The-Fly Code Generation / 340 5.5.3 L-Attributed SDD's and LL Parsing / 343 5.5.4 Bottom-Up Parsing of L-Attributed SDD's / 348 5.5.5 Exercises for Section 5.5 / 352 5.6 Summary of Chapter 5 / 353 5.7 References for Chapter 5 / 354 6: Intermediate-Code Generation / 357 6.1 Variants of Syntax Trees / 358 6.1.1 Directed Acyclic Graphs for Expressions / 359 6.1.2 The Value-Number Method for Constructing DAG's / 360 6.1.3 Exercises for Section 6.1 / 362 6.2 Three-Address Code / 363 6.2.1 Addresses and Instructions / 364 6.2.2 Quadruples / 366 6.2.3 Triples / 367 6.2.4 Static Single-Assignment Form / 369 6.2.5 Exercises for Section 6.2 / 370 6.3 Types and Declarations / 370 6.3.1 Type Expressions / 371 6.3.2 Type Equivalence / 372 6.3.3 Declarations / 373 6.3.4 Storage Layout for Local Names / 373 6.3.5 Sequences of Declarations / 376 6.3.6 Fields in Records and Classes / 376 6.3.7 Exercises for Section 6.3 / 378 6.4 Translation of Expressions / 378 6.4.1 Operations Within Expressions / 378 6.4.2 Incremental Translation / 380 6.4.3 Addressing Array Elements / 381 6.4.4 Translation of Array References / 383 6.4.5 Exercises for Section 6.4 / 384 6.5 Type Checking / 386 6.5.1 Rules for Type Checking / 387 6.5.2 Type Conversions / 388 6.5.3 Overloading of Functions and Operators / 390 6.5.4 Type Inference and Polymorphic Functions / 391 6.5.5 An Algorithm for Unification / 395 6.5.6 Exercises for Section 6.5 / 398 6.6 Control Flow / 399 6.6.1 Boolean Expressions / 399 6.6.2 Short-Circuit Code / 400 6.6.3 Flow-of-Control Statements / 401 6.6.4 Control-Flow Translation of Boolean Expressions / 403 6.6.5 A voiding Redundant Gotos / 405 6.6.6 Boolean Values and Jumping Code / 408 6.6.7 Exercises for Section 6.6 / 408 6.7 Backpatching / 410 6.7.1 One-Pass Code Generation Using Backpatching / 410 6.7.2 Backpatching for Boolean Expressions / 411 6.7.3 Flow-of-Control Statements / 413 6.7.4 Break-, Continue-, and Goto-Statements / 416 6.7.5 Exercises for Section 6.7 / 417 6.8 Switch-Statements / 418 6.8.1 Translation of Switch-Statements / 419 6.8.2 Syntax-Directed Translation of Switch-Statements / 420 6.8.3 Exercises for Section 6.8 / 421 6.9 Intermediate Code for Procedures / 422 6.10 Summary of Chapter 6 / 424 6.11 References for Chapter 6 / 425 7: Run-Time Environments / 427 7.1 Storage Organization / 427 7.1.1 Static Versus Dynamic Storage Allocation / 429 7.2 Stack Allocation of Space / 430 7.2.1 Activation Trees / 430 7.2.2 Activation Records / 433 7.2.3 Calling Sequences / 436 7.2.4 Variable-Length Data on the Stack / 438 7.2.5 Exercises for Section 7.2 / 440 7.3 Access to Nonlocal Data on the Stack / 441 7.3.1 Data Access Without Nested Procedures / 442 7.3.2 Issues With Nested Procedures / 442 7.3.3 A Language With Nested Procedure Declarations / 443 7.3.4 Nesting Depth / 443 7.3.5 Access Links / 445 7.3.6 Manipulating Access Links / 447 7.3.7 Access Links for Procedure Parameters / 448 7.3.8 Displays / 449 7.3.9 Exercises for Section 7.3 / 451 7.4 Heap Management / 452 7.4.1 The Memory Manager / 453 7.4.2 The Memory Hierarchy of a Computer / 454 7.4.3 Locality in Programs / 455 7.4.4 Reducing Fragmentation / 457 7.4.5 Manual Deallocation Requests / 460 7.4.6 Exercises for Section 7.4 / 463 7.5 Introduction to Garbage Collection / 463 7.5.1 Design Goals for Garbage Collectors / 464 7.5.2 Reachability / 466 7.5.3 Reference Counting Garbage Collectors / 468 7.5.4 Exercises for Section 7.5 / 470 7.6 Introduction to Trace-Based Collection / 470 7.6.1 A Basic Mark-and-Sweep Collector / 471 7.6.2 Basic Abstraction / 473 7.6.3 Optimizing Mark-and-Sweep / 475 7.6.4 Mark-and-Compact Garbage Collectors / 476 7.6.5 Copying collectors / 478 7.6.6 Comparing Costs / 482 7.6.7 Exercises for Section 7.6 / 482 7.7 Short-Pause Garbage Collection / 483 7.7.1 Incremental Garbage Collection / 483 7.7.2 Incremental Reachability Analysis / 485 7.7.3 Partial-Collection Basics / 487 7.7.4 Generational Garbage Collection / 488 7.7.5 The Train Algorithm / 490 7.7.6 Exercises for Section 7.7 / 493 7.8 Advanced Topics in Garbage Collection / 494 7.8.1 Parallel and Concurrent Garbage Collection / 495 7.8.2 Partial Object Relocation / 497 7.8.3 Conservative Collection for Unsafe Languages / 498 7.8.4 Weak References / 498 7.8.5 Exercises for Section 7.8 / 499 7.9 Summary of Chapter 7 / 500 7.10 References for Chapter 7 / 502 8: Code Generation / 505 8.1 Issues in the Design of a Code Generator / 506 8.1.1 Input to the Code Generator / 507 8.1.2 The Target Program / 507 8.1.3 Instruction Selection / 508 8.1.4 Register Allocation / 510 8.1.5 Evaluation Order / 511 8.2 The Target Language / 512 8.2.1 A Simple Target Machine Model / 512 8.2.2 Program and Instruction Costs / 515 8.2.3 Exercises for Section 8.2 / 516 8.3 Addresses in the Target Code / 518 8.3.1 Static Allocation / 518 8.3.2 Stack Allocation / 520 8.3.3 Run-Time Addresses for Names / 522 8.3.4 Exercises for Section 8.3 / 524 8.4 Basic Blocks and Flow Graphs / 525 8.4.1 Basic Blocks / 526 8.4.2 Next-Use Information / 528 8.4.3 Flow Graphs / 529 8.4.4 Representation of Flow Graphs / 530 8.4.5 Loops / 531 8.4.6 Exercises for Section 8.4 / 531 8.5 Optimization of Basic Blocks / 533 8.5.1 The DAG Representation of Basic Blocks / 533 8.5.2 Finding Local Common Subexpressions / 534 8.5.3 Dead Code Elimination / 535 8.5.4 The Use of Algebraic Identities / 536 8.5.5 Representation of Array References / 537 8.5.6 Pointer Assignments and Procedure Calls / 539 8.5.7 Reassembling Basic Blocks From DAG's / 539 8.5.8 Exercises for Section 8.5 / 541 8.6 A Simple Code Generator / 542 8.6.1 Register and Address Descriptors / 543 8.6.2 The Code-Generation Algorithm / 544 8.6.3 Design of the Function em getReg / 547 8.6.4 Exercises for Section 8.6 / 548 8.7 Peephole Optimization / 549 8.7.1 Eliminating Redundant Loads and Stores / 550 8.7.2 Eliminating Unreachable Code / 550 8.7.3 Flow-of-Control Optimizations / 551 8.7.4 Algebraic Simplification and Reduction in Strength / 552 8.7.5 Use of Machine Idioms / 552 8.7.6 Exercises for Section 8.7 / 553 8.8 Register Allocation and Assignment / 553 8.8.1 Global Register Allocation / 553 8.8.2 Usage Counts / 554 8.8.3 Register Assignment for Out er Loops / 556 8.8.4 Register Allocation by Graph Coloring / 556 8.8.5 Exercises for Section 8.8 / 557 8.9 Instruction Selection by Tree Rewriting / 558 8.9.1 Tree-Translation Schemes / 558 8.9.2 Code Generation by Tiling an Input Tree / 560 8.9.3 Pattern Matching by Parsing / 563 8.9.4 Routines for Semantic Checking / 565 8.9.5 General Tree Matching / 565 8.9.6 Exercises for Section 8.9 / 567 8.10 Optimal Code Generation for Expressions / 567 8.10.1 Ershov Numbers / 567 8.10.2 Generating Code From Labeled Expression Trees / 568 8.10.3 Evaluating Expressions with an Insufficient Supply of Registers / 570 8.10.4 Exercises for Section 8.10 / 572 8.11 Dynamic Programming Code-Generation / 573 8.11.1 Contiguous Evaluation / 574 8.11.2 The Dynamic Programming Algorithm / 575 8.11.3 Exercises for Section 8.11 / 577 8.12 Summary of Chapter 8 / 578 8.13 References for Chapter 8 / 579 9: Machine-Independent Optimizations / 583 9.1 The Principal Sources of Optimization / 584 9.1.1 Causes of Redundancy / 584 9.1.2 A Running Example: Quicksort / 585 9.1.3 Semantics-Preserving Transformations / 586 9.1.4 Global Common Subexpressions / 588 9.1.5 Copy Propagation / 590 9.1.6 Dead-Code Elimination / 591 9.1.7 Code Motion / 592 9.1.8 Induction Variables and Reduction in Strength / 592 9.1.9 Exercises for Section 9.1 / 596 9.2 Introduction to Data-Flow Analysis / 597 9.2.1 The Data-Flow Abstraction / 597 9.2.2 The Data-Flow Analysis Schema / 599 9.2.3 Data-Flow Schemas on Basic Blocks / 600 9.2.4 Reaching Definitions / 601 9.2.5 Live-Variable Analysis / 608 9.2.6 Available Expressions / 610 9.2.7 Summary / 614 9.2.8 Exercises for Section 9.2 / 615 9.3 Foundations of Data-Flow Analysis / 618 9.3.1 Semilattices / 618 9.3.2 Transfer Functions / 623 9.3.3 The Iterative Algorithm for General Frameworks / 626 9.3.4 Meaning of a Data-Flow Solution / 628 9.3.5 Exercises for Section 9.3 / 631 9.4 Constant Propagation / 632 9.4.1 Data-Flow Values for the Constant-Propagation Framework / 633 9.4.2 The Meet for the Constant-Propagation Framework / 633 9.4.3 Transfer Functions for the Constant-Propagation Framework / 634 9.4.4 Monotonicity of the Constant-Propagation Framework / 635 9.4.5 Nondistributivity of the Constant-Propagation Framework / 635 9.4.6 Interpretation of the Results / 637 9.4.7 Exercises for Section 9.4 / 637 9.5 Partial-Redundancy Elimination / 639 9.5.1 The Sources of Redundancy / 639 9.5.2 Can All Redundancy Be Eliminated? / 642 9.5.3 The Lazy-Code-Motion Problem / 644 9.5.4 Anticipation of Expressions / 645 9.5.5 The Lazy-Code-Motion Algorithm / 646 9.5.6 Exercises for Section 9.5 / 655 9.6 Loops in Flow Graphs / 655 9.6.1 Dominators / 656 9.6.2 Depth-First Ordering / 660 9.6.3 Edges in a Depth-First Spanning Tree / 661 9.6.4 Back Edges and Reducibility / 662 9.6.5 Depth of a Flow Graph / 665 9.6.6 Natural Loops / 665 9.6.7 Speed of Convergence of Iterative Data-Flow Algorithms / 667 9.6.8 Exercises for Section 9.6 / 669 9.7 Region-Based Analysis / 672 9.7.1 Regions / 672 9.7.2 Region Hierarchies for Reducible Flow Graphs / 673 9.7.3 Overview of a Region-Based Analysis / 676 9.7.4 Necessary Assumptions About Transfer Functions / 678 9.7.5 An Algorithm for Region-Based Analysis / 680 9.7.6 Handling Nonreducible Flow Graphs / 684 9.7.7 Exercises for Section 9.7 / 686 9.8 Symbolic Analysis / 686 9.8.1 Affine Expressions of Reference Variables / 687 9.8.2 Data-Flow Problem Formulation / 689 9.8.3 Region-Based Symbolic Analysis / 694 9.8.4 Exercises for Section 9.8 / 699 9.9 Summary of Chapter 9 / 700 9.10 References for Chapter 9 / 703 10: Instruction-Level Parallelism / 707 10.1 Processor Architectures / 708 10.1.1 Instruction Pipelines and Branch Delays / 708 10.1.2 Pipelined Execution / 709 10.1.3 Multiple Instruction Issue / 710 10.2 Code-Scheduling Constraints / 710 10.2.1 Data Dependence / 711 10.2.2 Finding Dependences Among Memory Accesses / 712 10.2.3 Tradeoff Between Register Usage and Parallelism. / 713 10.2.4 Phase Ordering Between Register Allocation and Code Scheduling / 716 10.2.5 Control Dependence / 716 10.2.6 Speculative Execution Support / 717 10.2.7 A Basic Machine Model / 719 10.2.8 Exercises for Section 10.2 / 720 10.3 Basic-Block Scheduling / 721 10.3.1 Data-Dependence Graphs / 722 10.3.2 List Scheduling of Basic Blocks / 723 10.3.3 Prioritized Topological Orders / 725 10.3.4 Exercises for Section 10.3 / 726 10.4 Global Code Scheduling / 727 10.4.1 Primitive Code Motion / 728 10.4.2 Upward Code Motion / 730 10.4.3 Downward Code Motion / 731 10.4.4 Updating Data Dependences / 732 10.4.5 Global Scheduling Algorithms / 732 10.4.6 Advanced Code Motion Techniques / 736 10.4.7 Interaction with Dynamic Schedulers / 737 10.4.8 Exercises for Section 10.4 / 737 10.5 Software Pipelining / 738 10.5.1 Introduction / 738 10.5.2 Software Pipelining of Loops / 740 10.5.3 Register Allocation and Code Generation / 743 10.5.4 Do-Across Loops / 743 10.5.5 Goals and Constraints of Software Pipelining / 745 10.5.6 A Software-Pipelining Algorithm / 749 10.5.7 Scheduling Acyclic Data-Dependence Graphs / 749 10.5.8 Scheduling Cyclic Dependence Graphs / 751 10.5.9 Improvements to the Pipelining Algorithms / 758 10.5.10 Modular Variable Expansion / 758 10.5.11 Conditional Statements / 761 10.5.12 Hardware Support for Software Pipelining / 762 10.5.13 Exercises for Section 10.5 / 763 10.6 Summary of Chapter 10 / 765 10.7 References for Chapter 10 / 766 11: Optimizing for Parallelism and Locality / 769 11.1 Basic Concepts / 771 11.1.1 Multiprocessors / 772 11.1.2 Parallelism in Applications / 773 11.1.3 Loop-Level Parallelism / 775 11.1.4 Data Locality / 777 11.1.5 Introduction to Affine Transform Theory / 778 11.2 Matrix Multiply: An In-Depth Example / 782 11.2.1 The Matrix-Multiplication Algorithm / 782 11.2.2 Optimizations / 785 11.2.3 Cache Interference / 788 11.2.4 Exercises for Section 11.2 / 788 11.3 Iteration Spaces / 788 11.3.1 Constructing Iteration Spaces from Loop Nests / 788 11.3.2 Execution Order for Loop Nests / 791 11.3.3 Matrix Formulation of Inequalities / 791 11.3.4 Incorporating Symbolic Constants / 793 11.3.5 Controlling the Order of Execution / 793 11.3.6 Changing Axes / 798 11.3.7 Exercises for Section 11.3 / 799 11.4 Affine Array Indexes / 801 11.4.1 Affine Accesses / 802 11.4.2 Affine and Nonaffine Accesses in Practice / 803 11.4.3 Exercises for Section 11.4 / 804 11.5 Data Reuse / 804 11.5.1 Types of Reuse / 805 11.5.2 Self Reuse / 806 11.5.3 Self-Spatial Reuse / 809 11.5.4 Group Reuse / 811 11.5.5 Exercises for Section 11.5 / 814 11.6 Array Data-Dependence Analysis / 815 11.6.1 Definition of Data Dependence of Array Accesses / 816 11.6.2 Integer Linear Programming / 817 11.6.3 The GCD Test / 818 11.6.4 Heuristics for Solving Integer Linear Programs / 820 11.6.5 Solving General Integer Linear Programs / 823 11.6.6 Summary / 825 11.6.7 Exercises for Section 11.6 / 826 11.7 Finding Synchronization-Free Parallelism / 828 11.7.1 An Introductory Example / 828 11.7.2 Affine Space Partitions / 830 11.7.3 Space-Partition Constraints / 831 11.7.4 Solving Space-Partition Constraints / 835 11.7.5 A Simple Code-Generation Algorithm / 838 11.7.6 Eliminating Empty Iterations / 841 11.7.7 Eliminating Tests from Innermost Loops / 844 11.7.8 Source-Code Transforms / 846 11.7.9 Exercises for Section 11.7 / 851 11.8 Synchronization Between Parallel Loops / 853 11.8.1 A Constant Number of Synchronizations / 853 11.8.2 Program-Dependence Graphs / 854 11.8.3 Hierarchical Time / 857 11.8.4 The Parallelization Algorithm / 859 11.8.5 Exercises for Section 11.8 / 860 11.9 Pipelining / 861 11.9.1 What is Pipelining? / 861 11.9.2 Successive Over-Relaxation (SOR): An Example / 863 11.9.3 Fully Permutable Loops / 864 11.9.4 Pipelining Fully Permutable Loops / 864 11.9.5 General Theory / 867 11.9.6 Time-Partition Constraints / 868 11.9.7 Solving Time-Partition Constraints by Farkas' Lemma / 872 11.9.8 Code Transformations / 875 11.9.9 Parallelism With Minimum Synchronization / 880 11.9.10 Exercises for Section 11.9 / 882 11.10 Locality Optimizations / 884 11.10.1 Temporal Locality of Computed Data / 885 11.10.2 Array Contraction / 885 11.10.3 Partition Interleaving / 887 11.10.4 Putting it All Together / 890 11.10.5 Exercises for Section 11.10 / 892 11.11 Other Uses of Affine Transforms / 893 11.11.1 Distributed memory machines / 894 11.11.2 Multi-Instruction-Issue Processors / 895 11.11.3 Vector and SIMD Instructions / 895 11.11.4 Prefetching / 896 11.12 Summary of Chapter 11 / 897 11.13 References for Chapter 11 / 899 12: Interprocedural Analysis / 903 12.1 Basic Concepts / 904 12.1.1 Call Graphs / 904 12.1.2 Context Sensitivity / 906 12.1.3 Call Strings / 908 12.1.4 Cloning-Based Context-Sensitive Analysis / 910 12.1.5 Summary-Based Context-Sensitive Analysis / 911 12.1.6 Exercises for Section 12.1 / 914 12.2 Why Interprocedural Analysis? / 916 12.2.1 Virtual Method Invocation / 916 12.2.2 Pointer Alias Analysis / 917 12.2.3 Parallelization / 917 12.2.4 Detection of Software Errors and Vulnerabilities / 917 12.2.5 SQL Injection / 918 12.2.6 Buffer Overflow / 920 12.3 A Logical Representation of Data Flow / 921 12.3.1 Introduction to Datalog / 921 12.3.2 Datalog Rules / 922 12.3.3 Intensional and Extensional Predicates / 924 12.3.4 Execution of Datalog Programs / 927 12.3.5 Incremental Evaluation of Datalog Programs / 928 12.3.6 Problematic Datalog Rules / 930 12.3.7 Exercises for Section 12.3 / 932 12.4 A Simple Pointer-Analysis Algorithm / 933 12.4.1 Why is Pointer Analysis Difficult / 934 12.4.2 A Model for Pointers and References / 935 12.4.3 Flow Insensitivity / 936 12.4.4 The Formulation in Datalog / 937 12.4.5 Using Type Information / 938 12.4.6 Exercises for Section 12.4 / 939 12.5 Context-Insensitive Interprocedural Analysis / 941 12.5.1 Effects of a Method Invocation / 941 12.5.2 Call Graph Discovery in Datalog / 943 12.5.3 Dynamic Loading and Reflection / 944 12.5.4 Exercises for Section 12.5 / 945 12.6 Context-Sensitive Pointer Analysis / 945 12.6.1 Contexts and Call Strings / 946 12.6.2 Adding Context to Datalog Rules / 949 12.6.3 Additional Observations About Sensitivity / 949 12.6.4 Exercises for Section 12.6 / 950 12.7 Datalog Implementation by BDD's / 951 12.7.1 Binary Decision Diagrams / 951 12.7.2 Transformations on BDD's / 953 12.7.3 Representing Relations by BDD's / 954 12.7.4 Relational Operations as BDD Operations / 954 12.7.5 Using BDD's for Points-to Analysis / 957 12.7.6 Exercises for Section 12.7 / 958 12.8 Summary of Chapter 12 / 958 12.9 References for Chapter 12 / 961 A: A Complete Front End / 965 A.1 The Source Language / 965 A.2 Main / 966 A.3 Lexical Analyzer / 967 A.4 Symbol Tables and Types / 970 A.5 Intermediate Code for Expressions / 971 A.6 Jumping Code for Boolean Expressions / 974 A.7 Intermediate Code for Statements / 978 A.8 Parser / 981 A.9 Creating the Front End / 986 B: Finding Linearly Independent Solutions / 989 Index / 993

rawabstract:
This new edition of the classic `Dragon' book has been completely revised to include the most recent developments to compiling. The book provides a thorough introduction to compiler design and continues to emphasize the applicability of compiler technology to a broad range of problems in software design and development. The first half of the book is designed for use in an undergraduate compilers course while the second half can be used in a graduate course stressing code optimization.

shortTOC:
1: Introduction / 1 2: A Simple Syntax-Directed Translator / 39 3: Lexical Analysis / 109 4: Syntax Analysis / 191 5: Syntax-Directed Translation / 303 6: Intermediate-Code Generation / 357 7: Run-Time Environments / 427 8: Code Generation / 505 9: Machine-Independent Optimizations / 583 10: Instruction-Level Parallelism / 707 11: Optimizing for Parallelism and Locality / 769 12: Interprocedural Analysis / 903 A: A Complete Front End / 965 B: Finding Linearly Independent Solutions / 989 Index / 993

rawshortTOC:
1: Introduction / 1 \\ 2: A Simple Syntax-Directed Translator / 39 \\ 3: Lexical Analysis / 109 \\ 4: Syntax Analysis / 191 \\ 5: Syntax-Directed Translation / 303 \\ 6: Intermediate-Code Generation / 357 \\ 7: Run-Time Environments / 427 \\ 8: Code Generation / 505 \\ 9: Machine-Independent Optimizations / 583 \\ 10: Instruction-Level Parallelism / 707 \\ 11: Optimizing for Parallelism and Locality / 769 \\ 12: Interprocedural Analysis / 903 \\ A: A Complete Front End / 965 \\ B: Finding Linearly Independent Solutions / 989 \\ Index / 993

rawTOC:
1: Introduction / 1 \\ 1.1 Language Processors / 1 \\ 1.1.1 Exercises for Section 1.1 / 3 \\ 1.2 The Structure of a Compiler / 4 \\ 1.2.1 Lexical Analysis / 5 \\ 1.2.2 Syntax Analysis / 8 \\ 1.2.3 Semantic Analysis / 8 \\ 1.2.4 Intermediate Code Generation / 9 \\ 1.2.5 Code Optimization / 10 \\ 1.2.6 Code Generation / 10 \\ 1.2.7 Symbol-Table Management / 11 \\ 1.2.8 The Grouping of Phases into Passes / 11 \\ 1.2.9 Compiler-Construction Tools / 12 \\ 1.3 The Evolution of Programming Languages / 12 \\ 1.3.1 The Move to Higher-level Languages / 13 \\ 1.3.2 Impacts on Compilers / 14 \\ 1.3.3 Exercises for Section 1.3 / 14 \\ 1.4 The Science of Building a Compiler / 15 \\ 1.4.1 Modeling in Compiler Design and Implementation / 15 \\ 1.4.2 The Science of Code Optimization / 15 \\ 1.5 Applications of Compiler Technology / 17 \\ 1.5.1 Implementation of High-Level Programming Languages / 17 \\ 1.5.2 Optimizations for Computer Architectures / 19 \\ 1.5.3 Design of New Computer Architectures / 21 \\ 1.5.4 Program Translations / 22 \\ 1.5.5 Software Productivity Tools / 23 \\ 1.6 Programming Language Basics / 25 \\ 1.6.1 The Static/Dynamic Distinction / 25 \\ 1.6.2 Environments and States / 26 \\ 1.6.3 Static Scope and Block Structure / 28 \\ 1.6.4 Explicit Access Control / 31 \\ 1.6.5 Dynamic Scope / 31 \\ 1.6.6 Parameter Passing Mechanisms / 33 \\ 1.6.7 Aliasing / 35 \\ 1.6.8 Exercises for Section 1.6 / 35 \\ 1.7 Summary of Chapter 1 / 36 \\ 1.8 References for Chapter 1 / 38 \\ 2: A Simple Syntax-Directed Translator / 39 \\ 2.1 Introduction / 40 \\ 2.2 Syntax Definition / 42 \\ 2.2.1 Definition of Grammars / 42 \\ 2.2.2 Derivations / 44 \\ 2.2.3 Parse Trees / 45 \\ 2.2.4 Ambiguity / 47 \\ 2.2.5 Associativity of Operators / 48 \\ 2.2.6 Precedence of Operators / 48 \\ 2.2.7 Exercises for Section 2.2 / 51 \\ 2.3 Syntax-Directed Translation / 52 \\ 2.3.1 Postfix Notation / 53 \\ 2.3.2 Synthesized Attributes / 54 \\ 2.3.3 Simple Syntax-Directed Definitions / 56 \\ 2.3.4 Tree Traversals / 56 \\ 2.3.5 Translation Schemes / 57 \\ 2.3.6 Exercises for Section 2.3 / 60 \\ 2.4 Parsing / 60 \\ 2.4.1 Top-Down Parsing / 61 \\ 2.4.2 Predictive Parsing / 64 \\ 2.4.3 When to Use $\epsilon$-Productions / 65 \\ 2.4.4 Designing a Predictive Parser / 66 \\ 2.4.5 Left Recursion / 67 \\ 2.4.6 Exercises for Section 2.4 / 68 \\ 2.5 A Translator for Simple Expressions / 68 \\ 2.5.1 Abstract and Concrete Syntax / 69 \\ 2.5.2 Adapting the Translation Scheme / 70 \\ 2.5.3 Procedures for the Nonterminals / 72 \\ 2.5.4 Simplifying the Translator / 73 \\ 2.5.5 The Complete Program / 74 \\ 2.6 Lexical Analysis / 76 \\ 2.6.1 Removal of White Space and Comments / 77 \\ 2.6.2 Reading Ahead / 78 \\ 2.6.3 Constants / 78 \\ 2.6.4 Recognizing Keywords and Identifiers / 79 \\ 2.6.5 A Lexical Analyzer / 81 \\ 2.6.6 Exercises for Section 2.6 / 84 \\ 2.7 Symbol Tables / 85 \\ 2.7.1 Symbol Table Per Scope / 86 \\ 2.7.2 The Use of Symbol Tables / 89 \\ 2.8 Intermediate Code Generation / 91 \\ 2.8.1 Two Kinds of Intermediate Representations / 91 \\ 2.8.2 Construction of Syntax Trees / 92 \\ 2.8.3 Static Checking / 97 \\ 2.8.4 Three-Address Code / 99 \\ 2.8.5 Exercises for Section 2.8 / 105 \\ 2.9 Summary of Chapter 2 / 105 \\ 3: Lexical Analysis / 109 \\ 3.1 The Role of the Lexical Analyzer / 109 \\ 3.1.1 Lexical Analysis Versus Parsing / 110 \\ 3.1.2 Tokens, Patterns, and Lexemes / 111 \\ 3.1.3 Attributes for Tokens / 112 \\ 3.1.4 Lexical Errors / 113 \\ 3.1.5 Exercises for Section 3.1 / 114 \\ 3.2 Input Buffering / 115 \\ 3.2.1 Buffer Pairs / 115 \\ 3.2.2 Sentinels / 116 \\ 3.3 Specification of Tokens / 116 \\ 3.3.1 Strings and Languages / 117 \\ 3.3.2 Operations on Languages / 119 \\ 3.3.3 Regular Expressions / 120 \\ 3.3.4 Regular Definitions / 123 \\ 3.3.5 Extensions of Regular Expressions / 124 \\ 3.3.6 Exercises for Section 3.3 / 125 \\ 3.4 Recognition of Tokens / 128 \\ 3.4.1 Transition Diagrams / 130 \\ 3.4.2 Recognition of Reserved Words and Identifiers / 132 \\ 3.4.3 Completion of the Running Example / 133 \\ 3.4.4 Architecture of a Transition-Diagram-Based Lexical Analyzer / 134 \\ 3.4.5 Exercises for Section 3.4 / 136 \\ 3.5 The Lexical-Analyzer Generator Lex / 140 \\ 3.5.1 Use of Lex / 140 \\ 3.5.2 Structure of Lex Programs / 141 \\ 3.5.3 Conflict Resolution in Lex / 144 \\ 3.5.4 The Lookahead Operator / 144 \\ 3.5.5 Exercises for Section 3.5 / 146 \\ 3.6 Finite Automata / 147 \\ 3.6.1 Nondeterministic Finite Automata / 147 \\ 3.6.2 Transition Tables / 148 \\ 3.6.3 Acceptance of Input Strings by Automata / 149 \\ 3.6.4 Deterministic Finite Automata / 149 \\ 3.6.5 Exercises for Section 3.6 / 151 \\ 3.7 From Regular Expressions to Automata / 152 \\ 3.7.1 Conversion of an NFA to a DFA / 152 \\ 3.7.2 Simulation of an NFA / 156 \\ 3.7.3 Efficiency of NFA Simulation / 157 \\ 3.7.4 Construction of an NFA from a Regular Expression / 159 \\ 3.7.5 Efficiency of String-Processing Algorithms / 163 \\ 3.7.6 Exercises for Section 3.7 / 166 \\ 3.8 Design of a Lexical-Analyzer Generator / 166 \\ 3.8.1 The Structure of the Generated Analyzer / 167 \\ 3.8.2 Pattern Matching Based on NFA's / 168 \\ 3.8.3 DFA's for Lexical Analyzers / 170 \\ 3.8.4 Implementing the Lookahead Operator / 171 \\ 3.8.5 Exercises for Section 3.8 / 172 \\ 3.9 Optimization of DFA-Based Pattern Matchers / 173 \\ 3.9.1 Important States of an NFA / 173 \\ 3.9.2 Functions Computed From the Syntax Tree / 175 \\ 3.9.3 Computing {\em nullable}, {\em firstpos}, and {\em lastpos} / 176 \\ 3.9.4 Computing {\em followpos} / 177 \\ 3.9.5 Converting a Regular Expression Directly to a DFA / 179 \\ 3.9.6 Minimizing the Number of States of a DFA / 180 \\ 3.9.7 State Minimization in Lexical Analyzers / 184 \\ 3.9.8 Trading Time for Space in DFA Simulation / 185 \\ 3.9.9 Exercises for Section 3.9 / 186 \\ 3.10 Summary of Chapter 3 / 187 \\ 3.11 References for Chapter 3 / 189 \\ 4: Syntax Analysis / 191 \\ 4.1 Introduction / 192 \\ 4.1.1 The Role of the Parser / 192 \\ 4.1.2 Representative Grammars / 193 \\ 4.1.3 Syntax Error Handling / 194 \\ 4.1.4 Error-Recovery Strategies / 195 \\ 4.2 Context-Free Grammars / 197 \\ 4.2.1 The Formal Definition of a Context-Free Grammar. / 197 \\ 4.2.2 Notational Conventions / 198 \\ 4.2.3 Derivations / 199 \\ 4.2.4 Parse Trees and Derivations / 201 \\ 4.2.5 Ambiguity / 203 \\ 4.2.6 Verifying the Language Generated by a Grammar / 204 \\ 4.2.7 Context-Free Grammars Versus Regular Expressions / 205 \\ 4.2.8 Exercise for Section 4.2 / 206 \\ 4.3 Writing a Grammar / 209 \\ 4.3.1 Lexical Versus Syntactic Analysis / 209 \\ 4.3.2 Eliminating Ambiguity / 210 \\ 4.3.3 Elimination of Left Recursion / 212 \\ 4.3.4 Left Factoring / 214 \\ 4.3.5 Non-Context-Free Language Constructs / 215 \\ 4.3.6 Exercises for Section 4.3 / 216 \\ 4.4 Top-Down Parsing / 217 \\ 4.4.1 Recursive-Descent Parsing / 219 \\ 4.4.2 FIRST and FOLLOW / 220 \\ 4.4.3 LL(l) Grammars / 222 \\ 4.4.4 Nonrecursive Predictive Parsing / 226 \\ 4.4.5 Error Recovery in Predictive Parsing / 228 \\ 4.4.6 Exercises for Section 4.4 / 231 \\ 4.5 Bottom-Up Parsing / 233 \\ 4.5.1 Reductions / 234 \\ 4.5.2 Handle Pruning / 235 \\ 4.5.3 Shift-Reduce Parsing / 236 \\ 4.5.4 Conflicts During Shift-Reduce Parsing / 238 \\ 4.5.5 Exercises for Section 4.5 / 240 \\ 4.6 Introduction to LR Parsing: Simple LR / 241 \\ 4.6.1 Why LR Parsers? / 241 \\ 4.6.2 Items and the LR(0) Automaton / 242 \\ 4.6.3 The LR-Parsing Algorithm / 248 \\ 4.6.4 Constructing SLR-Parsing Tables / 252 \\ 4.6.5 Viable Prefixes / 256 \\ 4.6.6 Exercises for Section 4.6 / 257 \\ 4.7 More Powerful LR Parsers / 259 \\ 4.7.1 Canonical LR(1) Items / 260 \\ 4.7.2 Constructing LR(1) Sets of Items / 261 \\ 4.7.3 Canonical LR(1) Parsing Tables / 265 \\ 4.7.4 Constructing LALR Parsing Tables / 266 \\ 4.7.5 Efficient Construction of LALR Parsing Tables / 270 \\ 4.7.6 Compaction of LR Parsing Tables / 275 \\ 4.7.7 Exercises for Section 4.7 / 277 \\ 4.8 Using Ambiguous Grammars / 278 \\ 4.8.1 Precedence and Associativity to Resolve Conflicts / 279 \\ 4.8.2 The ``Dangling-Else'' Ambiguity / 281 \\ 4.8.3 Error Recovery in LR Parsing / 283 \\ 4.8.4 Exercises for Section 4.8 / 285 \\ 4.9 Parser Generators / 287 \\ 4.9.1 The Parser Generator Yacc / 287 \\ 4.9.2 Using Yacc with Ambiguous Grammars / 291 \\ 4.9.3 Creating Yacc Lexical Analyzers with Lex / 294 \\ 4.9.4 Error Recovery in Yacc / 295 \\ 4.9.5 Exercises for Section 4.9 / 297 \\ 4.10 Summary of Chapter 4 / 297 \\ 4.11 References for Chapter 4 / 300 \\ 5: Syntax-Directed Translation / 303 \\ 5.1 Syntax-Directed Definitions / 304 \\ 5.1.1 Inherited and Synthesized Attributes / 304 \\ 5.1.2 Evaluating an SDD at the Nodes of a Parse Tree / 306 \\ 5.1.3 Exercises for Section 5.1 / 309 \\ 5.2 Evaluation Orders for SDD's / 310 \\ 5.2.1 Dependency Graphs / 310 \\ 5.2.2 Ordering the Evaluation of Attributes / 312 \\ 5.2.3 S-Attributed Definitions / 312 \\ 5.2.4 L-Attributed Definitions / 313 \\ 5.2.5 Semantic Rules with Controlled Side Effects / 314 \\ 5.2.6 Exercises for Section 5.2 / 317 \\ 5.3 Applications of Syntax-Directed Translation / 318 \\ 5.3.1 Construction of Syntax Trees / 318 \\ 5.3.2 The Structure of a Type / 321 \\ 5.3.3 Exercises for Section 5.3 / 323 \\ 5.4 Syntax-Directed Translation Schemes / 324 \\ 5.4.1 Postfix Translation Schemes / 324 \\ 5.4.2 Parser-Stack Implementation of Postfix SDT's / 325 \\ 5.4.3 SDT's With Actions Inside Productions / 327 \\ 5.4.4 Eliminating Left Recursion From SDT 's / 328 \\ 5.4.5 SDT's for L-Attributed Definitions / 331 \\ 5.4.6 Exercises for Section 5.4 / 336 \\ 5.5 Implementing L-Attributed SDD's / 337 \\ 5.5.1 Translation During Recursive-Descent Parsing / 338 \\ 5.5.2 On-The-Fly Code Generation / 340 \\ 5.5.3 L-Attributed SDD's and LL Parsing / 343 \\ 5.5.4 Bottom-Up Parsing of L-Attributed SDD's / 348 \\ 5.5.5 Exercises for Section 5.5 / 352 \\ 5.6 Summary of Chapter 5 / 353 \\ 5.7 References for Chapter 5 / 354 \\ 6: Intermediate-Code Generation / 357 \\ 6.1 Variants of Syntax Trees / 358 \\ 6.1.1 Directed Acyclic Graphs for Expressions / 359 \\ 6.1.2 The Value-Number Method for Constructing DAG's / 360 \\ 6.1.3 Exercises for Section 6.1 / 362 \\ 6.2 Three-Address Code / 363 \\ 6.2.1 Addresses and Instructions / 364 \\ 6.2.2 Quadruples / 366 \\ 6.2.3 Triples / 367 \\ 6.2.4 Static Single-Assignment Form / 369 \\ 6.2.5 Exercises for Section 6.2 / 370 \\ 6.3 Types and Declarations / 370 \\ 6.3.1 Type Expressions / 371 \\ 6.3.2 Type Equivalence / 372 \\ 6.3.3 Declarations / 373 \\ 6.3.4 Storage Layout for Local Names / 373 \\ 6.3.5 Sequences of Declarations / 376 \\ 6.3.6 Fields in Records and Classes / 376 \\ 6.3.7 Exercises for Section 6.3 / 378 \\ 6.4 Translation of Expressions / 378 \\ 6.4.1 Operations Within Expressions / 378 \\ 6.4.2 Incremental Translation / 380 \\ 6.4.3 Addressing Array Elements / 381 \\ 6.4.4 Translation of Array References / 383 \\ 6.4.5 Exercises for Section 6.4 / 384 \\ 6.5 Type Checking / 386 \\ 6.5.1 Rules for Type Checking / 387 \\ 6.5.2 Type Conversions / 388 \\ 6.5.3 Overloading of Functions and Operators / 390 \\ 6.5.4 Type Inference and Polymorphic Functions / 391 \\ 6.5.5 An Algorithm for Unification / 395 \\ 6.5.6 Exercises for Section 6.5 / 398 \\ 6.6 Control Flow / 399 \\ 6.6.1 Boolean Expressions / 399 \\ 6.6.2 Short-Circuit Code / 400 \\ 6.6.3 Flow-of-Control Statements / 401 \\ 6.6.4 Control-Flow Translation of Boolean Expressions / 403 \\ 6.6.5 A voiding Redundant Gotos / 405 \\ 6.6.6 Boolean Values and Jumping Code / 408 \\ 6.6.7 Exercises for Section 6.6 / 408 \\ 6.7 Backpatching / 410 \\ 6.7.1 One-Pass Code Generation Using Backpatching / 410 \\ 6.7.2 Backpatching for Boolean Expressions / 411 \\ 6.7.3 Flow-of-Control Statements / 413 \\ 6.7.4 Break-, Continue-, and Goto-Statements / 416 \\ 6.7.5 Exercises for Section 6.7 / 417 \\ 6.8 Switch-Statements / 418 \\ 6.8.1 Translation of Switch-Statements / 419 \\ 6.8.2 Syntax-Directed Translation of Switch-Statements / 420 \\ 6.8.3 Exercises for Section 6.8 / 421 \\ 6.9 Intermediate Code for Procedures / 422 \\ 6.10 Summary of Chapter 6 / 424 \\ 6.11 References for Chapter 6 / 425 \\ 7: Run-Time Environments / 427 \\ 7.1 Storage Organization / 427 \\ 7.1.1 Static Versus Dynamic Storage Allocation / 429 \\ 7.2 Stack Allocation of Space / 430 \\ 7.2.1 Activation Trees / 430 \\ 7.2.2 Activation Records / 433 \\ 7.2.3 Calling Sequences / 436 \\ 7.2.4 Variable-Length Data on the Stack / 438 \\ 7.2.5 Exercises for Section 7.2 / 440 \\ 7.3 Access to Nonlocal Data on the Stack / 441 \\ 7.3.1 Data Access Without Nested Procedures / 442 \\ 7.3.2 Issues With Nested Procedures / 442 \\ 7.3.3 A Language With Nested Procedure Declarations / 443 \\ 7.3.4 Nesting Depth / 443 \\ 7.3.5 Access Links / 445 \\ 7.3.6 Manipulating Access Links / 447 \\ 7.3.7 Access Links for Procedure Parameters / 448 \\ 7.3.8 Displays / 449 \\ 7.3.9 Exercises for Section 7.3 / 451 \\ 7.4 Heap Management / 452 \\ 7.4.1 The Memory Manager / 453 \\ 7.4.2 The Memory Hierarchy of a Computer / 454 \\ 7.4.3 Locality in Programs / 455 \\ 7.4.4 Reducing Fragmentation / 457 \\ 7.4.5 Manual Deallocation Requests / 460 \\ 7.4.6 Exercises for Section 7.4 / 463 \\ 7.5 Introduction to Garbage Collection / 463 \\ 7.5.1 Design Goals for Garbage Collectors / 464 \\ 7.5.2 Reachability / 466 \\ 7.5.3 Reference Counting Garbage Collectors / 468 \\ 7.5.4 Exercises for Section 7.5 / 470 \\ 7.6 Introduction to Trace-Based Collection / 470 \\ 7.6.1 A Basic Mark-and-Sweep Collector / 471 \\ 7.6.2 Basic Abstraction / 473 \\ 7.6.3 Optimizing Mark-and-Sweep / 475 \\ 7.6.4 Mark-and-Compact Garbage Collectors / 476 \\ 7.6.5 Copying collectors / 478 \\ 7.6.6 Comparing Costs / 482 \\ 7.6.7 Exercises for Section 7.6 / 482 \\ 7.7 Short-Pause Garbage Collection / 483 \\ 7.7.1 Incremental Garbage Collection / 483 \\ 7.7.2 Incremental Reachability Analysis / 485 \\ 7.7.3 Partial-Collection Basics / 487 \\ 7.7.4 Generational Garbage Collection / 488 \\ 7.7.5 The Train Algorithm / 490 \\ 7.7.6 Exercises for Section 7.7 / 493 \\ 7.8 Advanced Topics in Garbage Collection / 494 \\ 7.8.1 Parallel and Concurrent Garbage Collection / 495 \\ 7.8.2 Partial Object Relocation / 497 \\ 7.8.3 Conservative Collection for Unsafe Languages / 498 \\ 7.8.4 Weak References / 498 \\ 7.8.5 Exercises for Section 7.8 / 499 \\ 7.9 Summary of Chapter 7 / 500 \\ 7.10 References for Chapter 7 / 502 \\ 8: Code Generation / 505 \\ 8.1 Issues in the Design of a Code Generator / 506 \\ 8.1.1 Input to the Code Generator / 507 \\ 8.1.2 The Target Program / 507 \\ 8.1.3 Instruction Selection / 508 \\ 8.1.4 Register Allocation / 510 \\ 8.1.5 Evaluation Order / 511 \\ 8.2 The Target Language / 512 \\ 8.2.1 A Simple Target Machine Model / 512 \\ 8.2.2 Program and Instruction Costs / 515 \\ 8.2.3 Exercises for Section 8.2 / 516 \\ 8.3 Addresses in the Target Code / 518 \\ 8.3.1 Static Allocation / 518 \\ 8.3.2 Stack Allocation / 520 \\ 8.3.3 Run-Time Addresses for Names / 522 \\ 8.3.4 Exercises for Section 8.3 / 524 \\ 8.4 Basic Blocks and Flow Graphs / 525 \\ 8.4.1 Basic Blocks / 526 \\ 8.4.2 Next-Use Information / 528 \\ 8.4.3 Flow Graphs / 529 \\ 8.4.4 Representation of Flow Graphs / 530 \\ 8.4.5 Loops / 531 \\ 8.4.6 Exercises for Section 8.4 / 531 \\ 8.5 Optimization of Basic Blocks / 533 \\ 8.5.1 The DAG Representation of Basic Blocks / 533 \\ 8.5.2 Finding Local Common Subexpressions / 534 \\ 8.5.3 Dead Code Elimination / 535 \\ 8.5.4 The Use of Algebraic Identities / 536 \\ 8.5.5 Representation of Array References / 537 \\ 8.5.6 Pointer Assignments and Procedure Calls / 539 \\ 8.5.7 Reassembling Basic Blocks From DAG's / 539 \\ 8.5.8 Exercises for Section 8.5 / 541 \\ 8.6 A Simple Code Generator / 542 \\ 8.6.1 Register and Address Descriptors / 543 \\ 8.6.2 The Code-Generation Algorithm / 544 \\ 8.6.3 Design of the Function {\em getReg} / 547 \\ 8.6.4 Exercises for Section 8.6 / 548 \\ 8.7 Peephole Optimization / 549 \\ 8.7.1 Eliminating Redundant Loads and Stores / 550 \\ 8.7.2 Eliminating Unreachable Code / 550 \\ 8.7.3 Flow-of-Control Optimizations / 551 \\ 8.7.4 Algebraic Simplification and Reduction in Strength / 552 \\ 8.7.5 Use of Machine Idioms / 552 \\ 8.7.6 Exercises for Section 8.7 / 553 \\ 8.8 Register Allocation and Assignment / 553 \\ 8.8.1 Global Register Allocation / 553 \\ 8.8.2 Usage Counts / 554 \\ 8.8.3 Register Assignment for Out er Loops / 556 \\ 8.8.4 Register Allocation by Graph Coloring / 556 \\ 8.8.5 Exercises for Section 8.8 / 557 \\ 8.9 Instruction Selection by Tree Rewriting / 558 \\ 8.9.1 Tree-Translation Schemes / 558 \\ 8.9.2 Code Generation by Tiling an Input Tree / 560 \\ 8.9.3 Pattern Matching by Parsing / 563 \\ 8.9.4 Routines for Semantic Checking / 565 \\ 8.9.5 General Tree Matching / 565 \\ 8.9.6 Exercises for Section 8.9 / 567 \\ 8.10 Optimal Code Generation for Expressions / 567 \\ 8.10.1 Ershov Numbers / 567 \\ 8.10.2 Generating Code From Labeled Expression Trees / 568 \\ 8.10.3 Evaluating Expressions with an Insufficient Supply of Registers / 570 \\ 8.10.4 Exercises for Section 8.10 / 572 \\ 8.11 Dynamic Programming Code-Generation / 573 \\ 8.11.1 Contiguous Evaluation / 574 \\ 8.11.2 The Dynamic Programming Algorithm / 575 \\ 8.11.3 Exercises for Section 8.11 / 577 \\ 8.12 Summary of Chapter 8 / 578 \\ 8.13 References for Chapter 8 / 579 \\ 9: Machine-Independent Optimizations / 583 \\ 9.1 The Principal Sources of Optimization / 584 \\ 9.1.1 Causes of Redundancy / 584 \\ 9.1.2 A Running Example: Quicksort / 585 \\ 9.1.3 Semantics-Preserving Transformations / 586 \\ 9.1.4 Global Common Subexpressions / 588 \\ 9.1.5 Copy Propagation / 590 \\ 9.1.6 Dead-Code Elimination / 591 \\ 9.1.7 Code Motion / 592 \\ 9.1.8 Induction Variables and Reduction in Strength / 592 \\ 9.1.9 Exercises for Section 9.1 / 596 \\ 9.2 Introduction to Data-Flow Analysis / 597 \\ 9.2.1 The Data-Flow Abstraction / 597 \\ 9.2.2 The Data-Flow Analysis Schema / 599 \\ 9.2.3 Data-Flow Schemas on Basic Blocks / 600 \\ 9.2.4 Reaching Definitions / 601 \\ 9.2.5 Live-Variable Analysis / 608 \\ 9.2.6 Available Expressions / 610 \\ 9.2.7 Summary / 614 \\ 9.2.8 Exercises for Section 9.2 / 615 \\ 9.3 Foundations of Data-Flow Analysis / 618 \\ 9.3.1 Semilattices / 618 \\ 9.3.2 Transfer Functions / 623 \\ 9.3.3 The Iterative Algorithm for General Frameworks / 626 \\ 9.3.4 Meaning of a Data-Flow Solution / 628 \\ 9.3.5 Exercises for Section 9.3 / 631 \\ 9.4 Constant Propagation / 632 \\ 9.4.1 Data-Flow Values for the Constant-Propagation Framework / 633 \\ 9.4.2 The Meet for the Constant-Propagation Framework / 633 \\ 9.4.3 Transfer Functions for the Constant-Propagation Framework / 634 \\ 9.4.4 Monotonicity of the Constant-Propagation Framework / 635 \\ 9.4.5 Nondistributivity of the Constant-Propagation Framework / 635 \\ 9.4.6 Interpretation of the Results / 637 \\ 9.4.7 Exercises for Section 9.4 / 637 \\ 9.5 Partial-Redundancy Elimination / 639 \\ 9.5.1 The Sources of Redundancy / 639 \\ 9.5.2 Can All Redundancy Be Eliminated? / 642 \\ 9.5.3 The Lazy-Code-Motion Problem / 644 \\ 9.5.4 Anticipation of Expressions / 645 \\ 9.5.5 The Lazy-Code-Motion Algorithm / 646 \\ 9.5.6 Exercises for Section 9.5 / 655 \\ 9.6 Loops in Flow Graphs / 655 \\ 9.6.1 Dominators / 656 \\ 9.6.2 Depth-First Ordering / 660 \\ 9.6.3 Edges in a Depth-First Spanning Tree / 661 \\ 9.6.4 Back Edges and Reducibility / 662 \\ 9.6.5 Depth of a Flow Graph / 665 \\ 9.6.6 Natural Loops / 665 \\ 9.6.7 Speed of Convergence of Iterative Data-Flow Algorithms / 667 \\ 9.6.8 Exercises for Section 9.6 / 669 \\ 9.7 Region-Based Analysis / 672 \\ 9.7.1 Regions / 672 \\ 9.7.2 Region Hierarchies for Reducible Flow Graphs / 673 \\ 9.7.3 Overview of a Region-Based Analysis / 676 \\ 9.7.4 Necessary Assumptions About Transfer Functions / 678 \\ 9.7.5 An Algorithm for Region-Based Analysis / 680 \\ 9.7.6 Handling Nonreducible Flow Graphs / 684 \\ 9.7.7 Exercises for Section 9.7 / 686 \\ 9.8 Symbolic Analysis / 686 \\ 9.8.1 Affine Expressions of Reference Variables / 687 \\ 9.8.2 Data-Flow Problem Formulation / 689 \\ 9.8.3 Region-Based Symbolic Analysis / 694 \\ 9.8.4 Exercises for Section 9.8 / 699 \\ 9.9 Summary of Chapter 9 / 700 \\ 9.10 References for Chapter 9 / 703 \\ 10: Instruction-Level Parallelism / 707 \\ 10.1 Processor Architectures / 708 \\ 10.1.1 Instruction Pipelines and Branch Delays / 708 \\ 10.1.2 Pipelined Execution / 709 \\ 10.1.3 Multiple Instruction Issue / 710 \\ 10.2 Code-Scheduling Constraints / 710 \\ 10.2.1 Data Dependence / 711 \\ 10.2.2 Finding Dependences Among Memory Accesses / 712 \\ 10.2.3 Tradeoff Between Register Usage and Parallelism. / 713 \\ 10.2.4 Phase Ordering Between Register Allocation and Code Scheduling / 716 \\ 10.2.5 Control Dependence / 716 \\ 10.2.6 Speculative Execution Support / 717 \\ 10.2.7 A Basic Machine Model / 719 \\ 10.2.8 Exercises for Section 10.2 / 720 \\ 10.3 Basic-Block Scheduling / 721 \\ 10.3.1 Data-Dependence Graphs / 722 \\ 10.3.2 List Scheduling of Basic Blocks / 723 \\ 10.3.3 Prioritized Topological Orders / 725 \\ 10.3.4 Exercises for Section 10.3 / 726 \\ 10.4 Global Code Scheduling / 727 \\ 10.4.1 Primitive Code Motion / 728 \\ 10.4.2 Upward Code Motion / 730 \\ 10.4.3 Downward Code Motion / 731 \\ 10.4.4 Updating Data Dependences / 732 \\ 10.4.5 Global Scheduling Algorithms / 732 \\ 10.4.6 Advanced Code Motion Techniques / 736 \\ 10.4.7 Interaction with Dynamic Schedulers / 737 \\ 10.4.8 Exercises for Section 10.4 / 737 \\ 10.5 Software Pipelining / 738 \\ 10.5.1 Introduction / 738 \\ 10.5.2 Software Pipelining of Loops / 740 \\ 10.5.3 Register Allocation and Code Generation / 743 \\ 10.5.4 Do-Across Loops / 743 \\ 10.5.5 Goals and Constraints of Software Pipelining / 745 \\ 10.5.6 A Software-Pipelining Algorithm / 749 \\ 10.5.7 Scheduling Acyclic Data-Dependence Graphs / 749 \\ 10.5.8 Scheduling Cyclic Dependence Graphs / 751 \\ 10.5.9 Improvements to the Pipelining Algorithms / 758 \\ 10.5.10 Modular Variable Expansion / 758 \\ 10.5.11 Conditional Statements / 761 \\ 10.5.12 Hardware Support for Software Pipelining / 762 \\ 10.5.13 Exercises for Section 10.5 / 763 \\ 10.6 Summary of Chapter 10 / 765 \\ 10.7 References for Chapter 10 / 766 \\ 11: Optimizing for Parallelism and Locality / 769 \\ 11.1 Basic Concepts / 771 \\ 11.1.1 Multiprocessors / 772 \\ 11.1.2 Parallelism in Applications / 773 \\ 11.1.3 Loop-Level Parallelism / 775 \\ 11.1.4 Data Locality / 777 \\ 11.1.5 Introduction to Affine Transform Theory / 778 \\ 11.2 Matrix Multiply: An In-Depth Example / 782 \\ 11.2.1 The Matrix-Multiplication Algorithm / 782 \\ 11.2.2 Optimizations / 785 \\ 11.2.3 Cache Interference / 788 \\ 11.2.4 Exercises for Section 11.2 / 788 \\ 11.3 Iteration Spaces / 788 \\ 11.3.1 Constructing Iteration Spaces from Loop Nests / 788 \\ 11.3.2 Execution Order for Loop Nests / 791 \\ 11.3.3 Matrix Formulation of Inequalities / 791 \\ 11.3.4 Incorporating Symbolic Constants / 793 \\ 11.3.5 Controlling the Order of Execution / 793 \\ 11.3.6 Changing Axes / 798 \\ 11.3.7 Exercises for Section 11.3 / 799 \\ 11.4 Affine Array Indexes / 801 \\ 11.4.1 Affine Accesses / 802 \\ 11.4.2 Affine and Nonaffine Accesses in Practice / 803 \\ 11.4.3 Exercises for Section 11.4 / 804 \\ 11.5 Data Reuse / 804 \\ 11.5.1 Types of Reuse / 805 \\ 11.5.2 Self Reuse / 806 \\ 11.5.3 Self-Spatial Reuse / 809 \\ 11.5.4 Group Reuse / 811 \\ 11.5.5 Exercises for Section 11.5 / 814 \\ 11.6 Array Data-Dependence Analysis / 815 \\ 11.6.1 Definition of Data Dependence of Array Accesses / 816 \\ 11.6.2 Integer Linear Programming / 817 \\ 11.6.3 The GCD Test / 818 \\ 11.6.4 Heuristics for Solving Integer Linear Programs / 820 \\ 11.6.5 Solving General Integer Linear Programs / 823 \\ 11.6.6 Summary / 825 \\ 11.6.7 Exercises for Section 11.6 / 826 \\ 11.7 Finding Synchronization-Free Parallelism / 828 \\ 11.7.1 An Introductory Example / 828 \\ 11.7.2 Affine Space Partitions / 830 \\ 11.7.3 Space-Partition Constraints / 831 \\ 11.7.4 Solving Space-Partition Constraints / 835 \\ 11.7.5 A Simple Code-Generation Algorithm / 838 \\ 11.7.6 Eliminating Empty Iterations / 841 \\ 11.7.7 Eliminating Tests from Innermost Loops / 844 \\ 11.7.8 Source-Code Transforms / 846 \\ 11.7.9 Exercises for Section 11.7 / 851 \\ 11.8 Synchronization Between Parallel Loops / 853 \\ 11.8.1 A Constant Number of Synchronizations / 853 \\ 11.8.2 Program-Dependence Graphs / 854 \\ 11.8.3 Hierarchical Time / 857 \\ 11.8.4 The Parallelization Algorithm / 859 \\ 11.8.5 Exercises for Section 11.8 / 860 \\ 11.9 Pipelining / 861 \\ 11.9.1 What is Pipelining? / 861 \\ 11.9.2 Successive Over-Relaxation (SOR): An Example / 863 \\ 11.9.3 Fully Permutable Loops / 864 \\ 11.9.4 Pipelining Fully Permutable Loops / 864 \\ 11.9.5 General Theory / 867 \\ 11.9.6 Time-Partition Constraints / 868 \\ 11.9.7 Solving Time-Partition Constraints by Farkas' Lemma / 872 \\ 11.9.8 Code Transformations / 875 \\ 11.9.9 Parallelism With Minimum Synchronization / 880 \\ 11.9.10 Exercises for Section 11.9 / 882 \\ 11.10 Locality Optimizations / 884 \\ 11.10.1 Temporal Locality of Computed Data / 885 \\ 11.10.2 Array Contraction / 885 \\ 11.10.3 Partition Interleaving / 887 \\ 11.10.4 Putting it All Together / 890 \\ 11.10.5 Exercises for Section 11.10 / 892 \\ 11.11 Other Uses of Affine Transforms / 893 \\ 11.11.1 Distributed memory machines / 894 \\ 11.11.2 Multi-Instruction-Issue Processors / 895 \\ 11.11.3 Vector and SIMD Instructions / 895 \\ 11.11.4 Prefetching / 896 \\ 11.12 Summary of Chapter 11 / 897 \\ 11.13 References for Chapter 11 / 899 \\ 12: Interprocedural Analysis / 903 \\ 12.1 Basic Concepts / 904 \\ 12.1.1 Call Graphs / 904 \\ 12.1.2 Context Sensitivity / 906 \\ 12.1.3 Call Strings / 908 \\ 12.1.4 Cloning-Based Context-Sensitive Analysis / 910 \\ 12.1.5 Summary-Based Context-Sensitive Analysis / 911 \\ 12.1.6 Exercises for Section 12.1 / 914 \\ 12.2 Why Interprocedural Analysis? / 916 \\ 12.2.1 Virtual Method Invocation / 916 \\ 12.2.2 Pointer Alias Analysis / 917 \\ 12.2.3 Parallelization / 917 \\ 12.2.4 Detection of Software Errors and Vulnerabilities / 917 \\ 12.2.5 SQL Injection / 918 \\ 12.2.6 Buffer Overflow / 920 \\ 12.3 A Logical Representation of Data Flow / 921 \\ 12.3.1 Introduction to Datalog / 921 \\ 12.3.2 Datalog Rules / 922 \\ 12.3.3 Intensional and Extensional Predicates / 924 \\ 12.3.4 Execution of Datalog Programs / 927 \\ 12.3.5 Incremental Evaluation of Datalog Programs / 928 \\ 12.3.6 Problematic Datalog Rules / 930 \\ 12.3.7 Exercises for Section 12.3 / 932 \\ 12.4 A Simple Pointer-Analysis Algorithm / 933 \\ 12.4.1 Why is Pointer Analysis Difficult / 934 \\ 12.4.2 A Model for Pointers and References / 935 \\ 12.4.3 Flow Insensitivity / 936 \\ 12.4.4 The Formulation in Datalog / 937 \\ 12.4.5 Using Type Information / 938 \\ 12.4.6 Exercises for Section 12.4 / 939 \\ 12.5 Context-Insensitive Interprocedural Analysis / 941 \\ 12.5.1 Effects of a Method Invocation / 941 \\ 12.5.2 Call Graph Discovery in Datalog / 943 \\ 12.5.3 Dynamic Loading and Reflection / 944 \\ 12.5.4 Exercises for Section 12.5 / 945 \\ 12.6 Context-Sensitive Pointer Analysis / 945 \\ 12.6.1 Contexts and Call Strings / 946 \\ 12.6.2 Adding Context to Datalog Rules / 949 \\ 12.6.3 Additional Observations About Sensitivity / 949 \\ 12.6.4 Exercises for Section 12.6 / 950 \\ 12.7 Datalog Implementation by BDD's / 951 \\ 12.7.1 Binary Decision Diagrams / 951 \\ 12.7.2 Transformations on BDD's / 953 \\ 12.7.3 Representing Relations by BDD's / 954 \\ 12.7.4 Relational Operations as BDD Operations / 954 \\ 12.7.5 Using BDD's for Points-to Analysis / 957 \\ 12.7.6 Exercises for Section 12.7 / 958 \\ 12.8 Summary of Chapter 12 / 958 \\ 12.9 References for Chapter 12 / 961 \\ A: A Complete Front End / 965 \\ A.1 The Source Language / 965 \\ A.2 Main / 966 \\ A.3 Lexical Analyzer / 967 \\ A.4 Symbol Tables and Types / 970 \\ A.5 Intermediate Code for Expressions / 971 \\ A.6 Jumping Code for Boolean Expressions / 974 \\ A.7 Intermediate Code for Statements / 978 \\ A.8 Parser / 981 \\ A.9 Creating the Front End / 986 \\ B: Finding Linearly Independent Solutions / 989 \\ Index / 993

entry:
@Book{Aho:2007:CPT,
  editor =       "Alfred V. Aho and Monica S. Lam and Ravi Sethi and
                 Jeffrey D. Ullman",
  title =        "Compilers: Principles, Techniques, and Tools",
  publisher =    "Pearson/Addison Wesley",
  address =      "Boston, MA, USA",
  edition =      "Second",
  pages =        "xxiv + 1009",
  year =         "2007",
  ISBN =         "0-321-48681-1 (hardcover), 0-321-49169-6 (paperback)",
  ISBN-13 =      "978-0-321-48681-3 (hardcover), 978-0-321-49169-5
                 (paperback)",
  LCCN =         "QA76.76.C65 A37 2007",
  bibdate =      "Tue Jan 30 16:21:16 MST 2007",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/unix.bib;
                 z3950.loc.gov:7090/Voyager",
  URL =          "http://www.loc.gov/catdir/toc/ecip0618/2006024333.html",
  abstract =     "This new edition of the classic `Dragon' book has been
                 completely revised to include the most recent
                 developments to compiling. The book provides a thorough
                 introduction to compiler design and continues to
                 emphasize the applicability of compiler technology to a
                 broad range of problems in software design and
                 development. The first half of the book is designed for
                 use in an undergraduate compilers course while the
                 second half can be used in a graduate course stressing
                 code optimization.",
  acknowledgement = ack-nhfb,
  remark =       "Revised edition of \cite{Aho:1986:CPC}. This is
                 commonly called the ``purple dragon'' book, after its
                 colorful cover design.",
  shorttableofcontents = "1: Introduction / 1 \\
                 2: A Simple Syntax-Directed Translator / 39 \\
                 3: Lexical Analysis / 109 \\
                 4: Syntax Analysis / 191 \\
                 5: Syntax-Directed Translation / 303 \\
                 6: Intermediate-Code Generation / 357 \\
                 7: Run-Time Environments / 427 \\
                 8: Code Generation / 505 \\
                 9: Machine-Independent Optimizations / 583 \\
                 10: Instruction-Level Parallelism / 707 \\
                 11: Optimizing for Parallelism and Locality / 769 \\
                 12: Interprocedural Analysis / 903 \\
                 A: A Complete Front End / 965 \\
                 B: Finding Linearly Independent Solutions / 989 \\
                 Index / 993",
  subject =      "Compilers (Computer programs)",
  tableofcontents = "1: Introduction / 1 \\
                 1.1 Language Processors / 1 \\
                 1.1.1 Exercises for Section 1.1 / 3 \\
                 1.2 The Structure of a Compiler / 4 \\
                 1.2.1 Lexical Analysis / 5 \\
                 1.2.2 Syntax Analysis / 8 \\
                 1.2.3 Semantic Analysis / 8 \\
                 1.2.4 Intermediate Code Generation / 9 \\
                 1.2.5 Code Optimization / 10 \\
                 1.2.6 Code Generation / 10 \\
                 1.2.7 Symbol-Table Management / 11 \\
                 1.2.8 The Grouping of Phases into Passes / 11 \\
                 1.2.9 Compiler-Construction Tools / 12 \\
                 1.3 The Evolution of Programming Languages / 12 \\
                 1.3.1 The Move to Higher-level Languages / 13 \\
                 1.3.2 Impacts on Compilers / 14 \\
                 1.3.3 Exercises for Section 1.3 / 14 \\
                 1.4 The Science of Building a Compiler / 15 \\
                 1.4.1 Modeling in Compiler Design and Implementation /
                 15 \\
                 1.4.2 The Science of Code Optimization / 15 \\
                 1.5 Applications of Compiler Technology / 17 \\
                 1.5.1 Implementation of High-Level Programming
                 Languages / 17 \\
                 1.5.2 Optimizations for Computer Architectures / 19 \\
                 1.5.3 Design of New Computer Architectures / 21 \\
                 1.5.4 Program Translations / 22 \\
                 1.5.5 Software Productivity Tools / 23 \\
                 1.6 Programming Language Basics / 25 \\
                 1.6.1 The Static/Dynamic Distinction / 25 \\
                 1.6.2 Environments and States / 26 \\
                 1.6.3 Static Scope and Block Structure / 28 \\
                 1.6.4 Explicit Access Control / 31 \\
                 1.6.5 Dynamic Scope / 31 \\
                 1.6.6 Parameter Passing Mechanisms / 33 \\
                 1.6.7 Aliasing / 35 \\
                 1.6.8 Exercises for Section 1.6 / 35 \\
                 1.7 Summary of Chapter 1 / 36 \\
                 1.8 References for Chapter 1 / 38 \\
                 2: A Simple Syntax-Directed Translator / 39 \\
                 2.1 Introduction / 40 \\
                 2.2 Syntax Definition / 42 \\
                 2.2.1 Definition of Grammars / 42 \\
                 2.2.2 Derivations / 44 \\
                 2.2.3 Parse Trees / 45 \\
                 2.2.4 Ambiguity / 47 \\
                 2.2.5 Associativity of Operators / 48 \\
                 2.2.6 Precedence of Operators / 48 \\
                 2.2.7 Exercises for Section 2.2 / 51 \\
                 2.3 Syntax-Directed Translation / 52 \\
                 2.3.1 Postfix Notation / 53 \\
                 2.3.2 Synthesized Attributes / 54 \\
                 2.3.3 Simple Syntax-Directed Definitions / 56 \\
                 2.3.4 Tree Traversals / 56 \\
                 2.3.5 Translation Schemes / 57 \\
                 2.3.6 Exercises for Section 2.3 / 60 \\
                 2.4 Parsing / 60 \\
                 2.4.1 Top-Down Parsing / 61 \\
                 2.4.2 Predictive Parsing / 64 \\
                 2.4.3 When to Use $\epsilon$-Productions / 65 \\
                 2.4.4 Designing a Predictive Parser / 66 \\
                 2.4.5 Left Recursion / 67 \\
                 2.4.6 Exercises for Section 2.4 / 68 \\
                 2.5 A Translator for Simple Expressions / 68 \\
                 2.5.1 Abstract and Concrete Syntax / 69 \\
                 2.5.2 Adapting the Translation Scheme / 70 \\
                 2.5.3 Procedures for the Nonterminals / 72 \\
                 2.5.4 Simplifying the Translator / 73 \\
                 2.5.5 The Complete Program / 74 \\
                 2.6 Lexical Analysis / 76 \\
                 2.6.1 Removal of White Space and Comments / 77 \\
                 2.6.2 Reading Ahead / 78 \\
                 2.6.3 Constants / 78 \\
                 2.6.4 Recognizing Keywords and Identifiers / 79 \\
                 2.6.5 A Lexical Analyzer / 81 \\
                 2.6.6 Exercises for Section 2.6 / 84 \\
                 2.7 Symbol Tables / 85 \\
                 2.7.1 Symbol Table Per Scope / 86 \\
                 2.7.2 The Use of Symbol Tables / 89 \\
                 2.8 Intermediate Code Generation / 91 \\
                 2.8.1 Two Kinds of Intermediate Representations / 91
                 \\
                 2.8.2 Construction of Syntax Trees / 92 \\
                 2.8.3 Static Checking / 97 \\
                 2.8.4 Three-Address Code / 99 \\
                 2.8.5 Exercises for Section 2.8 / 105 \\
                 2.9 Summary of Chapter 2 / 105 \\
                 3: Lexical Analysis / 109 \\
                 3.1 The Role of the Lexical Analyzer / 109 \\
                 3.1.1 Lexical Analysis Versus Parsing / 110 \\
                 3.1.2 Tokens, Patterns, and Lexemes / 111 \\
                 3.1.3 Attributes for Tokens / 112 \\
                 3.1.4 Lexical Errors / 113 \\
                 3.1.5 Exercises for Section 3.1 / 114 \\
                 3.2 Input Buffering / 115 \\
                 3.2.1 Buffer Pairs / 115 \\
                 3.2.2 Sentinels / 116 \\
                 3.3 Specification of Tokens / 116 \\
                 3.3.1 Strings and Languages / 117 \\
                 3.3.2 Operations on Languages / 119 \\
                 3.3.3 Regular Expressions / 120 \\
                 3.3.4 Regular Definitions / 123 \\
                 3.3.5 Extensions of Regular Expressions / 124 \\
                 3.3.6 Exercises for Section 3.3 / 125 \\
                 3.4 Recognition of Tokens / 128 \\
                 3.4.1 Transition Diagrams / 130 \\
                 3.4.2 Recognition of Reserved Words and Identifiers /
                 132 \\
                 3.4.3 Completion of the Running Example / 133 \\
                 3.4.4 Architecture of a Transition-Diagram-Based
                 Lexical Analyzer / 134 \\
                 3.4.5 Exercises for Section 3.4 / 136 \\
                 3.5 The Lexical-Analyzer Generator Lex / 140 \\
                 3.5.1 Use of Lex / 140 \\
                 3.5.2 Structure of Lex Programs / 141 \\
                 3.5.3 Conflict Resolution in Lex / 144 \\
                 3.5.4 The Lookahead Operator / 144 \\
                 3.5.5 Exercises for Section 3.5 / 146 \\
                 3.6 Finite Automata / 147 \\
                 3.6.1 Nondeterministic Finite Automata / 147 \\
                 3.6.2 Transition Tables / 148 \\
                 3.6.3 Acceptance of Input Strings by Automata / 149 \\
                 3.6.4 Deterministic Finite Automata / 149 \\
                 3.6.5 Exercises for Section 3.6 / 151 \\
                 3.7 From Regular Expressions to Automata / 152 \\
                 3.7.1 Conversion of an NFA to a DFA / 152 \\
                 3.7.2 Simulation of an NFA / 156 \\
                 3.7.3 Efficiency of NFA Simulation / 157 \\
                 3.7.4 Construction of an NFA from a Regular Expression
                 / 159 \\
                 3.7.5 Efficiency of String-Processing Algorithms / 163
                 \\
                 3.7.6 Exercises for Section 3.7 / 166 \\
                 3.8 Design of a Lexical-Analyzer Generator / 166 \\
                 3.8.1 The Structure of the Generated Analyzer / 167 \\
                 3.8.2 Pattern Matching Based on NFA's / 168 \\
                 3.8.3 DFA's for Lexical Analyzers / 170 \\
                 3.8.4 Implementing the Lookahead Operator / 171 \\
                 3.8.5 Exercises for Section 3.8 / 172 \\
                 3.9 Optimization of DFA-Based Pattern Matchers / 173
                 \\
                 3.9.1 Important States of an NFA / 173 \\
                 3.9.2 Functions Computed From the Syntax Tree / 175 \\
                 3.9.3 Computing {\em nullable}, {\em firstpos}, and
                 {\em lastpos} / 176 \\
                 3.9.4 Computing {\em followpos} / 177 \\
                 3.9.5 Converting a Regular Expression Directly to a DFA
                 / 179 \\
                 3.9.6 Minimizing the Number of States of a DFA / 180
                 \\
                 3.9.7 State Minimization in Lexical Analyzers / 184 \\
                 3.9.8 Trading Time for Space in DFA Simulation / 185
                 \\
                 3.9.9 Exercises for Section 3.9 / 186 \\
                 3.10 Summary of Chapter 3 / 187 \\
                 3.11 References for Chapter 3 / 189 \\
                 4: Syntax Analysis / 191 \\
                 4.1 Introduction / 192 \\
                 4.1.1 The Role of the Parser / 192 \\
                 4.1.2 Representative Grammars / 193 \\
                 4.1.3 Syntax Error Handling / 194 \\
                 4.1.4 Error-Recovery Strategies / 195 \\
                 4.2 Context-Free Grammars / 197 \\
                 4.2.1 The Formal Definition of a Context-Free Grammar.
                 / 197 \\
                 4.2.2 Notational Conventions / 198 \\
                 4.2.3 Derivations / 199 \\
                 4.2.4 Parse Trees and Derivations / 201 \\
                 4.2.5 Ambiguity / 203 \\
                 4.2.6 Verifying the Language Generated by a Grammar /
                 204 \\
                 4.2.7 Context-Free Grammars Versus Regular Expressions
                 / 205 \\
                 4.2.8 Exercise for Section 4.2 / 206 \\
                 4.3 Writing a Grammar / 209 \\
                 4.3.1 Lexical Versus Syntactic Analysis / 209 \\
                 4.3.2 Eliminating Ambiguity / 210 \\
                 4.3.3 Elimination of Left Recursion / 212 \\
                 4.3.4 Left Factoring / 214 \\
                 4.3.5 Non-Context-Free Language Constructs / 215 \\
                 4.3.6 Exercises for Section 4.3 / 216 \\
                 4.4 Top-Down Parsing / 217 \\
                 4.4.1 Recursive-Descent Parsing / 219 \\
                 4.4.2 FIRST and FOLLOW / 220 \\
                 4.4.3 LL(l) Grammars / 222 \\
                 4.4.4 Nonrecursive Predictive Parsing / 226 \\
                 4.4.5 Error Recovery in Predictive Parsing / 228 \\
                 4.4.6 Exercises for Section 4.4 / 231 \\
                 4.5 Bottom-Up Parsing / 233 \\
                 4.5.1 Reductions / 234 \\
                 4.5.2 Handle Pruning / 235 \\
                 4.5.3 Shift-Reduce Parsing / 236 \\
                 4.5.4 Conflicts During Shift-Reduce Parsing / 238 \\
                 4.5.5 Exercises for Section 4.5 / 240 \\
                 4.6 Introduction to LR Parsing: Simple LR / 241 \\
                 4.6.1 Why LR Parsers? / 241 \\
                 4.6.2 Items and the LR(0) Automaton / 242 \\
                 4.6.3 The LR-Parsing Algorithm / 248 \\
                 4.6.4 Constructing SLR-Parsing Tables / 252 \\
                 4.6.5 Viable Prefixes / 256 \\
                 4.6.6 Exercises for Section 4.6 / 257 \\
                 4.7 More Powerful LR Parsers / 259 \\
                 4.7.1 Canonical LR(1) Items / 260 \\
                 4.7.2 Constructing LR(1) Sets of Items / 261 \\
                 4.7.3 Canonical LR(1) Parsing Tables / 265 \\
                 4.7.4 Constructing LALR Parsing Tables / 266 \\
                 4.7.5 Efficient Construction of LALR Parsing Tables /
                 270 \\
                 4.7.6 Compaction of LR Parsing Tables / 275 \\
                 4.7.7 Exercises for Section 4.7 / 277 \\
                 4.8 Using Ambiguous Grammars / 278 \\
                 4.8.1 Precedence and Associativity to Resolve Conflicts
                 / 279 \\
                 4.8.2 The ``Dangling-Else'' Ambiguity / 281 \\
                 4.8.3 Error Recovery in LR Parsing / 283 \\
                 4.8.4 Exercises for Section 4.8 / 285 \\
                 4.9 Parser Generators / 287 \\
                 4.9.1 The Parser Generator Yacc / 287 \\
                 4.9.2 Using Yacc with Ambiguous Grammars / 291 \\
                 4.9.3 Creating Yacc Lexical Analyzers with Lex / 294
                 \\
                 4.9.4 Error Recovery in Yacc / 295 \\
                 4.9.5 Exercises for Section 4.9 / 297 \\
                 4.10 Summary of Chapter 4 / 297 \\
                 4.11 References for Chapter 4 / 300 \\
                 5: Syntax-Directed Translation / 303 \\
                 5.1 Syntax-Directed Definitions / 304 \\
                 5.1.1 Inherited and Synthesized Attributes / 304 \\
                 5.1.2 Evaluating an SDD at the Nodes of a Parse Tree /
                 306 \\
                 5.1.3 Exercises for Section 5.1 / 309 \\
                 5.2 Evaluation Orders for SDD's / 310 \\
                 5.2.1 Dependency Graphs / 310 \\
                 5.2.2 Ordering the Evaluation of Attributes / 312 \\
                 5.2.3 S-Attributed Definitions / 312 \\
                 5.2.4 L-Attributed Definitions / 313 \\
                 5.2.5 Semantic Rules with Controlled Side Effects / 314
                 \\
                 5.2.6 Exercises for Section 5.2 / 317 \\
                 5.3 Applications of Syntax-Directed Translation / 318
                 \\
                 5.3.1 Construction of Syntax Trees / 318 \\
                 5.3.2 The Structure of a Type / 321 \\
                 5.3.3 Exercises for Section 5.3 / 323 \\
                 5.4 Syntax-Directed Translation Schemes / 324 \\
                 5.4.1 Postfix Translation Schemes / 324 \\
                 5.4.2 Parser-Stack Implementation of Postfix SDT's /
                 325 \\
                 5.4.3 SDT's With Actions Inside Productions / 327 \\
                 5.4.4 Eliminating Left Recursion From SDT 's / 328 \\
                 5.4.5 SDT's for L-Attributed Definitions / 331 \\
                 5.4.6 Exercises for Section 5.4 / 336 \\
                 5.5 Implementing L-Attributed SDD's / 337 \\
                 5.5.1 Translation During Recursive-Descent Parsing /
                 338 \\
                 5.5.2 On-The-Fly Code Generation / 340 \\
                 5.5.3 L-Attributed SDD's and LL Parsing / 343 \\
                 5.5.4 Bottom-Up Parsing of L-Attributed SDD's / 348 \\
                 5.5.5 Exercises for Section 5.5 / 352 \\
                 5.6 Summary of Chapter 5 / 353 \\
                 5.7 References for Chapter 5 / 354 \\
                 6: Intermediate-Code Generation / 357 \\
                 6.1 Variants of Syntax Trees / 358 \\
                 6.1.1 Directed Acyclic Graphs for Expressions / 359 \\
                 6.1.2 The Value-Number Method for Constructing DAG's /
                 360 \\
                 6.1.3 Exercises for Section 6.1 / 362 \\
                 6.2 Three-Address Code / 363 \\
                 6.2.1 Addresses and Instructions / 364 \\
                 6.2.2 Quadruples / 366 \\
                 6.2.3 Triples / 367 \\
                 6.2.4 Static Single-Assignment Form / 369 \\
                 6.2.5 Exercises for Section 6.2 / 370 \\
                 6.3 Types and Declarations / 370 \\
                 6.3.1 Type Expressions / 371 \\
                 6.3.2 Type Equivalence / 372 \\
                 6.3.3 Declarations / 373 \\
                 6.3.4 Storage Layout for Local Names / 373 \\
                 6.3.5 Sequences of Declarations / 376 \\
                 6.3.6 Fields in Records and Classes / 376 \\
                 6.3.7 Exercises for Section 6.3 / 378 \\
                 6.4 Translation of Expressions / 378 \\
                 6.4.1 Operations Within Expressions / 378 \\
                 6.4.2 Incremental Translation / 380 \\
                 6.4.3 Addressing Array Elements / 381 \\
                 6.4.4 Translation of Array References / 383 \\
                 6.4.5 Exercises for Section 6.4 / 384 \\
                 6.5 Type Checking / 386 \\
                 6.5.1 Rules for Type Checking / 387 \\
                 6.5.2 Type Conversions / 388 \\
                 6.5.3 Overloading of Functions and Operators / 390 \\
                 6.5.4 Type Inference and Polymorphic Functions / 391
                 \\
                 6.5.5 An Algorithm for Unification / 395 \\
                 6.5.6 Exercises for Section 6.5 / 398 \\
                 6.6 Control Flow / 399 \\
                 6.6.1 Boolean Expressions / 399 \\
                 6.6.2 Short-Circuit Code / 400 \\
                 6.6.3 Flow-of-Control Statements / 401 \\
                 6.6.4 Control-Flow Translation of Boolean Expressions /
                 403 \\
                 6.6.5 A voiding Redundant Gotos / 405 \\
                 6.6.6 Boolean Values and Jumping Code / 408 \\
                 6.6.7 Exercises for Section 6.6 / 408 \\
                 6.7 Backpatching / 410 \\
                 6.7.1 One-Pass Code Generation Using Backpatching / 410
                 \\
                 6.7.2 Backpatching for Boolean Expressions / 411 \\
                 6.7.3 Flow-of-Control Statements / 413 \\
                 6.7.4 Break-, Continue-, and Goto-Statements / 416 \\
                 6.7.5 Exercises for Section 6.7 / 417 \\
                 6.8 Switch-Statements / 418 \\
                 6.8.1 Translation of Switch-Statements / 419 \\
                 6.8.2 Syntax-Directed Translation of Switch-Statements
                 / 420 \\
                 6.8.3 Exercises for Section 6.8 / 421 \\
                 6.9 Intermediate Code for Procedures / 422 \\
                 6.10 Summary of Chapter 6 / 424 \\
                 6.11 References for Chapter 6 / 425 \\
                 7: Run-Time Environments / 427 \\
                 7.1 Storage Organization / 427 \\
                 7.1.1 Static Versus Dynamic Storage Allocation / 429
                 \\
                 7.2 Stack Allocation of Space / 430 \\
                 7.2.1 Activation Trees / 430 \\
                 7.2.2 Activation Records / 433 \\
                 7.2.3 Calling Sequences / 436 \\
                 7.2.4 Variable-Length Data on the Stack / 438 \\
                 7.2.5 Exercises for Section 7.2 / 440 \\
                 7.3 Access to Nonlocal Data on the Stack / 441 \\
                 7.3.1 Data Access Without Nested Procedures / 442 \\
                 7.3.2 Issues With Nested Procedures / 442 \\
                 7.3.3 A Language With Nested Procedure Declarations /
                 443 \\
                 7.3.4 Nesting Depth / 443 \\
                 7.3.5 Access Links / 445 \\
                 7.3.6 Manipulating Access Links / 447 \\
                 7.3.7 Access Links for Procedure Parameters / 448 \\
                 7.3.8 Displays / 449 \\
                 7.3.9 Exercises for Section 7.3 / 451 \\
                 7.4 Heap Management / 452 \\
                 7.4.1 The Memory Manager / 453 \\
                 7.4.2 The Memory Hierarchy of a Computer / 454 \\
                 7.4.3 Locality in Programs / 455 \\
                 7.4.4 Reducing Fragmentation / 457 \\
                 7.4.5 Manual Deallocation Requests / 460 \\
                 7.4.6 Exercises for Section 7.4 / 463 \\
                 7.5 Introduction to Garbage Collection / 463 \\
                 7.5.1 Design Goals for Garbage Collectors / 464 \\
                 7.5.2 Reachability / 466 \\
                 7.5.3 Reference Counting Garbage Collectors / 468 \\
                 7.5.4 Exercises for Section 7.5 / 470 \\
                 7.6 Introduction to Trace-Based Collection / 470 \\
                 7.6.1 A Basic Mark-and-Sweep Collector / 471 \\
                 7.6.2 Basic Abstraction / 473 \\
                 7.6.3 Optimizing Mark-and-Sweep / 475 \\
                 7.6.4 Mark-and-Compact Garbage Collectors / 476 \\
                 7.6.5 Copying collectors / 478 \\
                 7.6.6 Comparing Costs / 482 \\
                 7.6.7 Exercises for Section 7.6 / 482 \\
                 7.7 Short-Pause Garbage Collection / 483 \\
                 7.7.1 Incremental Garbage Collection / 483 \\
                 7.7.2 Incremental Reachability Analysis / 485 \\
                 7.7.3 Partial-Collection Basics / 487 \\
                 7.7.4 Generational Garbage Collection / 488 \\
                 7.7.5 The Train Algorithm / 490 \\
                 7.7.6 Exercises for Section 7.7 / 493 \\
                 7.8 Advanced Topics in Garbage Collection / 494 \\
                 7.8.1 Parallel and Concurrent Garbage Collection / 495
                 \\
                 7.8.2 Partial Object Relocation / 497 \\
                 7.8.3 Conservative Collection for Unsafe Languages /
                 498 \\
                 7.8.4 Weak References / 498 \\
                 7.8.5 Exercises for Section 7.8 / 499 \\
                 7.9 Summary of Chapter 7 / 500 \\
                 7.10 References for Chapter 7 / 502 \\
                 8: Code Generation / 505 \\
                 8.1 Issues in the Design of a Code Generator / 506 \\
                 8.1.1 Input to the Code Generator / 507 \\
                 8.1.2 The Target Program / 507 \\
                 8.1.3 Instruction Selection / 508 \\
                 8.1.4 Register Allocation / 510 \\
                 8.1.5 Evaluation Order / 511 \\
                 8.2 The Target Language / 512 \\
                 8.2.1 A Simple Target Machine Model / 512 \\
                 8.2.2 Program and Instruction Costs / 515 \\
                 8.2.3 Exercises for Section 8.2 / 516 \\
                 8.3 Addresses in the Target Code / 518 \\
                 8.3.1 Static Allocation / 518 \\
                 8.3.2 Stack Allocation / 520 \\
                 8.3.3 Run-Time Addresses for Names / 522 \\
                 8.3.4 Exercises for Section 8.3 / 524 \\
                 8.4 Basic Blocks and Flow Graphs / 525 \\
                 8.4.1 Basic Blocks / 526 \\
                 8.4.2 Next-Use Information / 528 \\
                 8.4.3 Flow Graphs / 529 \\
                 8.4.4 Representation of Flow Graphs / 530 \\
                 8.4.5 Loops / 531 \\
                 8.4.6 Exercises for Section 8.4 / 531 \\
                 8.5 Optimization of Basic Blocks / 533 \\
                 8.5.1 The DAG Representation of Basic Blocks / 533 \\
                 8.5.2 Finding Local Common Subexpressions / 534 \\
                 8.5.3 Dead Code Elimination / 535 \\
                 8.5.4 The Use of Algebraic Identities / 536 \\
                 8.5.5 Representation of Array References / 537 \\
                 8.5.6 Pointer Assignments and Procedure Calls / 539 \\
                 8.5.7 Reassembling Basic Blocks From DAG's / 539 \\
                 8.5.8 Exercises for Section 8.5 / 541 \\
                 8.6 A Simple Code Generator / 542 \\
                 8.6.1 Register and Address Descriptors / 543 \\
                 8.6.2 The Code-Generation Algorithm / 544 \\
                 8.6.3 Design of the Function {\em getReg} / 547 \\
                 8.6.4 Exercises for Section 8.6 / 548 \\
                 8.7 Peephole Optimization / 549 \\
                 8.7.1 Eliminating Redundant Loads and Stores / 550 \\
                 8.7.2 Eliminating Unreachable Code / 550 \\
                 8.7.3 Flow-of-Control Optimizations / 551 \\
                 8.7.4 Algebraic Simplification and Reduction in
                 Strength / 552 \\
                 8.7.5 Use of Machine Idioms / 552 \\
                 8.7.6 Exercises for Section 8.7 / 553 \\
                 8.8 Register Allocation and Assignment / 553 \\
                 8.8.1 Global Register Allocation / 553 \\
                 8.8.2 Usage Counts / 554 \\
                 8.8.3 Register Assignment for Out er Loops / 556 \\
                 8.8.4 Register Allocation by Graph Coloring / 556 \\
                 8.8.5 Exercises for Section 8.8 / 557 \\
                 8.9 Instruction Selection by Tree Rewriting / 558 \\
                 8.9.1 Tree-Translation Schemes / 558 \\
                 8.9.2 Code Generation by Tiling an Input Tree / 560 \\
                 8.9.3 Pattern Matching by Parsing / 563 \\
                 8.9.4 Routines for Semantic Checking / 565 \\
                 8.9.5 General Tree Matching / 565 \\
                 8.9.6 Exercises for Section 8.9 / 567 \\
                 8.10 Optimal Code Generation for Expressions / 567 \\
                 8.10.1 Ershov Numbers / 567 \\
                 8.10.2 Generating Code From Labeled Expression Trees /
                 568 \\
                 8.10.3 Evaluating Expressions with an Insufficient
                 Supply of Registers / 570 \\
                 8.10.4 Exercises for Section 8.10 / 572 \\
                 8.11 Dynamic Programming Code-Generation / 573 \\
                 8.11.1 Contiguous Evaluation / 574 \\
                 8.11.2 The Dynamic Programming Algorithm / 575 \\
                 8.11.3 Exercises for Section 8.11 / 577 \\
                 8.12 Summary of Chapter 8 / 578 \\
                 8.13 References for Chapter 8 / 579 \\
                 9: Machine-Independent Optimizations / 583 \\
                 9.1 The Principal Sources of Optimization / 584 \\
                 9.1.1 Causes of Redundancy / 584 \\
                 9.1.2 A Running Example: Quicksort / 585 \\
                 9.1.3 Semantics-Preserving Transformations / 586 \\
                 9.1.4 Global Common Subexpressions / 588 \\
                 9.1.5 Copy Propagation / 590 \\
                 9.1.6 Dead-Code Elimination / 591 \\
                 9.1.7 Code Motion / 592 \\
                 9.1.8 Induction Variables and Reduction in Strength /
                 592 \\
                 9.1.9 Exercises for Section 9.1 / 596 \\
                 9.2 Introduction to Data-Flow Analysis / 597 \\
                 9.2.1 The Data-Flow Abstraction / 597 \\
                 9.2.2 The Data-Flow Analysis Schema / 599 \\
                 9.2.3 Data-Flow Schemas on Basic Blocks / 600 \\
                 9.2.4 Reaching Definitions / 601 \\
                 9.2.5 Live-Variable Analysis / 608 \\
                 9.2.6 Available Expressions / 610 \\
                 9.2.7 Summary / 614 \\
                 9.2.8 Exercises for Section 9.2 / 615 \\
                 9.3 Foundations of Data-Flow Analysis / 618 \\
                 9.3.1 Semilattices / 618 \\
                 9.3.2 Transfer Functions / 623 \\
                 9.3.3 The Iterative Algorithm for General Frameworks /
                 626 \\
                 9.3.4 Meaning of a Data-Flow Solution / 628 \\
                 9.3.5 Exercises for Section 9.3 / 631 \\
                 9.4 Constant Propagation / 632 \\
                 9.4.1 Data-Flow Values for the Constant-Propagation
                 Framework / 633 \\
                 9.4.2 The Meet for the Constant-Propagation Framework /
                 633 \\
                 9.4.3 Transfer Functions for the Constant-Propagation
                 Framework / 634 \\
                 9.4.4 Monotonicity of the Constant-Propagation
                 Framework / 635 \\
                 9.4.5 Nondistributivity of the Constant-Propagation
                 Framework / 635 \\
                 9.4.6 Interpretation of the Results / 637 \\
                 9.4.7 Exercises for Section 9.4 / 637 \\
                 9.5 Partial-Redundancy Elimination / 639 \\
                 9.5.1 The Sources of Redundancy / 639 \\
                 9.5.2 Can All Redundancy Be Eliminated? / 642 \\
                 9.5.3 The Lazy-Code-Motion Problem / 644 \\
                 9.5.4 Anticipation of Expressions / 645 \\
                 9.5.5 The Lazy-Code-Motion Algorithm / 646 \\
                 9.5.6 Exercises for Section 9.5 / 655 \\
                 9.6 Loops in Flow Graphs / 655 \\
                 9.6.1 Dominators / 656 \\
                 9.6.2 Depth-First Ordering / 660 \\
                 9.6.3 Edges in a Depth-First Spanning Tree / 661 \\
                 9.6.4 Back Edges and Reducibility / 662 \\
                 9.6.5 Depth of a Flow Graph / 665 \\
                 9.6.6 Natural Loops / 665 \\
                 9.6.7 Speed of Convergence of Iterative Data-Flow
                 Algorithms / 667 \\
                 9.6.8 Exercises for Section 9.6 / 669 \\
                 9.7 Region-Based Analysis / 672 \\
                 9.7.1 Regions / 672 \\
                 9.7.2 Region Hierarchies for Reducible Flow Graphs /
                 673 \\
                 9.7.3 Overview of a Region-Based Analysis / 676 \\
                 9.7.4 Necessary Assumptions About Transfer Functions /
                 678 \\
                 9.7.5 An Algorithm for Region-Based Analysis / 680 \\
                 9.7.6 Handling Nonreducible Flow Graphs / 684 \\
                 9.7.7 Exercises for Section 9.7 / 686 \\
                 9.8 Symbolic Analysis / 686 \\
                 9.8.1 Affine Expressions of Reference Variables / 687
                 \\
                 9.8.2 Data-Flow Problem Formulation / 689 \\
                 9.8.3 Region-Based Symbolic Analysis / 694 \\
                 9.8.4 Exercises for Section 9.8 / 699 \\
                 9.9 Summary of Chapter 9 / 700 \\
                 9.10 References for Chapter 9 / 703 \\
                 10: Instruction-Level Parallelism / 707 \\
                 10.1 Processor Architectures / 708 \\
                 10.1.1 Instruction Pipelines and Branch Delays / 708
                 \\
                 10.1.2 Pipelined Execution / 709 \\
                 10.1.3 Multiple Instruction Issue / 710 \\
                 10.2 Code-Scheduling Constraints / 710 \\
                 10.2.1 Data Dependence / 711 \\
                 10.2.2 Finding Dependences Among Memory Accesses / 712
                 \\
                 10.2.3 Tradeoff Between Register Usage and Parallelism.
                 / 713 \\
                 10.2.4 Phase Ordering Between Register Allocation and
                 Code Scheduling / 716 \\
                 10.2.5 Control Dependence / 716 \\
                 10.2.6 Speculative Execution Support / 717 \\
                 10.2.7 A Basic Machine Model / 719 \\
                 10.2.8 Exercises for Section 10.2 / 720 \\
                 10.3 Basic-Block Scheduling / 721 \\
                 10.3.1 Data-Dependence Graphs / 722 \\
                 10.3.2 List Scheduling of Basic Blocks / 723 \\
                 10.3.3 Prioritized Topological Orders / 725 \\
                 10.3.4 Exercises for Section 10.3 / 726 \\
                 10.4 Global Code Scheduling / 727 \\
                 10.4.1 Primitive Code Motion / 728 \\
                 10.4.2 Upward Code Motion / 730 \\
                 10.4.3 Downward Code Motion / 731 \\
                 10.4.4 Updating Data Dependences / 732 \\
                 10.4.5 Global Scheduling Algorithms / 732 \\
                 10.4.6 Advanced Code Motion Techniques / 736 \\
                 10.4.7 Interaction with Dynamic Schedulers / 737 \\
                 10.4.8 Exercises for Section 10.4 / 737 \\
                 10.5 Software Pipelining / 738 \\
                 10.5.1 Introduction / 738 \\
                 10.5.2 Software Pipelining of Loops / 740 \\
                 10.5.3 Register Allocation and Code Generation / 743
                 \\
                 10.5.4 Do-Across Loops / 743 \\
                 10.5.5 Goals and Constraints of Software Pipelining /
                 745 \\
                 10.5.6 A Software-Pipelining Algorithm / 749 \\
                 10.5.7 Scheduling Acyclic Data-Dependence Graphs / 749
                 \\
                 10.5.8 Scheduling Cyclic Dependence Graphs / 751 \\
                 10.5.9 Improvements to the Pipelining Algorithms / 758
                 \\
                 10.5.10 Modular Variable Expansion / 758 \\
                 10.5.11 Conditional Statements / 761 \\
                 10.5.12 Hardware Support for Software Pipelining / 762
                 \\
                 10.5.13 Exercises for Section 10.5 / 763 \\
                 10.6 Summary of Chapter 10 / 765 \\
                 10.7 References for Chapter 10 / 766 \\
                 11: Optimizing for Parallelism and Locality / 769 \\
                 11.1 Basic Concepts / 771 \\
                 11.1.1 Multiprocessors / 772 \\
                 11.1.2 Parallelism in Applications / 773 \\
                 11.1.3 Loop-Level Parallelism / 775 \\
                 11.1.4 Data Locality / 777 \\
                 11.1.5 Introduction to Affine Transform Theory / 778
                 \\
                 11.2 Matrix Multiply: An In-Depth Example / 782 \\
                 11.2.1 The Matrix-Multiplication Algorithm / 782 \\
                 11.2.2 Optimizations / 785 \\
                 11.2.3 Cache Interference / 788 \\
                 11.2.4 Exercises for Section 11.2 / 788 \\
                 11.3 Iteration Spaces / 788 \\
                 11.3.1 Constructing Iteration Spaces from Loop Nests /
                 788 \\
                 11.3.2 Execution Order for Loop Nests / 791 \\
                 11.3.3 Matrix Formulation of Inequalities / 791 \\
                 11.3.4 Incorporating Symbolic Constants / 793 \\
                 11.3.5 Controlling the Order of Execution / 793 \\
                 11.3.6 Changing Axes / 798 \\
                 11.3.7 Exercises for Section 11.3 / 799 \\
                 11.4 Affine Array Indexes / 801 \\
                 11.4.1 Affine Accesses / 802 \\
                 11.4.2 Affine and Nonaffine Accesses in Practice / 803
                 \\
                 11.4.3 Exercises for Section 11.4 / 804 \\
                 11.5 Data Reuse / 804 \\
                 11.5.1 Types of Reuse / 805 \\
                 11.5.2 Self Reuse / 806 \\
                 11.5.3 Self-Spatial Reuse / 809 \\
                 11.5.4 Group Reuse / 811 \\
                 11.5.5 Exercises for Section 11.5 / 814 \\
                 11.6 Array Data-Dependence Analysis / 815 \\
                 11.6.1 Definition of Data Dependence of Array Accesses
                 / 816 \\
                 11.6.2 Integer Linear Programming / 817 \\
                 11.6.3 The GCD Test / 818 \\
                 11.6.4 Heuristics for Solving Integer Linear Programs /
                 820 \\
                 11.6.5 Solving General Integer Linear Programs / 823
                 \\
                 11.6.6 Summary / 825 \\
                 11.6.7 Exercises for Section 11.6 / 826 \\
                 11.7 Finding Synchronization-Free Parallelism / 828 \\
                 11.7.1 An Introductory Example / 828 \\
                 11.7.2 Affine Space Partitions / 830 \\
                 11.7.3 Space-Partition Constraints / 831 \\
                 11.7.4 Solving Space-Partition Constraints / 835 \\
                 11.7.5 A Simple Code-Generation Algorithm / 838 \\
                 11.7.6 Eliminating Empty Iterations / 841 \\
                 11.7.7 Eliminating Tests from Innermost Loops / 844 \\
                 11.7.8 Source-Code Transforms / 846 \\
                 11.7.9 Exercises for Section 11.7 / 851 \\
                 11.8 Synchronization Between Parallel Loops / 853 \\
                 11.8.1 A Constant Number of Synchronizations / 853 \\
                 11.8.2 Program-Dependence Graphs / 854 \\
                 11.8.3 Hierarchical Time / 857 \\
                 11.8.4 The Parallelization Algorithm / 859 \\
                 11.8.5 Exercises for Section 11.8 / 860 \\
                 11.9 Pipelining / 861 \\
                 11.9.1 What is Pipelining? / 861 \\
                 11.9.2 Successive Over-Relaxation (SOR): An Example /
                 863 \\
                 11.9.3 Fully Permutable Loops / 864 \\
                 11.9.4 Pipelining Fully Permutable Loops / 864 \\
                 11.9.5 General Theory / 867 \\
                 11.9.6 Time-Partition Constraints / 868 \\
                 11.9.7 Solving Time-Partition Constraints by Farkas'
                 Lemma / 872 \\
                 11.9.8 Code Transformations / 875 \\
                 11.9.9 Parallelism With Minimum Synchronization / 880
                 \\
                 11.9.10 Exercises for Section 11.9 / 882 \\
                 11.10 Locality Optimizations / 884 \\
                 11.10.1 Temporal Locality of Computed Data / 885 \\
                 11.10.2 Array Contraction / 885 \\
                 11.10.3 Partition Interleaving / 887 \\
                 11.10.4 Putting it All Together / 890 \\
                 11.10.5 Exercises for Section 11.10 / 892 \\
                 11.11 Other Uses of Affine Transforms / 893 \\
                 11.11.1 Distributed memory machines / 894 \\
                 11.11.2 Multi-Instruction-Issue Processors / 895 \\
                 11.11.3 Vector and SIMD Instructions / 895 \\
                 11.11.4 Prefetching / 896 \\
                 11.12 Summary of Chapter 11 / 897 \\
                 11.13 References for Chapter 11 / 899 \\
                 12: Interprocedural Analysis / 903 \\
                 12.1 Basic Concepts / 904 \\
                 12.1.1 Call Graphs / 904 \\
                 12.1.2 Context Sensitivity / 906 \\
                 12.1.3 Call Strings / 908 \\
                 12.1.4 Cloning-Based Context-Sensitive Analysis / 910
                 \\
                 12.1.5 Summary-Based Context-Sensitive Analysis / 911
                 \\
                 12.1.6 Exercises for Section 12.1 / 914 \\
                 12.2 Why Interprocedural Analysis? / 916 \\
                 12.2.1 Virtual Method Invocation / 916 \\
                 12.2.2 Pointer Alias Analysis / 917 \\
                 12.2.3 Parallelization / 917 \\
                 12.2.4 Detection of Software Errors and Vulnerabilities
                 / 917 \\
                 12.2.5 SQL Injection / 918 \\
                 12.2.6 Buffer Overflow / 920 \\
                 12.3 A Logical Representation of Data Flow / 921 \\
                 12.3.1 Introduction to Datalog / 921 \\
                 12.3.2 Datalog Rules / 922 \\
                 12.3.3 Intensional and Extensional Predicates / 924 \\
                 12.3.4 Execution of Datalog Programs / 927 \\
                 12.3.5 Incremental Evaluation of Datalog Programs / 928
                 \\
                 12.3.6 Problematic Datalog Rules / 930 \\
                 12.3.7 Exercises for Section 12.3 / 932 \\
                 12.4 A Simple Pointer-Analysis Algorithm / 933 \\
                 12.4.1 Why is Pointer Analysis Difficult / 934 \\
                 12.4.2 A Model for Pointers and References / 935 \\
                 12.4.3 Flow Insensitivity / 936 \\
                 12.4.4 The Formulation in Datalog / 937 \\
                 12.4.5 Using Type Information / 938 \\
                 12.4.6 Exercises for Section 12.4 / 939 \\
                 12.5 Context-Insensitive Interprocedural Analysis / 941
                 \\
                 12.5.1 Effects of a Method Invocation / 941 \\
                 12.5.2 Call Graph Discovery in Datalog / 943 \\
                 12.5.3 Dynamic Loading and Reflection / 944 \\
                 12.5.4 Exercises for Section 12.5 / 945 \\
                 12.6 Context-Sensitive Pointer Analysis / 945 \\
                 12.6.1 Contexts and Call Strings / 946 \\
                 12.6.2 Adding Context to Datalog Rules / 949 \\
                 12.6.3 Additional Observations About Sensitivity / 949
                 \\
                 12.6.4 Exercises for Section 12.6 / 950 \\
                 12.7 Datalog Implementation by BDD's / 951 \\
                 12.7.1 Binary Decision Diagrams / 951 \\
                 12.7.2 Transformations on BDD's / 953 \\
                 12.7.3 Representing Relations by BDD's / 954 \\
                 12.7.4 Relational Operations as BDD Operations / 954
                 \\
                 12.7.5 Using BDD's for Points-to Analysis / 957 \\
                 12.7.6 Exercises for Section 12.7 / 958 \\
                 12.8 Summary of Chapter 12 / 958 \\
                 12.9 References for Chapter 12 / 961 \\
                 A: A Complete Front End / 965 \\
                 A.1 The Source Language / 965 \\
                 A.2 Main / 966 \\
                 A.3 Lexical Analyzer / 967 \\
                 A.4 Symbol Tables and Types / 970 \\
                 A.5 Intermediate Code for Expressions / 971 \\
                 A.6 Jumping Code for Boolean Expressions / 974 \\
                 A.7 Intermediate Code for Statements / 978 \\
                 A.8 Parser / 981 \\
                 A.9 Creating the Front End / 986 \\
                 B: Finding Linearly Independent Solutions / 989 \\
                 Index / 993",
}


bibtype: book
filename: master.bib
label: Aho:2023:APL
author: Alfred V. Aho and Brian W. Kernighan and Peter J. Weinberger
title: The AWK programming language
publisher: pub-AW
address: pub-AW:adr
edition: Second
pages: xiii + 214
year: 2023
ISBN: 0-13-826972-6 OR 0138269726
ISBN13: 978-0-13-826972-2 OR 9780138269722
LCCN: QA76.73.A95
bibdate: Thu Oct 5 06:41:53 MDT 2023
bibsource: fsz3950.oclc.org:210/WorldCat; https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2023.10.05 06:41:53 MDT
series: Addison-Wesley professional computing series
subject: AWK (Computer program language); AWK (Langage de programmation)
acknowledgement: ack-nhfb
rawauthor: Alfred V. Aho and Brian W. Kernighan and Peter J. Weinberger
rawtitle: The {AWK} programming language
abstract:
Awk was developed in 1977 at Bell Labs, and it's still a remarkably useful tool for solving a wide variety of problems quickly and efficiently. In this update of the classic Awk book, the creators of the language show you what Awk can do and teach you how to use it effectively.

TOC:
Preface / ix 1. An Awk Tutorial / 1 1.1 Getting Started / 1 1.2 Simple Output / 4 1.3 Formatted Output / 7 1.4 Selection / 8 1.5 Computing with Awk / 10 1.6 Control-Flow Statements / 13 1.7 Arrays / 16 1.8 Useful One-liners / 17 1.9 What Next? / 19 2. Awk in Action / 21 2.1 Personal Computation / 21 2.2 Selection / 23 2.3 Transformation / 25 2.4 Summarization / 27 2.5 Personal Databases / 28 2.6 A Personal Library / 31 2.7 Summary / 34 3. Exploratory Data Analysis / 35 3.1 The Sinking of the Titanic / 36 3.2 Beer Ratings / 41 3.3 Grouping Data / 43 3.4 Unicode Data / 45 3.5 Basic Graphs and Charts / 47 3.6 Summary / 49 4. Data Processing / 51 4.1 Data Transformation and Reduction / 51 4.2 Data Validation / 57 4.3 Bundle and Unbundle / 59 4.4 Multiline Records / 60 4.5 Summary / 66 5. Reports and Databases / 67 5.1 Generating Reports / 67 5.2 Packaged Queries and Reports / 73 5.3 A Relational Database System / 75 5.4 Summary / 83 6. Processing Words / 85 6.1 Random Text Generation / 85 6.2 Interactive Text-Manipulation / 90 6.3 Text Processing / 92 6.4 Making an Index / 99 6.5 Summary / 105 7. Little Languages / 107 7.1 An Assembler and Interpreter / 108 7.2 A Language for Drawing Graphs / 111 7.3 A Sort Generator / 113 7.4 A Reverse-Polish Calculator / 115 7.5 A Different Approach / 117 7.6 A Recursive-Descent Parser for Arithmetic Expressions / 119 7.7 A Recursive-Descent Parser for a Subset of Awk / 122 7.8 Summary / 126 8. Experiments with Algorithms / 129 8.1 Sorting / 129 8.2 Profiling / 142 8.3 Topological Sorting / 144 8.4 Make: A File Updating Program / 148 8.5 Summary / 153 9. Epilogue / 155 9.1 Awk as a Language / 155 9.2 Performance / 157 9.3 Conclusion / 160 Appendix A: Awk Reference Manual / 163 A.1 Patterns / 165 A.2 Actions / 176 A.3 User-Defined Functions / 196 A.4 Output / 197 A.5 Input / 202 A.6 Interaction with Other Programs / 207 A.7 Summary / 208 Index / 209

rawabstract:
Awk was developed in 1977 at Bell Labs, and it's still a remarkably useful tool for solving a wide variety of problems quickly and efficiently. In this update of the classic Awk book, the creators of the language show you what Awk can do and teach you how to use it effectively.

rawTOC:
Preface / ix \\ 1. An Awk Tutorial / 1 \\ 1.1 Getting Started / 1 \\ 1.2 Simple Output / 4 \\ 1.3 Formatted Output / 7 \\ 1.4 Selection / 8 \\ 1.5 Computing with Awk / 10 \\ 1.6 Control-Flow Statements / 13 \\ 1.7 Arrays / 16 \\ 1.8 Useful One-liners / 17 \\ 1.9 What Next? / 19 \\ 2. Awk in Action / 21 \\ 2.1 Personal Computation / 21 \\ 2.2 Selection / 23 \\ 2.3 Transformation / 25 \\ 2.4 Summarization / 27 \\ 2.5 Personal Databases / 28 \\ 2.6 A Personal Library / 31 \\ 2.7 Summary / 34 \\ 3. Exploratory Data Analysis / 35 \\ 3.1 The Sinking of the Titanic / 36 \\ 3.2 Beer Ratings / 41 \\ 3.3 Grouping Data / 43 \\ 3.4 Unicode Data / 45 \\ 3.5 Basic Graphs and Charts / 47 \\ 3.6 Summary / 49 \\ 4. Data Processing / 51 \\ 4.1 Data Transformation and Reduction / 51 \\ 4.2 Data Validation / 57 \\ 4.3 Bundle and Unbundle / 59 \\ 4.4 Multiline Records / 60 \\ 4.5 Summary / 66 \\ 5. Reports and Databases / 67 \\ 5.1 Generating Reports / 67 \\ 5.2 Packaged Queries and Reports / 73 \\ 5.3 A Relational Database System / 75 \\ 5.4 Summary / 83 \\ 6. Processing Words / 85 \\ 6.1 Random Text Generation / 85 \\ 6.2 Interactive Text-Manipulation / 90 \\ 6.3 Text Processing / 92 \\ 6.4 Making an Index / 99 \\ 6.5 Summary / 105 \\ 7. Little Languages / 107 \\ 7.1 An Assembler and Interpreter / 108 \\ 7.2 A Language for Drawing Graphs / 111 \\ 7.3 A Sort Generator / 113 \\ 7.4 A Reverse-Polish Calculator / 115 \\ 7.5 A Different Approach / 117 \\ 7.6 A Recursive-Descent Parser for Arithmetic Expressions / 119 \\ 7.7 A Recursive-Descent Parser for a Subset of Awk / 122 \\ 7.8 Summary / 126 \\ 8. Experiments with Algorithms / 129 \\ 8.1 Sorting / 129 \\ 8.2 Profiling / 142 \\ 8.3 Topological Sorting / 144 \\ 8.4 Make: A File Updating Program / 148 \\ 8.5 Summary / 153 \\ 9. Epilogue / 155 \\ 9.1 Awk as a Language / 155 \\ 9.2 Performance / 157 \\ 9.3 Conclusion / 160 \\ Appendix A: Awk Reference Manual / 163 \\ A.1 Patterns / 165 \\ A.2 Actions / 176 \\ A.3 User-Defined Functions / 196 \\ A.4 Output / 197 \\ A.5 Input / 202 \\ A.6 Interaction with Other Programs / 207 \\ A.7 Summary / 208 \\ Index / 209

entry:
@Book{Aho:2023:APL,
  author =       "Alfred V. Aho and Brian W. Kernighan and Peter J.
                 Weinberger",
  title =        "The {AWK} programming language",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  edition =      "Second",
  pages =        "xiii + 214",
  year =         "2023",
  ISBN =         "0-13-826972-6",
  ISBN-13 =      "978-0-13-826972-2",
  LCCN =         "QA76.73.A95",
  bibdate =      "Thu Oct 5 06:41:53 MDT 2023",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/master.bib",
  series =       "Addison-Wesley professional computing series",
  abstract =     "Awk was developed in 1977 at Bell Labs, and it's still
                 a remarkably useful tool for solving a wide variety of
                 problems quickly and efficiently. In this update of the
                 classic Awk book, the creators of the language show you
                 what Awk can do and teach you how to use it
                 effectively.",
  acknowledgement = ack-nhfb,
  subject =      "AWK (Computer program language); AWK (Langage de
                 programmation)",
  tableofcontents = "Preface / ix \\
                 1. An Awk Tutorial / 1 \\
                 1.1 Getting Started / 1 \\
                 1.2 Simple Output / 4 \\
                 1.3 Formatted Output / 7 \\
                 1.4 Selection / 8 \\
                 1.5 Computing with Awk / 10 \\
                 1.6 Control-Flow Statements / 13 \\
                 1.7 Arrays / 16 \\
                 1.8 Useful One-liners / 17 \\
                 1.9 What Next? / 19 \\
                 2. Awk in Action / 21 \\
                 2.1 Personal Computation / 21 \\
                 2.2 Selection / 23 \\
                 2.3 Transformation / 25 \\
                 2.4 Summarization / 27 \\
                 2.5 Personal Databases / 28 \\
                 2.6 A Personal Library / 31 \\
                 2.7 Summary / 34 \\
                 3. Exploratory Data Analysis / 35 \\
                 3.1 The Sinking of the Titanic / 36 \\
                 3.2 Beer Ratings / 41 \\
                 3.3 Grouping Data / 43 \\
                 3.4 Unicode Data / 45 \\
                 3.5 Basic Graphs and Charts / 47 \\
                 3.6 Summary / 49 \\
                 4. Data Processing / 51 \\
                 4.1 Data Transformation and Reduction / 51 \\
                 4.2 Data Validation / 57 \\
                 4.3 Bundle and Unbundle / 59 \\
                 4.4 Multiline Records / 60 \\
                 4.5 Summary / 66 \\
                 5. Reports and Databases / 67 \\
                 5.1 Generating Reports / 67 \\
                 5.2 Packaged Queries and Reports / 73 \\
                 5.3 A Relational Database System / 75 \\
                 5.4 Summary / 83 \\
                 6. Processing Words / 85 \\
                 6.1 Random Text Generation / 85 \\
                 6.2 Interactive Text-Manipulation / 90 \\
                 6.3 Text Processing / 92 \\
                 6.4 Making an Index / 99 \\
                 6.5 Summary / 105 \\
                 7. Little Languages / 107 \\
                 7.1 An Assembler and Interpreter / 108 \\
                 7.2 A Language for Drawing Graphs / 111 \\
                 7.3 A Sort Generator / 113 \\
                 7.4 A Reverse-Polish Calculator / 115 \\
                 7.5 A Different Approach / 117 \\
                 7.6 A Recursive-Descent Parser for Arithmetic
                 Expressions / 119 \\
                 7.7 A Recursive-Descent Parser for a Subset of Awk /
                 122 \\
                 7.8 Summary / 126 \\
                 8. Experiments with Algorithms / 129 \\
                 8.1 Sorting / 129 \\
                 8.2 Profiling / 142 \\
                 8.3 Topological Sorting / 144 \\
                 8.4 Make: A File Updating Program / 148 \\
                 8.5 Summary / 153 \\
                 9. Epilogue / 155 \\
                 9.1 Awk as a Language / 155 \\
                 9.2 Performance / 157 \\
                 9.3 Conclusion / 160 \\
                 Appendix A: Awk Reference Manual / 163 \\
                 A.1 Patterns / 165 \\
                 A.2 Actions / 176 \\
                 A.3 User-Defined Functions / 196 \\
                 A.4 Output / 197 \\
                 A.5 Input / 202 \\
                 A.6 Interaction with Other Programs / 207 \\
                 A.7 Summary / 208 \\
                 Index / 209",
}


bibtype: article
filename: master.bib
label: Aiken:1946:ASC
author: H. H. Aiken and G. M. Hopper
title: The Automatic Sequence Controlled Calculator
journal: Electrical Engineering
volume: 65
pages: 384--391, 449--454, 522--528
year: 1946
bibdate: Wed Oct 13 11:26:29 2010
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2010.10.13 11:26:29 ???
note: Reprinted in cite [ 5.2]Randell:1982:ODC.
acknowledgement: ack-nhfb
rawauthor: H. H. Aiken and G. M. Hopper
rawnote: Reprinted in \cite[\S 5.2]{Randell:1982:ODC}.
rawtitle: The {Automatic Sequence Controlled Calculator}
entry:
@Article{Aiken:1946:ASC,
  author =       "H. H. Aiken and G. M. Hopper",
  title =        "The {Automatic Sequence Controlled Calculator}",
  journal =      "Electrical Engineering",
  volume =       "65",
  number =       "??",
  pages =        "384--391, 449--454, 522--528",
  year =         "1946",
  bibdate =      "Wed Oct 13 11:26:29 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "Reprinted in \cite[\S 5.2]{Randell:1982:ODC}.",
  acknowledgement = ack-nhfb,
}


bibtype: article
filename: master.bib
label: Aiken:1964:PAC
author: H. H. Aiken and A. G. Oettinger and T. C. Bartee
title: Proposed automatic calculating machine
journal: j-IEEE-SPECTRUM
volume: 1
number: 8
pages: 62--69
month: aug
monthnumber: 8
year: 1964
CODEN: IEESAM
DOI: https://doi.org/10.1109/MSPEC.1964.6500770
ISSN: 0018-9235 (print), 1939-9340 (electronic) OR 00189235 (print), 19399340 (electronic)
ISSNL: 0018-9235 OR 00189235
bibdate: Tue Jan 14 11:14:17 2020
bibtimestamp: 2020.01.14 11:14:17 ???
note: Previously unpublished memorandum. Reprinted in cite [ 5.1]Randell:1982:ODC.
fjournal: IEEE Spectrum
acknowledgement: ack-nhfb
journalURL: http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6
rawauthor: H. H. Aiken and A. G. Oettinger and T. C. Bartee
rawnote: Previously unpublished memorandum. Reprinted in \cite[\S 5.1]{Randell:1982:ODC}.
rawtitle: Proposed automatic calculating machine
bibsource:
https://www.math.utah.edu/pub/tex/bib/fparith.bib; https://www.math.utah.edu/pub/tex/bib/ieeespectrum1960.bib; https://www.math.utah.edu/pub/tex/bib/master.bib

abstract:
Here presented is the memorandum that 20 years ago initiated a series of events whose revolutionary implications are only beginning to manifest themselves --- a description of the first large-scale general-purpose automatic digital computer Twenty years ago, on August 7, 1944, Mark I, the first large-scale general-purpose automatic digital computer ever to be put in operation was dedicated at Harvard University by James B. Conant, then president of Harvard, and the late Thomas J. Watson, founder of IBM.

rawabstract:
Here presented is the memorandum that 20 years ago initiated a series of events whose revolutionary implications are only beginning to manifest themselves --- a description of the first large-scale general-purpose automatic digital computer Twenty years ago, on August 7, 1944, Mark I, the first large-scale general-purpose automatic digital computer ever to be put in operation was dedicated at Harvard University by James B. Conant, then president of Harvard, and the late Thomas J. Watson, founder of IBM.

entry:
@Article{Aiken:1964:PAC,
  author =       "H. H. Aiken and A. G. Oettinger and T. C. Bartee",
  title =        "Proposed automatic calculating machine",
  journal =      j-IEEE-SPECTRUM,
  volume =       "1",
  number =       "8",
  pages =        "62--69",
  month =        aug,
  year =         "1964",
  CODEN =        "IEESAM",
  DOI =          "https://doi.org/10.1109/MSPEC.1964.6500770",
  ISSN =         "0018-9235 (print), 1939-9340 (electronic)",
  ISSN-L =       "0018-9235",
  bibdate =      "Tue Jan 14 11:14:17 2020",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/fparith.bib;
                 https://www.math.utah.edu/pub/tex/bib/ieeespectrum1960.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "Previously unpublished memorandum. Reprinted in
                 \cite[\S 5.1]{Randell:1982:ODC}.",
  abstract =     "Here presented is the memorandum that 20 years ago
                 initiated a series of events whose revolutionary
                 implications are only beginning to manifest themselves
                 --- a description of the first large-scale
                 general-purpose automatic digital computer Twenty years
                 ago, on August 7, 1944, Mark I, the first large-scale
                 general-purpose automatic digital computer ever to be
                 put in operation was dedicated at Harvard University by
                 James B. Conant, then president of Harvard, and the
                 late Thomas J. Watson, founder of IBM.",
  acknowledgement = ack-nhfb,
  fjournal =     "IEEE Spectrum",
  journal-URL =  "http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=6",
}


bibtype: book
filename: master.bib
label: Akl:1985:PSA
author: Selim G. Akl
title: Parallel Sorting Algorithms
publisher: pub-ACADEMIC
address: pub-ACADEMIC:adr
pages: xiii + 229
year: 1985
ISBN: 0-12-047680-0 OR 0120476800
ISBN13: 978-0-12-047680-0 OR 9780120476800
LCCN: QA76.5 .A363 1985
bibdate: Tue Dec 14 22:36:06 1993
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 1993.12.14 22:36:06 ???
acknowledgement: ack-nhfb
rawauthor: Selim G. Akl
rawtitle: Parallel Sorting Algorithms
entry:
@Book{Akl:1985:PSA,
  author =       "Selim G. Akl",
  title =        "Parallel Sorting Algorithms",
  publisher =    pub-ACADEMIC,
  address =      pub-ACADEMIC:adr,
  pages =        "xiii + 229",
  year =         "1985",
  ISBN =         "0-12-047680-0",
  ISBN-13 =      "978-0-12-047680-0",
  LCCN =         "QA76.5 .A363 1985",
  bibdate =      "Tue Dec 14 22:36:06 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Al-Khalili:2011:HWH
author: Jim Al-Khalili
title: The house of wisdom: how Arabic science saved ancient knowledge and gave us the Renaissance
publisher: pub-PENGUIN
address: pub-PENGUIN:adr
pages: xxix + 302 + 8
year: 2011
ISBN: 1-59420-279-6 (hardcover) OR 1594202796 (hardcover)
ISBN13: 978-1-59420-279-7 (hardcover) OR 9781594202797 (hardcover)
LCCN: Q127.A5 A4 2011
bibdate: Fri Jul 22 15:57:04 MDT 2011
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib; z3950.loc.gov:7090/Voyager
bibtimestamp: 2011.07.22 15:57:04 MDT
acknowledgement: ack-nhfb
rawauthor: Jim Al-Khalili
rawtitle: The house of wisdom: how {Arabic} science saved ancient knowledge and gave us the {Renaissance}
subject:
science; Arab countries; history; philosophy; science, medieval; methodology; intellectual life; science, Renaissance

TOC:
A dream of Aristotle The rise of Islam Translation The lonely alchemist The house of wisdom Big science Numbers Algebra The philosopher The medic The physicist The prince and the pauper Andalusia The Maraa agha Revolution Decline and Renaissance Science and Islam today Timeline: then Islamic world from antiquity to the beginning of the modern period

rawTOC:
A dream of Aristotle \\ The rise of Islam \\ Translation \\ The lonely alchemist \\ The house of wisdom \\ Big science \\ Numbers \\ Algebra \\ The philosopher \\ The medic \\ The physicist \\ The prince and the pauper \\ Andalusia \\ The Mar{\aa}agha Revolution \\ Decline and Renaissance \\ Science and Islam today \\ Timeline: then Islamic world from antiquity to the beginning of the modern period

entry:
@Book{Al-Khalili:2011:HWH,
  author =       "Jim Al-Khalili",
  title =        "The house of wisdom: how {Arabic} science saved
                 ancient knowledge and gave us the {Renaissance}",
  publisher =    pub-PENGUIN,
  address =      pub-PENGUIN:adr,
  pages =        "xxix + 302 + 8",
  year =         "2011",
  ISBN =         "1-59420-279-6 (hardcover)",
  ISBN-13 =      "978-1-59420-279-7 (hardcover)",
  LCCN =         "Q127.A5 A4 2011",
  bibdate =      "Fri Jul 22 15:57:04 MDT 2011",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  subject =      "science; Arab countries; history; philosophy; science,
                 medieval; methodology; intellectual life; science,
                 Renaissance",
  tableofcontents = "A dream of Aristotle \\
                 The rise of Islam \\
                 Translation \\
                 The lonely alchemist \\
                 The house of wisdom \\
                 Big science \\
                 Numbers \\
                 Algebra \\
                 The philosopher \\
                 The medic \\
                 The physicist \\
                 The prince and the pauper \\
                 Andalusia \\
                 The Mar{\aa}agha Revolution \\
                 Decline and Renaissance \\
                 Science and Islam today \\
                 Timeline: then Islamic world from antiquity to the
                 beginning of the modern period",
}


bibtype: book
filename: master.bib
label: Albers:1990:MMP
editor: Donald J. Albers and Gerald L. Alexanderson and Constance Reid
title: More Mathematical People: Contemporary Conversations
publisher: pub-HBJ
address: pub-HBJ:adr
pages: xviii + 375
year: 1990
ISBN: 0-15-158175-4 OR 0151581754
ISBN13: 978-0-15-158175-7 OR 9780151581757
LCCN: QA28 .M67 1990
bibdate: Mon Aug 10 17:01:29 MDT 2009
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib; z3950.loc.gov:7090/Voyager
bibtimestamp: 2009.08.10 17:01:29 MDT
subject: mathematicians; interviews; biography
acknowledgement: ack-nhfb
raweditor: Donald J. Albers and Gerald L. Alexanderson and Constance Reid
rawtitle: More Mathematical People: Contemporary Conversations
TOC:
Becoming a mathematician Lipman Bers Ralph P. Boas, Jr. Paul J. Cohen George B. Dantzig Andrew M. Gleason Bill Gosper Irving Kaplansky Peter D. Lax Lucien Le Cam Hans Lewy Saunders Mac Lane Cathleen S. Morawetz Fredereck Mosteller Julia Robinson Mary Ellen Rudin Steve Smale William P. Thurston Robin Wilson

rawTOC:
Becoming a mathematician \\ Lipman Bers \\ Ralph P. Boas, Jr. \\ Paul J. Cohen \\ George B. Dantzig \\ Andrew M. Gleason \\ Bill Gosper \\ Irving Kaplansky \\ Peter D. Lax \\ Lucien Le Cam \\ Hans Lewy \\ Saunders Mac Lane \\ Cathleen S. Morawetz \\ Fredereck Mosteller \\ Julia Robinson \\ Mary Ellen Rudin \\ Steve Smale \\ William P. Thurston \\ Robin Wilson

entry:
@Book{Albers:1990:MMP,
  editor =       "Donald J. Albers and Gerald L. Alexanderson and
                 Constance Reid",
  title =        "More Mathematical People: Contemporary Conversations",
  publisher =    pub-HBJ,
  address =      pub-HBJ:adr,
  pages =        "xviii + 375",
  year =         "1990",
  ISBN =         "0-15-158175-4",
  ISBN-13 =      "978-0-15-158175-7",
  LCCN =         "QA28 .M67 1990",
  bibdate =      "Mon Aug 10 17:01:29 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 z3950.loc.gov:7090/Voyager",
  price =        "US\$29.95",
  acknowledgement = ack-nhfb,
  libnote =      "Not yet in my library.",
  subject =      "mathematicians; interviews; biography",
  tableofcontents = "Becoming a mathematician \\
                 Lipman Bers \\
                 Ralph P. Boas, Jr. \\
                 Paul J. Cohen \\
                 George B. Dantzig \\
                 Andrew M. Gleason \\
                 Bill Gosper \\
                 Irving Kaplansky \\
                 Peter D. Lax \\
                 Lucien Le Cam \\
                 Hans Lewy \\
                 Saunders Mac Lane \\
                 Cathleen S. Morawetz \\
                 Fredereck Mosteller \\
                 Julia Robinson \\
                 Mary Ellen Rudin \\
                 Steve Smale \\
                 William P. Thurston \\
                 Robin Wilson",
}


bibtype: book
filename: master.bib
label: Albers:1994:MMP
editor: Donald J. Albers and Gerald L. Alexanderson and Constance Reid
title: More Mathematical People: Contemporary Conversations
publisher: pub-ACADEMIC
address: pub-ACADEMIC:adr
pages: xviii + 375
year: 1994
ISBN: 0-12-048251-7 OR 0120482517
ISBN13: 978-0-12-048251-1 OR 9780120482511
LCCN: QA28 .M67 1994
bibdate: Mon Aug 10 17:01:29 MDT 2009
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib; z3950.loc.gov:7090/Voyager
bibtimestamp: 2009.08.10 17:01:29 MDT
remark: Reprint of cite Albers:1990:MMP.
subject: mathematicians; biography
acknowledgement: ack-nhfb
raweditor: Donald J. Albers and Gerald L. Alexanderson and Constance Reid
rawtitle: More Mathematical People: Contemporary Conversations
TOC:
Becoming a mathematician Lipman Bers Ralph P. Boas, Jr. Paul J. Cohen George B. Dantzig Andrew M. Gleason Bill Gosper Irving Kaplansky Peter D. Lax Lucien Le Cam Hans Lewy Saunders Mac Lane Cathleen S. Morawetz Fredereck Mosteller Julia Robinson Mary Ellen Rudin Steve Smale William P. Thurston Robin Wilson

rawTOC:
Becoming a mathematician \\ Lipman Bers \\ Ralph P. Boas, Jr. \\ Paul J. Cohen \\ George B. Dantzig \\ Andrew M. Gleason \\ Bill Gosper \\ Irving Kaplansky \\ Peter D. Lax \\ Lucien Le Cam \\ Hans Lewy \\ Saunders Mac Lane \\ Cathleen S. Morawetz \\ Fredereck Mosteller \\ Julia Robinson \\ Mary Ellen Rudin \\ Steve Smale \\ William P. Thurston \\ Robin Wilson

entry:
@Book{Albers:1994:MMP,
  editor =       "Donald J. Albers and Gerald L. Alexanderson and
                 Constance Reid",
  title =        "More Mathematical People: Contemporary Conversations",
  publisher =    pub-ACADEMIC,
  address =      pub-ACADEMIC:adr,
  pages =        "xviii + 375",
  year =         "1994",
  ISBN =         "0-12-048251-7",
  ISBN-13 =      "978-0-12-048251-1",
  LCCN =         "QA28 .M67 1994",
  bibdate =      "Mon Aug 10 17:01:29 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  libnote =      "Not yet in my library.",
  remark =       "Reprint of \cite{Albers:1990:MMP}.",
  subject =      "mathematicians; biography",
  tableofcontents = "Becoming a mathematician \\
                 Lipman Bers \\
                 Ralph P. Boas, Jr. \\
                 Paul J. Cohen \\
                 George B. Dantzig \\
                 Andrew M. Gleason \\
                 Bill Gosper \\
                 Irving Kaplansky \\
                 Peter D. Lax \\
                 Lucien Le Cam \\
                 Hans Lewy \\
                 Saunders Mac Lane \\
                 Cathleen S. Morawetz \\
                 Fredereck Mosteller \\
                 Julia Robinson \\
                 Mary Ellen Rudin \\
                 Steve Smale \\
                 William P. Thurston \\
                 Robin Wilson",
}


bibtype: book
filename: master.bib
label: Albers:2008:MPP
editor: Donald J. Albers and Gerald L. Alexanderson
title: Mathematical people: profiles and interviews
publisher: pub-A-K-PETERS
address: pub-A-K-PETERS:adr
edition: Second
pages: xxvi + 386
year: 2008
ISBN: 1-56881-340-6 OR 1568813406
ISBN13: 978-1-56881-340-0 OR 9781568813400
LCCN: QA28 .M37 2008
bibdate: Mon Aug 10 17:01:29 MDT 2009
bibtimestamp: 2009.08.10 17:01:29 MDT
subject: mathematicians; biography
acknowledgement: ack-nhfb
raweditor: Donald J. Albers and Gerald L. Alexanderson
rawtitle: Mathematical people: profiles and interviews
bibsource:
https://www.math.utah.edu/pub/bibnet/authors/m/mandelbrot-benoit.bib; https://www.math.utah.edu/pub/bibnet/authors/u/ulam-stanislaw-m.bib; https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/mathgaz2010.bib; z3950.loc.gov:7090/Voyager

TOC:
Garrett Birkhoff / interviewed by G. L. Alexanderson and Carroll Wilde David Blackwell / interviewed by Donald J. Albers Shiing-Shen Chern / by William Chinn and John Lewis John H. Conway / by Richard K. Guy H. S. M. Coxeter / interviewed by Dave Logothetti Persi Diaconis / interviewed by Donald J. Albers Paul Erdos / interviewed by G. L. Alexanderson Martin Gardner: defending the honor of the human mind / by Peter Renz Martin Gardner: master of recreational mathematics and much more / interviewed by Donald J. Albers Ronald L. Graham / by Donald J. Albers Paul Halmos / interviewed by Donald J. Albers Peter J. Hilton / interviewed by Lynn A. Steen and G. L. Alexanderson John Kemeny / interviewed by Lynn A. Steen Morris Kline / interviewed by G. L. Alexanderson Donald Knuth / interviewed by Donald J. Albers and Lynn A. Steen Solomon Lefschetz: a reminiscence / by Albert W. Tucker Benoit Mandelbrot / interviewed by Anthony Barcellos Henry Pollak / interviewed by Donald J. Albers and Michael J. Thibodeaux George Polya / interviewed by G. L. Alexanderson Mina Rees / interviewed by Rosamond Dana and Peter J. Hilton Constance Reid / interviewed by G. L. Alexanderson Herbert Robbins / interviewed by Warren Page Raymond Smullyan: autobiographical essay Olga Taussky-Todd: autobiographical essay Albert Tucker / interviewed by Stephen B. Maurer Stanislaw M. Ulam / interviewed by Anthony Barcellos

rawTOC:
Garrett Birkhoff / interviewed by G. L. Alexanderson and Carroll Wilde \\ David Blackwell / interviewed by Donald J. Albers \\ Shiing-Shen Chern / by William Chinn and John Lewis \\ John H. Conway / by Richard K. Guy \\ H. S. M. Coxeter / interviewed by Dave Logothetti \\ Persi Diaconis / interviewed by Donald J. Albers \\ Paul Erd{\H{o}}s / interviewed by G. L. Alexanderson \\ Martin Gardner: defending the honor of the human mind / by Peter Renz \\ Martin Gardner: master of recreational mathematics and much more / interviewed by Donald J. Albers \\ Ronald L. Graham / by Donald J. Albers \\ Paul Halmos / interviewed by Donald J. Albers \\ Peter J. Hilton / interviewed by Lynn A. Steen and G. L. Alexanderson \\ John Kemeny / interviewed by Lynn A. Steen \\ Morris Kline / interviewed by G. L. Alexanderson \\ Donald Knuth / interviewed by Donald J. Albers and Lynn A. Steen \\ Solomon Lefschetz: a reminiscence / by Albert W. Tucker \\ Beno{\^\i}t Mandelbrot / interviewed by Anthony Barcellos \\ Henry Pollak / interviewed by Donald J. Albers and Michael J. Thibodeaux \\ George P{\'o}lya / interviewed by G. L. Alexanderson \\ Mina Rees / interviewed by Rosamond Dana and Peter J. Hilton \\ Constance Reid / interviewed by G. L. Alexanderson \\ Herbert Robbins / interviewed by Warren Page \\ Raymond Smullyan: autobiographical essay \\ Olga Taussky-Todd: autobiographical essay \\ Albert Tucker / interviewed by Stephen B. Maurer \\ Stanis{\l}aw M. Ulam / interviewed by Anthony Barcellos

entry:
@Book{Albers:2008:MPP,
  editor =       "Donald J. Albers and Gerald L. Alexanderson",
  title =        "Mathematical people: profiles and interviews",
  publisher =    pub-A-K-PETERS,
  address =      pub-A-K-PETERS:adr,
  edition =      "Second",
  pages =        "xxvi + 386",
  year =         "2008",
  ISBN =         "1-56881-340-6",
  ISBN-13 =      "978-1-56881-340-0",
  LCCN =         "QA28 .M37 2008",
  bibdate =      "Mon Aug 10 17:01:29 MDT 2009",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/m/mandelbrot-benoit.bib;
                 https://www.math.utah.edu/pub/bibnet/authors/u/ulam-stanislaw-m.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathgaz2010.bib;
                 z3950.loc.gov:7090/Voyager",
  acknowledgement = ack-nhfb,
  libnote =      "Not yet in my library.",
  subject =      "mathematicians; biography",
  tableofcontents = "Garrett Birkhoff / interviewed by G. L.
                 Alexanderson and Carroll Wilde \\
                 David Blackwell / interviewed by Donald J. Albers \\
                 Shiing-Shen Chern / by William Chinn and John Lewis \\
                 John H. Conway / by Richard K. Guy \\
                 H. S. M. Coxeter / interviewed by Dave Logothetti \\
                 Persi Diaconis / interviewed by Donald J. Albers \\
                 Paul Erd{\H{o}}s / interviewed by G. L. Alexanderson
                 \\
                 Martin Gardner: defending the honor of the human mind /
                 by Peter Renz \\
                 Martin Gardner: master of recreational mathematics and
                 much more / interviewed by Donald J. Albers \\
                 Ronald L. Graham / by Donald J. Albers \\
                 Paul Halmos / interviewed by Donald J. Albers \\
                 Peter J. Hilton / interviewed by Lynn A. Steen and G.
                 L. Alexanderson \\
                 John Kemeny / interviewed by Lynn A. Steen \\
                 Morris Kline / interviewed by G. L. Alexanderson \\
                 Donald Knuth / interviewed by Donald J. Albers and Lynn
                 A. Steen \\
                 Solomon Lefschetz: a reminiscence / by Albert W. Tucker
                 \\
                 Beno{\^\i}t Mandelbrot / interviewed by Anthony
                 Barcellos \\
                 Henry Pollak / interviewed by Donald J. Albers and
                 Michael J. Thibodeaux \\
                 George P{\'o}lya / interviewed by G. L. Alexanderson
                 \\
                 Mina Rees / interviewed by Rosamond Dana and Peter J.
                 Hilton \\
                 Constance Reid / interviewed by G. L. Alexanderson \\
                 Herbert Robbins / interviewed by Warren Page \\
                 Raymond Smullyan: autobiographical essay \\
                 Olga Taussky-Todd: autobiographical essay \\
                 Albert Tucker / interviewed by Stephen B. Maurer \\
                 Stanis{\l}aw M. Ulam / interviewed by Anthony
                 Barcellos",
}


bibtype: book
filename: master.bib
label: Albers:2016:GHH
editor: Donald J. Albers and Gerald L. Alexanderson and William Dunham
title: The G. H. Hardy reader
publisher: pub-CAMBRIDGE
address: pub-CAMBRIDGE:adr
pages: xv + 1 + 395
year: 2016
LCCN: QA29.H23 G44 2015
bibdate: Thu Sep 15 07:39:02 MDT 2016
bibsource: fsz3950.oclc.org:210/WorldCat; https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2016.09.15 07:39:02 MDT
series: Spectrum
acknowledgement: ack-nhfb
subjectdates: 1877--1947
raweditor: Donald J. Albers and Gerald L. Alexanderson and William Dunham
rawtitle: The {G. H. Hardy} reader
ISBN:
1-107-13555-9 (hardcover), 1-107-59464-2 (paperback) OR 1107135559 (hardcover), 1107594642 (paperback)

ISBN13:
978-1-107-13555-0 (hardcover), 978-1-107-59464-7 (paperback) OR 9781107135550 (hardcover), 9781107594647 (paperback)

abstract:
This book is a feast of G. H. Hardy's writing. There are selections of his mathematical papers, his book reviews, his tributes to departed colleagues. Some articles are serious, and others display his wry sense of humor. To these are added recollections by those who knew Hardy, along with biographical and mathematical pieces written explicitly for this collection.

subject:
Hardy, G. H; (Godfrey Harold); (Godfrey Harold),; Mathematics; History; 19th century; 20th century; Mathematics.

TOC:
I: Biography 1: Hardy's life 2: The letter from Ramanujan to Hardy, 16 January 1913 3: A letter from Bertrand Russell to Lady Ottoline Morrell, 2 February 1913 4: The Indian mathematician Ramanujan 5: ``Epilogue'' from The man who knew infinity by Robert Kanigel 6: Posters of ``Hardy's years at Oxford'' by R. J. Wilson 7: A glimpse of J. E. Littlewood 8: A letter from Freeman Dyson to C. P. Snow, 22 May 1967, and two letters from Hardy to Dyson 9: Miss Gertrude Hardy II: Writings by and about G. H. Hardy 10: Hardy on writing books 11: Selections from Hardy's writings 12: Selections from what others have said about Hardy III: Mathematics 13: An introduction to the theory of numbers 14: Prime numbers 15: The theory of numbers 16: The Riemann zeta-function and lattice point problems by E. C. Titchmarsh 17: Four Hardy gems a: A function b: An integral c: An inequality d: An application 18: What is geometry? 19: The case against the mathematical tripos 20: The mathematician on cricket by C. P. Snow 21: Cricket for the rest of us by John Stillwell 22: A mathematical theorem about golf 23: Mathematics in war-time 24: Mathematics 25: Asymptotic formulae in combinatory analysis (excerpts) with S. Ramanujan 26: A new solution of Waring's problem (excerpts) with J. E. Littlewood 27: Some notes on certain theorems in higher trigonometry 28: The integral $int _0^infty frac sin (x)x dx$ and further remarks on the integral $int _0^infty frac sin (x)x dx$ IV: Tributes 29: Dr. Glaisher and the ``messenger of mathematics'' 30: David Hilbert 31: Edmund Landau (with H. Heilbronn) 32: Gosta Mittag-Leffler V: Book Reviews 33: Osgood's Calculus and Johnson's Calculus 34: Hadamard: The psychology of invention in the mathematical field 35: Hulburt: Differential and integral calculus 36: Bocher: An introduction to the study of integral equations 37: Davison: Higher Algebra 38: Zoretti: Lecons de mathematiques generales A Last Word Sources Acknowledgments Index About the Editors

rawabstract:
This book is a feast of G. H. Hardy's writing. There are selections of his mathematical papers, his book reviews, his tributes to departed colleagues. Some articles are serious, and others display his wry sense of humor. To these are added recollections by those who knew Hardy, along with biographical and mathematical pieces written explicitly for this collection.

rawTOC:
I: Biography \\ 1: Hardy's life \\ 2: The letter from Ramanujan to Hardy, 16 January 1913 \\ 3: A letter from Bertrand Russell to Lady Ottoline Morrell, 2 February 1913 \\ 4: The Indian mathematician Ramanujan \\ 5: ``Epilogue'' from The man who knew infinity by Robert Kanigel \\ 6: Posters of ``Hardy's years at Oxford'' by R. J. Wilson \\ 7: A glimpse of J. E. Littlewood \\ 8: A letter from Freeman Dyson to C. P. Snow, 22 May 1967, and two letters from Hardy to Dyson \\ 9: Miss Gertrude Hardy \\ II: Writings by and about G. H. Hardy \\ 10: Hardy on writing books \\ 11: Selections from Hardy's writings \\ 12: Selections from what others have said about Hardy \\ III: Mathematics \\ 13: An introduction to the theory of numbers \\ 14: Prime numbers \\ 15: The theory of numbers \\ 16: The Riemann zeta-function and lattice point problems by E. C. Titchmarsh \\ 17: Four Hardy gems \\ a: A function \\ b: An integral \\ c: An inequality \\ d: An application \\ 18: What is geometry? \\ 19: The case against the mathematical tripos \\ 20: The mathematician on cricket by C. P. Snow \\ 21: Cricket for the rest of us by John Stillwell \\ 22: A mathematical theorem about golf \\ 23: Mathematics in war-time \\ 24: Mathematics \\ 25: Asymptotic formul{\ae} in combinatory analysis (excerpts) with S. Ramanujan \\ 26: A new solution of Waring's problem (excerpts) with J. E. Littlewood \\ 27: Some notes on certain theorems in higher trigonometry \\ 28: The integral $\int_0^\infty \frac{\sin(x)}{x} \, dx$ and further remarks on the integral $\int_0^\infty \frac{\sin(x)}{x} \, dx$ \\ IV: Tributes \\ 29: Dr. Glaisher and the ``messenger of mathematics'' \\ 30: David Hilbert \\ 31: Edmund Landau (with H. Heilbronn) \\ 32: G{\"o}sta Mittag-Leffler \\ V: Book Reviews \\ 33: Osgood's Calculus and Johnson's Calculus \\ 34: Hadamard: The psychology of invention in the mathematical field \\ 35: Hulburt: Differential and integral calculus \\ 36: B{\^o}cher: An introduction to the study of integral equations \\ 37: Davison: Higher Algebra \\ 38: Zoretti: Le{\c{c}}ons de math{\'e}matiques g{\'e}n{\'e}rales \\ A Last Word \\ Sources \\ Acknowledgments \\ Index \\ About the Editors

entry:
@Book{Albers:2016:GHH,
  editor =       "Donald J. Albers and Gerald L. Alexanderson and
                 William Dunham",
  title =        "The {G. H. Hardy} reader",
  publisher =    pub-CAMBRIDGE,
  address =      pub-CAMBRIDGE:adr,
  pages =        "xv + 1 + 395",
  year =         "2016",
  ISBN =         "1-107-13555-9 (hardcover), 1-107-59464-2 (paperback)",
  ISBN-13 =      "978-1-107-13555-0 (hardcover), 978-1-107-59464-7
                 (paperback)",
  LCCN =         "QA29.H23 G44 2015",
  bibdate =      "Thu Sep 15 07:39:02 MDT 2016",
  bibsource =    "fsz3950.oclc.org:210/WorldCat;
                 https://www.math.utah.edu/pub/tex/bib/master.bib",
  series =       "Spectrum",
  abstract =     "This book is a feast of G. H. Hardy's writing. There
                 are selections of his mathematical papers, his book
                 reviews, his tributes to departed colleagues. Some
                 articles are serious, and others display his wry sense
                 of humor. To these are added recollections by those who
                 knew Hardy, along with biographical and mathematical
                 pieces written explicitly for this collection.",
  acknowledgement = ack-nhfb,
  libnote =      "Not yet in my library.",
  subject =      "Hardy, G. H; (Godfrey Harold); (Godfrey Harold),;
                 Mathematics; History; 19th century; 20th century;
                 Mathematics.",
  subject-dates = "1877--1947",
  tableofcontents = "I: Biography \\
                 1: Hardy's life \\
                 2: The letter from Ramanujan to Hardy, 16 January 1913
                 \\
                 3: A letter from Bertrand Russell to Lady Ottoline
                 Morrell, 2 February 1913 \\
                 4: The Indian mathematician Ramanujan \\
                 5: ``Epilogue'' from The man who knew infinity by
                 Robert Kanigel \\
                 6: Posters of ``Hardy's years at Oxford'' by R. J.
                 Wilson \\
                 7: A glimpse of J. E. Littlewood \\
                 8: A letter from Freeman Dyson to C. P. Snow, 22 May
                 1967, and two letters from Hardy to Dyson \\
                 9: Miss Gertrude Hardy \\
                 II: Writings by and about G. H. Hardy \\
                 10: Hardy on writing books \\
                 11: Selections from Hardy's writings \\
                 12: Selections from what others have said about Hardy
                 \\
                 III: Mathematics \\
                 13: An introduction to the theory of numbers \\
                 14: Prime numbers \\
                 15: The theory of numbers \\
                 16: The Riemann zeta-function and lattice point
                 problems by E. C. Titchmarsh \\
                 17: Four Hardy gems \\
                 a: A function \\
                 b: An integral \\
                 c: An inequality \\
                 d: An application \\
                 18: What is geometry? \\
                 19: The case against the mathematical tripos \\
                 20: The mathematician on cricket by C. P. Snow \\
                 21: Cricket for the rest of us by John Stillwell \\
                 22: A mathematical theorem about golf \\
                 23: Mathematics in war-time \\
                 24: Mathematics \\
                 25: Asymptotic formul{\ae} in combinatory analysis
                 (excerpts) with S. Ramanujan \\
                 26: A new solution of Waring's problem (excerpts) with
                 J. E. Littlewood \\
                 27: Some notes on certain theorems in higher
                 trigonometry \\
                 28: The integral $\int_0^\infty \frac{\sin(x)}{x} \,
                 dx$ and further remarks on the integral $\int_0^\infty
                 \frac{\sin(x)}{x} \, dx$ \\
                 IV: Tributes \\
                 29: Dr. Glaisher and the ``messenger of mathematics''
                 \\
                 30: David Hilbert \\
                 31: Edmund Landau (with H. Heilbronn) \\
                 32: G{\"o}sta Mittag-Leffler \\
                 V: Book Reviews \\
                 33: Osgood's Calculus and Johnson's Calculus \\
                 34: Hadamard: The psychology of invention in the
                 mathematical field \\
                 35: Hulburt: Differential and integral calculus \\
                 36: B{\^o}cher: An introduction to the study of
                 integral equations \\
                 37: Davison: Higher Algebra \\
                 38: Zoretti: Le{\c{c}}ons de math{\'e}matiques
                 g{\'e}n{\'e}rales \\
                 A Last Word \\
                 Sources \\
                 Acknowledgments \\
                 Index \\
                 About the Editors",
}


bibtype: book
filename: master.bib
label: Alder:2002:MAT
author: Ken Alder
title: The Measure of All Things: The Seven-Year Odyssey and Hidden Error That Transformed the World
publisher: Free Press
address: New York, NY, USA
pages: x + 422
year: 2002
ISBN: 0-7432-1675-X OR 074321675X
ISBN13: 978-0-7432-1675-3 OR 9780743216753
LCCN: QB291 .A43 2002
bibdate: Fri Oct 24 15:16:47 2003
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 2003.10.24 15:16:47 ???
acknowledgement: ack-nhfb
rawauthor: Ken Alder
rawtitle: The Measure of All Things: The Seven-Year Odyssey and Hidden Error That Transformed the World
note:
In June 1792, the erudite and cosmopolitan Jean-Baptiste-Joseph Delambre and the cautious and scrupulous Pierre-Francois-Andre Mechain set out from Paris --- one north to Dunkirk, the other south to Barcelona to calculate the length of the meter. In the face of death threats from village revolutionary councils, superstitious peasants, and civil war, they had only their wits and their letters to each other for support. Their findings would be used to create what we now know as the metric system. Despite their painstaking and Herculean efforts, Mechain made a mistake in his calculations that he covered up. The guilty knowledge of his error drove him to the brink of madness, and in the end, he died in an attempt to correct himself. Only then was his mistake discovered. Delambre decided to seal all evidence of the error in a vault at the Paris Observatory. Two hundred year later, historian Ken Alder discovered the truth. With scintillating prose and wry wit, Alder uses these previously overlooked letters, diaries, and journals to bring to life a remarkable time when everything was open to question and the light of reason made every dream seem possible.

keywords:
Arc measures --- History; Delambre, J. B. J. (Jean Baptiste Joseph), 1749--1822; Meter (Unit) --- History; Mechain, Pierre, 1744--1804

TOC:
North-going astronomer South-going astronomer Metric of revolution Castle of Mont-Jouy Calculating people Fear of France Convergence Triangulation Empire of science Broken arc Mechain's mistake, Delambre's peace Metered globe Epilogue: Shape of our world

rawnote:
In June 1792, the erudite and cosmopolitan Jean-Baptiste-Joseph Delambre and the cautious and scrupulous Pierre-Fran{\c{c}}ois-Andre Mechain set out from Paris --- one north to Dunkirk, the other south to Barcelona to calculate the length of the meter. In the face of death threats from village revolutionary councils, superstitious peasants, and civil war, they had only their wits and their letters to each other for support. Their findings would be used to create what we now know as the metric system. Despite their painstaking and Herculean efforts, Mechain made a mistake in his calculations that he covered up. The guilty knowledge of his error drove him to the brink of madness, and in the end, he died in an attempt to correct himself. Only then was his mistake discovered. Delambre decided to seal all evidence of the error in a vault at the Paris Observatory. Two hundred year later, historian Ken Alder discovered the truth. With scintillating prose and wry wit, Alder uses these previously overlooked letters, diaries, and journals to bring to life a remarkable time when everything was open to question and the light of reason made every dream seem possible.

rawTOC:
North-going astronomer \\ South-going astronomer \\ Metric of revolution \\ Castle of Mont-Jouy \\ Calculating people \\ Fear of France \\ Convergence \\ Triangulation \\ Empire of science \\ Broken arc \\ Mechain's mistake, Delambre's peace \\ Metered globe \\ Epilogue: Shape of our world

entry:
@Book{Alder:2002:MAT,
  author =       "Ken Alder",
  title =        "The Measure of All Things: The Seven-Year Odyssey and
                 Hidden Error That Transformed the World",
  publisher =    "Free Press",
  address =      "New York, NY, USA",
  pages =        "x + 422",
  year =         "2002",
  ISBN =         "0-7432-1675-X",
  ISBN-13 =      "978-0-7432-1675-3",
  LCCN =         "QB291 .A43 2002",
  bibdate =      "Fri Oct 24 15:16:47 2003",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  note =         "In June 1792, the erudite and cosmopolitan
                 Jean-Baptiste-Joseph Delambre and the cautious and
                 scrupulous Pierre-Fran{\c{c}}ois-Andre Mechain set out
                 from Paris --- one north to Dunkirk, the other south to
                 Barcelona to calculate the length of the meter. In the
                 face of death threats from village revolutionary
                 councils, superstitious peasants, and civil war, they
                 had only their wits and their letters to each other for
                 support. Their findings would be used to create what we
                 now know as the metric system. Despite their
                 painstaking and Herculean efforts, Mechain made a
                 mistake in his calculations that he covered up. The
                 guilty knowledge of his error drove him to the brink of
                 madness, and in the end, he died in an attempt to
                 correct himself. Only then was his mistake discovered.
                 Delambre decided to seal all evidence of the error in a
                 vault at the Paris Observatory. Two hundred year later,
                 historian Ken Alder discovered the truth. With
                 scintillating prose and wry wit, Alder uses these
                 previously overlooked letters, diaries, and journals to
                 bring to life a remarkable time when everything was
                 open to question and the light of reason made every
                 dream seem possible.",
  price =        "US\$27.00",
  acknowledgement = ack-nhfb,
  keywords =     "Arc measures --- History; Delambre, J. B. J. (Jean
                 Baptiste Joseph), 1749--1822; Meter (Unit) --- History;
                 M{\'e}chain, Pierre, 1744--1804",
  tableofcontents = "North-going astronomer \\
                 South-going astronomer \\
                 Metric of revolution \\
                 Castle of Mont-Jouy \\
                 Calculating people \\
                 Fear of France \\
                 Convergence \\
                 Triangulation \\
                 Empire of science \\
                 Broken arc \\
                 Mechain's mistake, Delambre's peace \\
                 Metered globe \\
                 Epilogue: Shape of our world",
}


bibtype: techreport
filename: master.bib
label: Aldus:tiff
author: Aldus Corporation and Microsoft Corporation
title: Tag Image File Format (TIFF) Specification Revision 5.0
pages: x + 422
month: aug
monthnumber: 8
year: 1988
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
acknowledgement: ack-nhfb
rawauthor: Aldus Corporation and Microsoft Corporation
rawtitle: Tag Image File Format ({TIFF}) Specification Revision 5.0
institution:
Aldus Corporation, 411 First Avenue South, Suite 200, Seattle, WA 98104, Tel: (206) 622-5500, and Microsoft Corporation, 16011 NE 36th Way, Box 97017, Redmond, WA 98073-9717, Tel: (206) 882-8080

entry:
@TechReport{Aldus:tiff,
  author =       "Aldus Corporation and Microsoft Corporation",
  title =        "Tag Image File Format ({TIFF}) Specification Revision
                 5.0",
  institution =  "Aldus Corporation, 411 First Avenue South, Suite 200,
                 Seattle, WA 98104, Tel: (206) 622-5500, and Microsoft
                 Corporation, 16011 NE 36th Way, Box 97017, Redmond, WA
                 98073-9717, Tel: (206) 882-8080",
  month =        aug # " 8",
  year =         "1988",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
}


bibtype: book
filename: master.bib
label: Alexander:2010:DDH
author: Amir Alexander
title: Duel at Dawn: Heroes, Martyrs, and the Rise of Modern Mathematics
publisher: pub-HARVARD
address: pub-HARVARD:adr
pages: 307
year: 2010
ISBN: 0-674-04661-7 OR 0674046617
ISBN13: 978-0-674-04661-0 OR 9780674046610
LCCN: QA10.7 .A44 2010
bibdate: Thu Mar 14 12:05:39 MDT 2013
bibtimestamp: 2013.03.14 12:05:39 MDT
subject: Mathematics; Social aspects; History
acknowledgement: ack-nhfb
rawauthor: Amir Alexander
rawtitle: Duel at Dawn: Heroes, Martyrs, and the Rise of Modern Mathematics
bibsource:
https://www.math.utah.edu/pub/bibnet/authors/i/infeld-leopold.bib; https://www.math.utah.edu/pub/tex/bib/annscience.bib; https://www.math.utah.edu/pub/tex/bib/bjhs2010.bib; https://www.math.utah.edu/pub/tex/bib/histmath.bib; https://www.math.utah.edu/pub/tex/bib/master.bib; https://www.math.utah.edu/pub/tex/bib/mathgaz2010.bib; z3950.loc.gov:7090/Voyager

abstract:
From Paris to St. Petersburg, Norway to Transylvania, Amir Alexander introduces us to national heroes and outcasts, innocents, swindlers, and martyrs --- all uncommonly gifted creators of modern mathematics.

remark:
The book contains three index entries about Leopold Infeld in reference to his book on Galois cite Infeld:1948:WGL.

TOC:
Introduction: A Showdown in Paris / 1 I: Natural men 1: The eternal child / 19 2: Natural mathematics / 49 II: Heroes and martyrs 3: A habit of insult: The short and impertinent life of Evariste Galois / 77 4: The exquisite dance of the blue nymphs / 301 5: A martyr to contempt / 127 III: Romantic mathematics 6: The poetry of mathematics / 159 7: Purity and rigor: the birth of modern mathematics / 184 IV: A new and different world 8: The gifted swordsman / 215 Conclusion: Portrait of a mathematician / 253 Notes / 275 Acknowledgements / 299 Index / 301

rawabstract:
From Paris to St. Petersburg, Norway to Transylvania, Amir Alexander introduces us to national heroes and outcasts, innocents, swindlers, and martyrs --- all uncommonly gifted creators of modern mathematics.

rawTOC:
Introduction: A Showdown in Paris / 1 \\ I: Natural men \\ 1: The eternal child / 19 \\ 2: Natural mathematics / 49 \\ II: Heroes and martyrs \\ 3: A habit of insult: The short and impertinent life of {\'E}variste Galois / 77 \\ 4: The exquisite dance of the blue nymphs / 301 \\ 5: A martyr to contempt / 127 \\ III: Romantic mathematics \\ 6: The poetry of mathematics / 159 \\ 7: Purity and rigor: the birth of modern mathematics / 184 \\ IV: A new and different world \\ 8: The gifted swordsman / 215 \\ Conclusion: Portrait of a mathematician / 253 \\ Notes / 275 \\ Acknowledgements / 299 \\ Index / 301

entry:
@Book{Alexander:2010:DDH,
  author =       "Amir Alexander",
  title =        "Duel at Dawn: Heroes, Martyrs, and the Rise of Modern
                 Mathematics",
  publisher =    pub-HARVARD,
  address =      pub-HARVARD:adr,
  pages =        "307",
  year =         "2010",
  ISBN =         "0-674-04661-7",
  ISBN-13 =      "978-0-674-04661-0",
  LCCN =         "QA10.7 .A44 2010",
  bibdate =      "Thu Mar 14 12:05:39 MDT 2013",
  bibsource =    "https://www.math.utah.edu/pub/bibnet/authors/i/infeld-leopold.bib;
                 https://www.math.utah.edu/pub/tex/bib/annscience.bib;
                 https://www.math.utah.edu/pub/tex/bib/bjhs2010.bib;
                 https://www.math.utah.edu/pub/tex/bib/histmath.bib;
                 https://www.math.utah.edu/pub/tex/bib/master.bib;
                 https://www.math.utah.edu/pub/tex/bib/mathgaz2010.bib;
                 z3950.loc.gov:7090/Voyager",
  abstract =     "From Paris to St. Petersburg, Norway to Transylvania,
                 Amir Alexander introduces us to national heroes and
                 outcasts, innocents, swindlers, and martyrs --- all
                 uncommonly gifted creators of modern mathematics.",
  acknowledgement = ack-nhfb,
  remark =       "The book contains three index entries about Leopold
                 Infeld in reference to his book on Galois
                 \cite{Infeld:1948:WGL}.",
  subject =      "Mathematics; Social aspects; History",
  tableofcontents = "Introduction: A Showdown in Paris / 1 \\
                 I: Natural men \\
                 1: The eternal child / 19 \\
                 2: Natural mathematics / 49 \\
                 II: Heroes and martyrs \\
                 3: A habit of insult: The short and impertinent life of
                 {\'E}variste Galois / 77 \\
                 4: The exquisite dance of the blue nymphs / 301 \\
                 5: A martyr to contempt / 127 \\
                 III: Romantic mathematics \\
                 6: The poetry of mathematics / 159 \\
                 7: Purity and rigor: the birth of modern mathematics /
                 184 \\
                 IV: A new and different world \\
                 8: The gifted swordsman / 215 \\
                 Conclusion: Portrait of a mathematician / 253 \\
                 Notes / 275 \\
                 Acknowledgements / 299 \\
                 Index / 301",
}


bibtype: book
filename: master.bib
label: Alexandrescu:2010:DPL
author: Andrei Alexandrescu
title: The D programming language
publisher: pub-AW
address: pub-AW:adr
pages: xxvii + 463
year: 2010
LCCN: QA76.73.D138 A44 2010; QA76.73.D138
bibdate: Sat Aug 21 13:36:45 MDT 2010
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib; library.mit.edu:9909/mit01
bibtimestamp: 2010.08.21 13:36:45 MDT
subject: D (Computer program language)
acknowledgement: ack-nhfb
rawauthor: Andrei Alexandrescu
rawtitle: The {D} programming language
ISBN:
0-321-65953-8 (hardcover), 0-321-63536-1 (paperback) OR 0321659538 (hardcover), 0321635361 (paperback)

ISBN13:
978-0-321-65953-8 (hardcover), 978-0-321-63536-5 (paperback) OR 9780321659538 (hardcover), 9780321635365 (paperback)

TOC:
Foreword by Walter Bright Foreword by Scott Meyers Preface Intended Audience Organization of the Book A Brief History Acknowledgments 1 ``D''iving In 1.1 Numbers and Expressions 1.2 Statements 1.3 Function Basics 1.4 Arrays and Associative Arrays 1.4.1 Building a Vocabulary 1.4.2 Array Slicing. Type-Generic Functions. Unit Tests 1.4.3 Counting Frequencies. Lambda Functions 1.5 Basic Data Structures 1.6 Interfaces and Classes 1.6.1 More Statistics. Inheritance 1.7 Values versus References 1.8 Summary 2 Basic Types. Expressions 2.1 Symbols 2.1.1 Special Symbols 2.2 Literals 2.2.1 Boolean Literals 2.2.2 Integral Literals 2.2.3 Floating-Point Literals 2.2.4 Character Literals 2.2.5 String Literals 2.2.6 Array and Associative Array Literals 2.2.7 Function Literals 2.3 Operators 2.3.1 Lvalues and Rvalues 2.3.2 Implicit Numeric Conversions 2.3.3 Typing of Numeric Operators 2.3.4 Primary Expressions 2.3.5 Postfix Expressions 2.3.6 Unary Expressions 2.3.7 The Power Expression 2.3.8 Multiplicative Expressions 2.3.9 Additive Expressions 2.3.10 Shift Expressions 2.3.11 in Expressions 2.3.12 Comparison Operators 2.3.13 Bitwise OR, XOR, AND 2.3.14 Logical AND 2.3.15 Logical OR 2.3.16 The Conditional Operator 2.3.17 Assignment Operators 2.3.18 The Comma Operator 2.4 Summary and Quick Reference 3 Statements 3.1 The Expression Statement 3.2 The Compound Statement 3.3 The if Statement 3.4 The static if Statement 3.5 The switch Statement 3.6 The final switch Statement 3.7 Looping Statements 3.7.1 The while Statement 3.7.2 The do-while Statement 3.7.3 The for Statement 3.7.4 The foreach Statement 3.7.5 Foreach on Arrays 3.7.6 The continue and break Statements 3.8 The goto Statement 3.9 The with Statement 3.10 The return Statement 3.11 The throw and try Statements 3.12 The mixin Statement 3.13 The scope Statement 3.14 The synchronized Statement 3.15 The asm Statement 3.16 Summary and Quick Reference 4 Arrays, Associative Arrays, and Strings 4.1 Dynamic Arrays 4.1.1 Length 4.1.2 Bounds Checking 4.1.3 Slicing 4.1.4 Copying 4.1.5 Comparing for Equality 4.1.6 Concatenating 4.1.7 Array-wise Expressions 4.1.8 Shrinking 4.1.9 Expanding 4.1.10 Assigning to length 4.2 Fixed-Size Arrays 4.2.1 Length 4.2.2 Bounds Checking 4.2.3 Slicing 4.2.4 Copying and Implicit Conversion 4.2.5 Comparing for Equality 4.2.6 Concatenating 4.2.7 Array-wise Operations 4.3 Multidimensional Arrays 4.4 Associative Arrays 4.4.1 Length 4.4.2 Reading and Writing Slots 4.4.3 Copying 4.4.4 Comparing for Equality 4.4.5 Removing Elements 4.4.6 Iterating 4.4.7 User-Defined Types as Keys 4.5 Strings 4.5.1 Code Points 4.5.2 Encodings 4.5.3 Character Types 4.5.4 Arrays of Characters + Benefits = Strings 4.6 Arrays' Maverick Cousin: The Pointer 4.7 Summary and Quick Reference [Chapter 5--13, Bibliography, and Index: no data available]

rawTOC:
Foreword by Walter Bright \\ Foreword by Scott Meyers \\ Preface \\ Intended Audience \\ Organization of the Book \\ A Brief History \\ Acknowledgments \\ 1 ``D''iving In \\ 1.1 Numbers and Expressions \\ 1.2 Statements \\ 1.3 Function Basics \\ 1.4 Arrays and Associative Arrays \\ 1.4.1 Building a Vocabulary \\ 1.4.2 Array Slicing. Type-Generic Functions. Unit Tests \\ 1.4.3 Counting Frequencies. Lambda Functions \\ 1.5 Basic Data Structures \\ 1.6 Interfaces and Classes \\ 1.6.1 More Statistics. Inheritance \\ 1.7 Values versus References \\ 1.8 Summary \\ 2 Basic Types. Expressions \\ 2.1 Symbols \\ 2.1.1 Special Symbols \\ 2.2 Literals \\ 2.2.1 Boolean Literals \\ 2.2.2 Integral Literals \\ 2.2.3 Floating-Point Literals \\ 2.2.4 Character Literals \\ 2.2.5 String Literals \\ 2.2.6 Array and Associative Array Literals \\ 2.2.7 Function Literals \\ 2.3 Operators \\ 2.3.1 Lvalues and Rvalues \\ 2.3.2 Implicit Numeric Conversions \\ 2.3.3 Typing of Numeric Operators \\ 2.3.4 Primary Expressions \\ 2.3.5 Postfix Expressions \\ 2.3.6 Unary Expressions \\ 2.3.7 The Power Expression \\ 2.3.8 Multiplicative Expressions \\ 2.3.9 Additive Expressions \\ 2.3.10 Shift Expressions \\ 2.3.11 in Expressions \\ 2.3.12 Comparison Operators \\ 2.3.13 Bitwise OR, XOR, AND \\ 2.3.14 Logical AND \\ 2.3.15 Logical OR \\ 2.3.16 The Conditional Operator \\ 2.3.17 Assignment Operators \\ 2.3.18 The Comma Operator \\ 2.4 Summary and Quick Reference \\ 3 Statements \\ 3.1 The Expression Statement \\ 3.2 The Compound Statement \\ 3.3 The if Statement \\ 3.4 The static if Statement \\ 3.5 The switch Statement \\ 3.6 The final switch Statement \\ 3.7 Looping Statements \\ 3.7.1 The while Statement \\ 3.7.2 The do-while Statement \\ 3.7.3 The for Statement \\ 3.7.4 The foreach Statement \\ 3.7.5 Foreach on Arrays \\ 3.7.6 The continue and break Statements \\ 3.8 The goto Statement \\ 3.9 The with Statement \\ 3.10 The return Statement \\ 3.11 The throw and try Statements \\ 3.12 The mixin Statement \\ 3.13 The scope Statement \\ 3.14 The synchronized Statement \\ 3.15 The asm Statement \\ 3.16 Summary and Quick Reference \\ 4 Arrays, Associative Arrays, and Strings \\ 4.1 Dynamic Arrays \\ 4.1.1 Length \\ 4.1.2 Bounds Checking \\ 4.1.3 Slicing \\ 4.1.4 Copying \\ 4.1.5 Comparing for Equality \\ 4.1.6 Concatenating \\ 4.1.7 Array-wise Expressions \\ 4.1.8 Shrinking \\ 4.1.9 Expanding \\ 4.1.10 Assigning to length \\ 4.2 Fixed-Size Arrays \\ 4.2.1 Length \\ 4.2.2 Bounds Checking \\ 4.2.3 Slicing \\ 4.2.4 Copying and Implicit Conversion \\ 4.2.5 Comparing for Equality \\ 4.2.6 Concatenating \\ 4.2.7 Array-wise Operations \\ 4.3 Multidimensional Arrays \\ 4.4 Associative Arrays \\ 4.4.1 Length \\ 4.4.2 Reading and Writing Slots \\ 4.4.3 Copying \\ 4.4.4 Comparing for Equality \\ 4.4.5 Removing Elements \\ 4.4.6 Iterating \\ 4.4.7 User-Defined Types as Keys \\ 4.5 Strings \\ 4.5.1 Code Points \\ 4.5.2 Encodings \\ 4.5.3 Character Types \\ 4.5.4 Arrays of Characters + Benefits = Strings \\ 4.6 Arrays' Maverick Cousin: The Pointer \\ 4.7 Summary and Quick Reference \\ [Chapter 5--13, Bibliography, and Index: no data available]

entry:
@Book{Alexandrescu:2010:DPL,
  author =       "Andrei Alexandrescu",
  title =        "The {D} programming language",
  publisher =    pub-AW,
  address =      pub-AW:adr,
  pages =        "xxvii + 463",
  year =         "2010",
  ISBN =         "0-321-65953-8 (hardcover), 0-321-63536-1 (paperback)",
  ISBN-13 =      "978-0-321-65953-8 (hardcover), 978-0-321-63536-5
                 (paperback)",
  LCCN =         "QA76.73.D138 A44 2010; QA76.73.D138",
  bibdate =      "Sat Aug 21 13:36:45 MDT 2010",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib;
                 library.mit.edu:9909/mit01",
  acknowledgement = ack-nhfb,
  subject =      "D (Computer program language)",
  tableofcontents = "Foreword by Walter Bright \\
                 Foreword by Scott Meyers \\
                 Preface \\
                 Intended Audience \\
                 Organization of the Book \\
                 A Brief History \\
                 Acknowledgments \\
                 1 ``D''iving In \\
                 1.1 Numbers and Expressions \\
                 1.2 Statements \\
                 1.3 Function Basics \\
                 1.4 Arrays and Associative Arrays \\
                 1.4.1 Building a Vocabulary \\
                 1.4.2 Array Slicing. Type-Generic Functions. Unit Tests
                 \\
                 1.4.3 Counting Frequencies. Lambda Functions \\
                 1.5 Basic Data Structures \\
                 1.6 Interfaces and Classes \\
                 1.6.1 More Statistics. Inheritance \\
                 1.7 Values versus References \\
                 1.8 Summary \\
                 2 Basic Types. Expressions \\
                 2.1 Symbols \\
                 2.1.1 Special Symbols \\
                 2.2 Literals \\
                 2.2.1 Boolean Literals \\
                 2.2.2 Integral Literals \\
                 2.2.3 Floating-Point Literals \\
                 2.2.4 Character Literals \\
                 2.2.5 String Literals \\
                 2.2.6 Array and Associative Array Literals \\
                 2.2.7 Function Literals \\
                 2.3 Operators \\
                 2.3.1 Lvalues and Rvalues \\
                 2.3.2 Implicit Numeric Conversions \\
                 2.3.3 Typing of Numeric Operators \\
                 2.3.4 Primary Expressions \\
                 2.3.5 Postfix Expressions \\
                 2.3.6 Unary Expressions \\
                 2.3.7 The Power Expression \\
                 2.3.8 Multiplicative Expressions \\
                 2.3.9 Additive Expressions \\
                 2.3.10 Shift Expressions \\
                 2.3.11 in Expressions \\
                 2.3.12 Comparison Operators \\
                 2.3.13 Bitwise OR, XOR, AND \\
                 2.3.14 Logical AND \\
                 2.3.15 Logical OR \\
                 2.3.16 The Conditional Operator \\
                 2.3.17 Assignment Operators \\
                 2.3.18 The Comma Operator \\
                 2.4 Summary and Quick Reference \\
                 3 Statements \\
                 3.1 The Expression Statement \\
                 3.2 The Compound Statement \\
                 3.3 The if Statement \\
                 3.4 The static if Statement \\
                 3.5 The switch Statement \\
                 3.6 The final switch Statement \\
                 3.7 Looping Statements \\
                 3.7.1 The while Statement \\
                 3.7.2 The do-while Statement \\
                 3.7.3 The for Statement \\
                 3.7.4 The foreach Statement \\
                 3.7.5 Foreach on Arrays \\
                 3.7.6 The continue and break Statements \\
                 3.8 The goto Statement \\
                 3.9 The with Statement \\
                 3.10 The return Statement \\
                 3.11 The throw and try Statements \\
                 3.12 The mixin Statement \\
                 3.13 The scope Statement \\
                 3.14 The synchronized Statement \\
                 3.15 The asm Statement \\
                 3.16 Summary and Quick Reference \\
                 4 Arrays, Associative Arrays, and Strings \\
                 4.1 Dynamic Arrays \\
                 4.1.1 Length \\
                 4.1.2 Bounds Checking \\
                 4.1.3 Slicing \\
                 4.1.4 Copying \\
                 4.1.5 Comparing for Equality \\
                 4.1.6 Concatenating \\
                 4.1.7 Array-wise Expressions \\
                 4.1.8 Shrinking \\
                 4.1.9 Expanding \\
                 4.1.10 Assigning to length \\
                 4.2 Fixed-Size Arrays \\
                 4.2.1 Length \\
                 4.2.2 Bounds Checking \\
                 4.2.3 Slicing \\
                 4.2.4 Copying and Implicit Conversion \\
                 4.2.5 Comparing for Equality \\
                 4.2.6 Concatenating \\
                 4.2.7 Array-wise Operations \\
                 4.3 Multidimensional Arrays \\
                 4.4 Associative Arrays \\
                 4.4.1 Length \\
                 4.4.2 Reading and Writing Slots \\
                 4.4.3 Copying \\
                 4.4.4 Comparing for Equality \\
                 4.4.5 Removing Elements \\
                 4.4.6 Iterating \\
                 4.4.7 User-Defined Types as Keys \\
                 4.5 Strings \\
                 4.5.1 Code Points \\
                 4.5.2 Encodings \\
                 4.5.3 Character Types \\
                 4.5.4 Arrays of Characters + Benefits = Strings \\
                 4.6 Arrays' Maverick Cousin: The Pointer \\
                 4.7 Summary and Quick Reference \\
                 [Chapter 5--13, Bibliography, and Index: no data
                 available]",
}


bibtype: book
filename: master.bib
label: Allen:1978:AL
author: John R. Allen
title: Anatomy of LISP
publisher: pub-MCGRAW-HILL
address: pub-MCGRAW-HILL:adr
pages: xviii + 446
year: 1978
ISBN: 0-07-001115-X OR 007001115X
ISBN13: 978-0-07-001115-1 OR 9780070011151
LCCN: QA76.73 .L23 A43 1978
bibdate: Tue Dec 14 22:36:12 1993
bibsource: https://www.math.utah.edu/pub/tex/bib/master.bib
bibtimestamp: 1993.12.14 22:36:12 ???
acknowledgement: ack-nhfb
rawauthor: John R. Allen
rawtitle: Anatomy of {LISP}
entry:
@Book{Allen:1978:AL,
  author =       "John R. Allen",
  title =        "Anatomy of {LISP}",
  publisher =    pub-MCGRAW-HILL,
  address =      pub-MCGRAW-HILL:adr,
  pages =        "xviii + 446",
  year =         "1978",
  ISBN =         "0-07-001115-X",
  ISBN-13 =      "978-0-07-001115-1",
  LCCN =         "QA76.73 .L23 A43 1978",
  bibdate =      "Tue Dec 14 22:36:12 1993",
  bibsource =    "https://www.math.utah.edu/pub/tex/bib/master.bib",
  acknowledgement = ack-nhfb,
}


