1. Stéphane GALLAND
  2. lo46-lessons

Commits

Stéphane GALLAND  committed 8ed3be5

Add bibliographies for chapters 1 to 4.

  • Participants
  • Parent commits 58c357a
  • Branches master

Comments (0)

Files changed (9)

File .gitignore

View file
  • Ignore whitespace
 *.synctex.gz
 *.toc
 *.vrb
+*.bbl
+*.blg
 imgs/*/*.pdf
 imgs/*/*.pdftex_t
+bibliographies/*.bak
 

File bibliographies/chapter1.bib

View file
  • Ignore whitespace
+% This file was created with JabRef 2.3.1.
+% Encoding: UTF-8
+
+@BOOK{Bergin.96,
+  title = {History of Programming Languages},
+  publisher = {Addison Wesley},
+  year = {1996},
+  author = {Bergin, T.J. and Gibson, R.G.},
+  volume = {2},
+  series = {ACM Press},
+  isbn = {978-0201895025}
+}
+
+@MANUAL{Church.1941,
+  title = {The Calculs of Lambda Conversion},
+  author = {Church, A.},
+  organization = {Princeton University Press},
+  address = {Princeton, N.J.},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INBOOK{Frege.1967,
+  chapter = {From Frege to G\"odel},
+  title = {Begriffsschrift, a formula language, modeled upon that of arithmetic,
+	for pure thought},
+  publisher = {Havard Univ. Press},
+  year = {1967},
+  editor = {Heijenoort, van, J.},
+  author = {Frege, G.},
+  address = {Cambridge, MA},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@BOOK{Scott.2006,
+  title = {Programming Language Pragmatics},
+  publisher = {Morgan-Kaufmann},
+  year = {2006},
+  author = {Scott, M.L.},
+  address = {Sans Francisco, CA},
+  edition = {2nd edition},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@BOOK{Sethi.1996,
+  title = {Programming Languages: Concepts and Constructs},
+  publisher = {Addison-Wesley},
+  year = {1996},
+  author = {Sethi, R.},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@BOOK{Wexelblat.1981,
+  title = {History of Programming Languages},
+  publisher = {Academic Press},
+  year = {1981},
+  author = {Wexelblat, Richard L.},
+  volume = {1},
+  isbn = {9780127450407},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+

File bibliographies/chapter2.bib

View file
  • Ignore whitespace
+% This file was created with JabRef 2.3.1.
+% Encoding: UTF-8
+
+@INBOOK{Kleene.1956,
+  pages = {3--40},
+  title = {Representation of events in nerve nets},
+  author = {Kleene, S.C.},
+  crossref = {Shannon.1956},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INBOOK{Moore.1956,
+  pages = {129--153},
+  title = {Gedanken Experiments on Sequential Machines},
+  author = {Moore, E.F.},
+  crossref = {Shannon.1956},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Aho.1990,
+  author = {Aho, A.V.},
+  title = {Algorithms for Finding Patterns in Strings},
+  journal = {Handbook of Theoretical Computer Science},
+  year = {1990},
+  volume = {A},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@BOOK{Aho.1988,
+  title = {The {AWK} Programming Language},
+  publisher = {Addison-Wesley},
+  year = {1988},
+  author = {Aho, A.V. and Kernighan, W. and Weinberger, P.J.},
+  address = {Boston, MA},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@BOOK{Hopcroft.2006,
+  title = {Introduction to Automata Theory, Languages, and Computation},
+  publisher = {Addison-Wesley},
+  year = {2006},
+  author = {Hopcroft, J.E and Motwani, R. and Ullman, J.D.},
+  address = {Boston, MA},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Huffman.1954,
+  author = {Huffman, D.A.},
+  title = {The synthesis of sequential machines},
+  journal = {J. Franklin Inst.},
+  year = {1954},
+  volume = {257},
+  pages = {3--4, 161, 190, 375--303},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@TECHREPORT{Lesk.1975,
+  author = {Lesk, M.E.},
+  title = {{Lex} - a lexical analyzer generator},
+  institution = {Bell Laboratories},
+  year = {1975},
+  type = {Computing Science Tech. Report},
+  number = {39},
+  address = {Murray Hill, NJ},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{McCullough.1943,
+  author = {McCullough, W.S. and Pitts, W.},
+  title = {A logical calculus of the ideas immanent in nervous activity},
+  journal = {Bull. Math. Biophysics},
+  year = {1943},
+  volume = {5},
+  pages = {115--133},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{McNaughton.1960,
+  author = {McNaughton, R. and Yamada, H.},
+  title = {Regular Expressions and State Graphs for Automata},
+  journal = {{IRE}Trans. on Electronic Computers},
+  year = {1960},
+  volume = {1},
+  pages = {38--47},
+  number = {1},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Thompson.1968,
+  author = {Thompson, K.},
+  title = {Regular Expression Search Algorithm},
+  journal = {Comm. {ACM}},
+  year = {1968},
+  volume = {11},
+  pages = {419--422},
+  number = {6},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@BOOK{Shannon.1956,
+  title = {Automata Studies},
+  publisher = {Princeton University Press},
+  year = {1956},
+  editor = {Shannon, C. and McCarthy, J.},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+

File bibliographies/chapter3.bib

View file
  • Ignore whitespace
+% This file was created with JabRef 2.3.1.
+% Encoding: UTF-8
+
+@INPROCEEDINGS{Backus.1959,
+  author = {Backus, J.W.},
+  title = {The Syntax and Semantics of the Proposed International Algebraic
+	Language of the Zurich-{ACM}-{GAMM} Conference},
+  booktitle = {Intl. Conf. Information Processing},
+  year = {1959},
+  pages = {125--132},
+  address = {Paris},
+  organization = {{UNESCO}},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Birman.1973,
+  author = {Birman, A. and Ullman, J.D.},
+  title = {Parsing Algorithms with Backtrack},
+  journal = {Information and Control},
+  year = {1973},
+  volume = {23},
+  pages = {1--34},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INCOLLECTION{Cantor.1962,
+  author = {Cantor, D.C.},
+  title = {On the Ambiguity Problem of Backus Systems},
+  booktitle = {J. {ACM}},
+  publisher = {{ACM}},
+  year = {1962},
+  volume = {9},
+  number = {4},
+  pages = {477--479},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Chomsky.1956,
+  author = {Chomsky, N.},
+  title = {Three Models for the Description of Language},
+  journal = {{IRE} Trans. on Information Theory},
+  year = {1956},
+  volume = {2},
+  pages = {113--124},
+  number = {3},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@MISC{Dain.1991,
+  author = {Dain, J.},
+  title = {Bibliography on Syntax Error Handling in Language Translation Systems},
+  howpublished = {Available from the \texttt{comp.compilers} newsgroup.},
+  year = {1991},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{DeRemer.1971,
+  author = {DeRemer, F.},
+  title = {Simple \ensuremath{LR(k)} Grammars},
+  journal = {Comm. {ACM}},
+  year = {1971},
+  volume = {14},
+  pages = {453--460},
+  number = {7},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@PHDTHESIS{DeRemer.1969,
+  author = {DeRemer, F.},
+  title = {Practical Translators for \ensuremath{LR(k)} Languages},
+  school = {{MIT}},
+  year = {1969},
+  address = {Cambridge, MA},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Earley.1970,
+  author = {Earley, J.},
+  title = {An Efficient Context-Free Parsing Algorithm},
+  journal = {Comm. {ACM}},
+  year = {1970},
+  volume = {13},
+  pages = {94--102},
+  number = {2},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INCOLLECTION{Floyd.1962,
+  author = {Floyd, R.W.},
+  title = {On the Ambiguity in Phase-Structure Languages},
+  booktitle = {Comm. {ACM}},
+  publisher = {{ACM}},
+  year = {1962},
+  volume = {5},
+  number = {10},
+  pages = {526--534},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Hoare.1962,
+  author = {Hoare, C.A.R.},
+  title = {Report on the Elliott {ALGOL}Translator},
+  journal = {Computer J.},
+  year = {1962},
+  volume = {5},
+  pages = {127--129},
+  number = {2},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@BOOK{Hopcroft.2006,
+  title = {Introduction to Automata Theory, Languages, and Computation},
+  publisher = {Addison-Wesley},
+  year = {2006},
+  author = {Hopcroft, J.E and Motwani, R. and Ullman, J.D.},
+  address = {Boston, MA},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INCOLLECTION{Ingerman.1967,
+  author = {Ingerman, P.Z.},
+  title = {Panini-Backus Form Suggested},
+  booktitle = {Comm. {ACM}},
+  publisher = {{ACM}},
+  year = {1967},
+  volume = {10},
+  number = {3},
+  pages = {137},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@TECHREPORT{Johnson.1975,
+  author = {Johnson, S.C.},
+  title = {Yacc - Yet Another Compiler Compiler},
+  institution = {Bell Laboratories},
+  year = {1975},
+  type = {Computing Science Technical Report},
+  number = {32},
+  address = {Murray Hill, NJ},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@TECHREPORT{Kasami.1965,
+  author = {Kasami, T.},
+  title = {An Efficient Recognition and Syntax Analysis Algorithm for Context-Free
+	Languages},
+  institution = {Air Force Cambridge Research Laboratory},
+  year = {1965},
+  number = {{AFCRL-65-768}},
+  address = {Bedford, MA},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Knuth.1965,
+  author = {Knuth, D.E.},
+  title = {On the Translation of Languages from Left to Right},
+  journal = {Information and Control},
+  year = {1965},
+  volume = {8},
+  pages = {607--639},
+  number = {6},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Korenjak.1969,
+  author = {Korenjak, A.J.},
+  title = {A Practical Method for Constructing \ensuremath{LR(k)} Processors},
+  journal = {Comm. {ACM}},
+  year = {1969},
+  volume = {8},
+  pages = {613--623},
+  number = {11},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Lewis.1968,
+  author = {Lewis, P.M. and Stearns, R.E.},
+  title = {Syntax-Directed Transduction},
+  journal = {J. {ACM}},
+  year = {1968},
+  volume = {15},
+  pages = {465--488},
+  number = {3},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INPROCEEDINGS{McClure.1965,
+  author = {McClure, R.M.},
+  title = {{TMG}: a syntax-directed compiler},
+  booktitle = {20th {ACM} Natl. Conf.},
+  year = {1965},
+  pages = {262--274},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INCOLLECTION{Naur.1963,
+  author = {Naur, P. et al},
+  title = {Report on the Algorithmic Language {ALGOL 60}},
+  booktitle = {Comm. {ACM}},
+  publisher = {{ACM}},
+  year = {1963},
+  volume = {3},
+  number = {5},
+  pages = {299--314},
+  month = {may},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INPROCEEDINGS{Schorre.1964,
+  author = {Schorre, D.V.},
+  title = {{Meta-II}: a syntax-oriented compiler writing language},
+  booktitle = {19th {ACM} Natl. Conf.},
+  year = {1964},
+  pages = {D1.3-1--D1.3-11},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Younger.1967,
+  author = {Younger, D.H.},
+  title = {Recognition and Parsing of Context-Free Languages in Time \ensuremath{n^3}},
+  journal = {Information},
+  year = {1967},
+  volume = {10},
+  pages = {189--208},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+

File bibliographies/chapter4.bib

View file
  • Ignore whitespace
+% This file was created with JabRef 2.3.1.
+% Encoding: UTF-8
+
+@ARTICLE{Brooker.1962,
+  author = {Brooker, R.A. and Morris, D.},
+  title = {A General Translation Program for Phrase Structure Languages},
+  journal = {J. {ACM}},
+  year = {1962},
+  volume = {9},
+  pages = {1--10},
+  number = {1},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@INPROCEEDINGS{Gosling.1995,
+  author = {Gosling, J.},
+  title = {Java Intermediate Bytecodes},
+  booktitle = {{ACM} {SIGPLAN} Workshop on Intermediate Representations},
+  year = {1995},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Irons.1961,
+  author = {Irons, E.T.},
+  title = {A Syntax-Directed Compiler for {ALGOL 60}},
+  journal = {Comm. {ACM}},
+  year = {1961},
+  volume = {4},
+  pages = {51--55},
+  number = {1},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Jazayeri.1975,
+  author = {Jazayeri, M. and Ogden, W.F. and Rounds, W.C.},
+  title = {The Intrinsic Exponential Complexity of the Circularity Problem for
+	Attribute Grammars},
+  journal = {Comm. {ACM}},
+  year = {1975},
+  volume = {18},
+  pages = {697--706},
+  number = {12},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@TECHREPORT{Johnson.1979,
+  author = {Johnson, S.C.},
+  title = {A Tour through the Portable {C} Compiler},
+  institution = {Bell Telephone Laboratories Inc.},
+  year = {1979},
+  address = {Murray Hill, N.J.},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Knuth.1968,
+  author = {Knuth, D.E.},
+  title = {Semantics of Context-Free Languages},
+  journal = {Mathematical Systems Theory},
+  year = {1968},
+  volume = {2},
+  pages = {127--145},
+  number = {2},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Lewis.1974,
+  author = {Lewis, P.M. and Rosenkrantz, D.J. and Stearns, R.E.},
+  title = {Attributed Translations},
+  journal = {J. Computer and System Sciences},
+  year = {1974},
+  volume = {9},
+  pages = {279--307},
+  number = {3},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Milner.1978,
+  author = {Milner, R.},
+  title = {A Theory of Type Polymorphism in Programming},
+  journal = {J. Computer and System Sciences},
+  year = {1978},
+  volume = {17},
+  pages = {348--375},
+  number = {3},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Paakki.1995,
+  author = {Paakki, J.},
+  title = {Attribute Grammar Paradigms -- a high-level methodology in language
+	implementation},
+  journal = {Computing Surveys},
+  year = {1995},
+  volume = {27},
+  pages = {196--255},
+  number = {2},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@BOOK{Pierce.2002,
+  title = {Types and Programming Languages},
+  publisher = {{MIT} Press},
+  year = {2002},
+  author = {Pierce, B.C.},
+  address = {Cambridge},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@TECHREPORT{Ritchie.1979,
+  author = {Ritchie, D.M.},
+  title = {A Tour through the Portable {UNIX} {C} Compiler},
+  institution = {Bell Telephone Laboratories Inc.},
+  year = {1979},
+  address = {Murray Hill, N.J.},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Samelson.1960,
+  author = {Samelson, K. and Bauer, F.L.},
+  title = {Sequential Formula Translation},
+  journal = {Comm. {ACM}},
+  year = {1960},
+  volume = {3},
+  pages = {76--83},
+  number = {2},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Strong.1958,
+  author = {Strong, J. and Wegstein, J. and Tritter, A. and Olsztyn, J. and Mock,
+	O. and Steel, T.},
+  title = {The Problem of Programming Communication with Changing Machines:
+	a proposed solution},
+  journal = {Comm. {ACM}},
+  year = {1958},
+  volume = {1},
+  pages = {12--18},
+  number = {8},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+
+@ARTICLE{Wirth.1971,
+  author = {Wirth, N.},
+  title = {The Design of a Pascal Compiler},
+  journal = {Software - Practice and Experience},
+  year = {1971},
+  volume = {1},
+  pages = {309--333},
+  number = {1},
+  owner = {sgalland},
+  timestamp = {2014.01.13}
+}
+

File chapters/chapter1.tex

View file
  • Ignore whitespace
-\part[author={Stéphane GALLAND}]{Overview of the Compilation Theory}
-\label{chap:overview}
+\part[author={Stéphane GALLAND}]{Overview of the Compilation Theory\label{chap:overview}}
+
+\begin{bibunit}[apalike]
 
 \tableofcontentslide
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={show/show/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
 \subsection{Brief history}
+\sidecite{Wexelblat.1981, Bergin.96}
 \begin{frame}{A Brief History of Programming Languages}
 	\begin{description}
 	\item[1940's] machine language, sequences of 0's and 1's.
 \tableofcontentslide[currentsection,currentsubsection]
 
 \subsubsection{Definitions}
+\sidecite{Sethi.1996, Scott.2006}
 \begin{frame}[allowframebreaks]{Definitions}
 	\begin{description}
 	\item[Name] a string of characters that refers to a thing in the program.
 	\end{block}
 \end{frame}
 
+\sidecite{Church.1941, Frege.1967, Wexelblat.1981}
 \begin{frame}{Example of the Scope of the Declarations}
 	\begin{itemize}
 	\item A language uses a static scope if it is possible to determine the scope of a declaration by looking only at the program (C, Java\dots)
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={hide/hide/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
-\begin{frame}[t,allowframebreaks]{Key Concepts in this Chapter}
+\begin{frame}[t,allowframebreaks]{Key Concepts of the Chapter}
 	\begin{description}
 	\item[Language Processors] An integrated software development environment: compilers, interpreters, linkers, loaders, debuggers, profilers.
 	\item[Compiler Phases] Sequence of phases, each of which transforms the source program from one intermediate representation to another.
 	\item[Symbol Table] A data structure that holds information about identifiers.
 	\end{description}
 \end{frame}
+
+\begin{frame}[t,allowframebreaks]{\bibname\ of the Chapter}%
+	\tiny%
+	\putbib[bibliographies/chapter1]%
+\end{frame}%
+
+\end{bibunit}

File chapters/chapter2.tex

View file
  • Ignore whitespace
+\begin{bibunit}[apalike]
+
 \part[author={Stéphane GALLAND}]{Lexical Analysis}
 \label{chap:lexical_analysis}
 
 
 \tableofcontentslide[sections={1-5},sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
+\sidecite{Kleene.1956, Shannon.1956}
 \begin{frame}{Regular Expressions}
 	\begin{itemize}
 	\item \emph{Regular expressions} are commonly used for describing all the languages that can be built from the operators applied to the symbols of some alphabet.
 \tableofcontentslide[sections={1-5},sectionstyle={show/shaded},subsectionstyle={show/show/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
 \subsection{Generators of Lexical Analyser}
+
+\sidecite{Lesk.1975}
 \begin{frame}{Generators of Lexical Analyser}
 	\begin{itemize}
 	\item Several tools allow to generate a lexical analyzer by specifying regular expressions to describe the patterns for the tokens.
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={show/show/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
+\sidecite{Aho.1990, Hopcroft.2006}
 \begin{frame}{Lexical Analyzer by Hand}
 	To go deeper in how a program like Lex turns its input program into a lexical analyzer, the formalism called ``\Emph{finite automata}'' is at the heart of this transition.
 \end{frame}
 
 \subsection{Finite automata}
 
+\sidecite{McCullough.1943}
 \begin{frame}{Finite Automata}
 	\begin{itemize}
 	\item Finite automata are recognizers: they say ``yes'' or ``no'' about each possible input string.
 	\end{itemize}
 \end{frame}
 
+\sidecite{Huffman.1954, Moore.1956, Thompson.1968}
 \begin{frame}[fragile]{Algorithm for Simulating a NFA}
 	\begin{myalgorithm}\smaller
 	\SetKwFunction{epsilonclosure}{\ensuremath{\epsilon}-closure}
 
 \tableofcontentslide[sections={1-5},sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/shaded/hide/hide}]
 
+\sidecite{McNaughton.1960, Aho.1988, Thompson.1968}
 \begin{frame}[allowframebreaks]{Algorithm of McNaughton-Yamada-Thompson}
 	\begin{description}
 	\item[INPUT] A regular expression $r$ over alphabet $S$.
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={hide/hide/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
-\begin{frame}[t,allowframebreaks]{Key Concepts in this Chapter}
+\begin{frame}[t,allowframebreaks]{Key Concepts in the Chapter}
 	\begin{description}\small
 	\item[Tokens] The lexical analyzer scans the source program and produces as output a sequence of tokens, which are normally passed, one at a time to the parser.
 	\item[Lexemes] Each time the lexical analyzer returns a token to the parser, is has an associated lexeme: the sequence of characters that the token represents.
 	\item[Lex] Family of software systems that are able to generate lexical analyzers from input specifications.
 	\end{description}
 \end{frame}
+
+\begin{frame}[t,allowframebreaks]{\bibname\ of the Chapter}%
+	\tiny%
+	\putbib[bibliographies/chapter2]%
+\end{frame}%
+
+\end{bibunit}

File chapters/chapter3.tex

View file
  • Ignore whitespace
+\begin{bibunit}[apalike]
+
 \part[author={Stéphane GALLAND}]{Syntax Analysis}
 \label{chap:syntax_analysis}
 
 
 \subsection{General principles}
 
+\sidecite{Chomsky.1956, Backus.1959, Naur.1963}
 \begin{frame}{Syntax Analyzer or Parser}
 	\begin{itemize}
 	\item This chapter is devoted to the parsing methods that are typically used in compilers.
 	\end{itemize}
 \end{frame}
 
+\sidecite{Younger.1967, Kasami.1965, Earley.1970}
 \begin{frame}[allowframebreaks]{Overview of Syntax Analyzers}
 	\begin{itemize}
 	\item The syntax analyzer, through the parser, generally controls a part of the execution flow of the compiler.
 
 \subsection{Error recovery}
 
+\sidecite{Dain.1991}
 \begin{frame}{Handling of Syntax Errors}
 	\begin{description}
 	\item A compiler is expected to assist the programmer in locating and tracking down errors that inevitably creep into programs.
 
 \subsection{Definition and notation}
 
+\sidecite{Chomsky.1956, Backus.1959, Naur.1963, Ingerman.1967, Hopcroft.2006}
 \begin{frame}[allowframebreaks]{What is a Context-Free Grammar?}
 	\alertbox*{Grammars are systematically used to describe the syntax of programming language constructs.}
 	\begin{itemize}
 
 \tableofcontentslide[sections={1-4},sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/show/hide/hide}]
 
+\sidecite{Cantor.1962, Floyd.1962}
 \begin{frame}{What is an Ambiguous Grammar?}
 	\begin{small}
 	\alertbox*{A grammar that produces more than one parse tree for some sentence is said to be ambiguous.}
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/shaded/hide/hide}]
 
+\sidecite{Hoare.1962, Schorre.1964, McClure.1965}
 \begin{frame}{Recursive-Descent Parsing}
 	\begin{itemize}
 	\item A recursive-descent parsing program consists of a set of procedures, one for each nonterminal.
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/shaded/hide/hide}]
 
+\sidecite{Lewis.1968, Birman.1973}
 \begin{frame}{$LL(1)$ Grammar}
 	\begin{itemize}
 	\item Predictive parsers, that is, recursive-descent parsers needing no backtracking, can be constructed for a class of grammars called $LL(1)$.
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/show/hide/hide}]
 
+\sidecite{Knuth.1965, Korenjak.1969}
 \begin{frame}{Bottom-Up Parsing}
 	\begin{itemize}
 	\item A bottom-up parsing corresponds to the construction of a parse tree for an input string beginning at the leaves (the bottom) and working up towards the root.
 
 \subsubsection{Principles}
 
+\sidecite{DeRemer.1971}
 \begin{frame}{Simple $LR$ Parsing}
 	\begin{itemize}
 	\item This section introduces a simple $LR$ (or $SLR$) parsing based on the concepts previously presented.
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/shaded/hide/hide}]
 
+\sidecite{DeRemer.1969}
 \begin{frame}[allowframebreaks]{$LALR$ Parsing}
 	\begin{itemize}
 	\item The $LALR$ parsing, or LookAhead $LR$ parsing, if often used in practice.
 
 \subsection{Overview}
 
+\sidecite{Johnson.1975}
 \begin{frame}{Parser Generators}
 	\begin{itemize}
 	\item Parser generators such as Yacc and its more recent implementation Bison,  are generally LALR parser generators.
 	\end{lstlisting}
 \end{frame}
 
-\subsubsection{Ambigous grammar}
+\subsubsection{Ambiguous grammar}
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/shaded/hide/hide}]
 
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={hide/hide/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
-\begin{frame}[t,allowframebreaks]{Key Concepts in this Chapter}
+\begin{frame}[t,allowframebreaks]{Key Concepts in the Chapter}
 	\begin{small}
 	\begin{description}
 	\item[Parsers] A parser takes as input tokens from the lexical analyzer and treats the token names as terminal symbols of a context-free grammar. The parser then constructs a parse tree for its input sequence of tokens; the parse tree may be constructed figuratively or literally.
 	\end{description}
 	\end{small}
 \end{frame}
+
+\begin{frame}[t,allowframebreaks]{\bibname\ of the Chapter}%
+	\tiny%
+	\putbib[bibliographies/chapter3]%
+\end{frame}%
+
+\end{bibunit}

File chapters/chapter4.tex

View file
  • Ignore whitespace
-% Force the navigation box to use a Tiny font.
 \setbeamertemplate{headline text style}{\Tiny}%
 
+\begin{bibunit}[apalike]
+
 \part[author={Stéphane GALLAND}]{Intermediate Code Generation}
 \label{chap:intermediate_code_generation}
 
 	\includegraphics[width=\linewidth]{parser_toolchain}
 \end{frame}
 
+\sidecite{Samelson.1960, Brooker.1962}
 \begin{frame}{Syntax-Directed Translation}
 	\begin{itemize}
 	\item A \emph{syntax-directed translation} specifies the values of attributes, attached to the grammar symbols, by associating semantic rules with the grammar productions.
 
 \subsection{Syntax-directed translation}
 
+\sidecite{Paakki.1995}
 \begin{frame}{Syntax-Directed Translation}
 	\begin{definition}
 		Syntax-directed translation is done by attaching rules or program fragments to productions in a grammar.
 	\end{itemize}
 \end{frame}
 
+\sidecite{Knuth.1968}
 \begin{frame}{Inherited Attribute}
 	\begin{definition}
 		An \emph{inherited attribute} for a nonterminal $B$ at a parse-tree node $N$ is defined by a semantic rule associated with the production at the parent of $N$.
 
 \tableofcontentslide[sections={1-4},sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/show/hide/hide}]
 
+\sidecite{Knuth.1968}
 \begin{frame}{Dependency Graph}
 	\begin{definition}
 		A \emph{dependency graph} depicts the flow of information among the attribute instances in a particular parse tree.
 	\putat(80,-210){\includegraphics[width=.5\linewidth]{dependency_graph_example2}}
 \end{frame}
 
+\sidecite{Knuth.1968}
 \begin{frame}{Order of the Attributes}
 	\begin{itemize}
 	\item The dependency graph characterizes the possible orders in which we can evaluate the attributes at the various nodes of a parse tree.
 	\end{itemize}
 \end{frame}
 
+\sidecite{Knuth.1968, Jazayeri.1975}
 \begin{frame}{Problem to Determine the Order of the Attributes}
 	\alertbox{If there is any cycle in the graph, then there are no topological sorts; ie. there is no way to evaluate the SDD on the parse tree.}
 	\vfill
 
 \tableofcontentslide[sections={1-4},sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/show/hide/hide}]
 
+\sidecite{Irons.1961}
 \begin{frame}{S-Attributed Definition}
 	\begin{definition}
 		An S-attributed definition is an SDD in which all the attributes are synthesized.
 
 \tableofcontentslide[sections={1-4},sectionstyle={show/shaded},subsectionstyle={show/shaded/hide},subsubsectionstyle={show/show/hide/hide}]
 
+\sidecite{Lewis.1974}
 \begin{frame}{L-Attributed Definition}
 	\begin{footnotesize}
 	\begin{definition}
-		An S-attributed definition is an SDD in which, between the attributes associated with a production body, dependency-graph edges can go from left to right, but not from right to left.
+		An L-attributed definition is an SDD in which, between the attributes associated with a production body, dependency-graph edges can go from left to right, but not from right to left.
 	\end{definition}
 	Each attribute must be:
 	\begin{itemize}
 
 \tableofcontentslide[sections={1-5},sectionstyle={show/shaded},subsectionstyle={show/show/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
+\sidecite{Strong.1958, Wirth.1971, Johnson.1979, Ritchie.1979}
 \begin{frame}{Level of Intermediate Representation}
 	\alertbox*{The syntax tree is a \Emph{high-level} intermediate representation of the source program.}
 	\vspace{2em}
 	\end{tiny}
 \end{frame}
 
+\sidecite{Strong.1958, Gosling.1995}
 \begin{frame}{What is Three-Address Code?}
 	\begin{itemize}
 	\item In three-address code, there is at most one operator on the right side of an instruction.
 
 \subsubsection{Introduction}
 
+\sidecite{Pierce.2002, Milner.1978}
 \begin{frame}[allowframebreaks]{Type Checking}
 	\alertbox{The compiler must determine if the types of the variables are consistent according to a collection of logical rules that is called the type system.}
 	\vspace{1em}
 
 \tableofcontentslide[sectionstyle={show/shaded},subsectionstyle={hide/hide/hide},subsubsectionstyle={hide/hide/hide/hide}]
 
-\begin{frame}[t,allowframebreaks]{Key Concepts in this Chapter}
+\begin{frame}[t,allowframebreaks]{Key Concepts in the Chapter}
 	\begin{description}
 	\item[Inherited and synthesized attributes] Syntax-directed definitions may use two kinds of attributes. A synthesized attribute at a parse-tree node is computed from attributes at its children. An inherited attribute at a node is computed from attributes at its parent and/or siblings.
 	\item[Dependency graphs] Given a parse tree and an SDD, we draw edges among the attribute instances associated with each parse-tree node to denote that the value of the attribute at the head of the edge is computed in terms of the value of the attribute at the tail of the edge.
 	\end{description}
 \end{frame}
 
+\begin{frame}[t,allowframebreaks]{\bibname\ of the Chapter}%
+	\tiny%
+	\putbib[bibliographies/chapter4]%
+\end{frame}%
+
+\end{bibunit}
+
 % Reset the style of the navigation box
 \setbeamertemplate{headline text style}{}
+