Jeremy G. Siek 2 years ago
parent
commit
0af1cb1d59
3 changed files with 26 additions and 127 deletions
  1. 1 1
      TimesAPriori_MIT.cls
  2. 17 17
      book.bib
  3. 8 109
      book.tex

+ 1 - 1
TimesAPriori_MIT.cls

@@ -583,7 +583,7 @@ ItalicFont=SyntaxLTStd-Italic,
   \pagenumbering{arabic}}
   \pagenumbering{arabic}}
 
 
 \newcommand\backmatter{%
 \newcommand\backmatter{%
-  \clearpage
+  \clearpage\thispagestyle{plain}
   \@mainmatterfalse}
   \@mainmatterfalse}
 
 
 \def\part{\clearpage\thispagestyle{empty}\global\@topnum\z@
 \def\part{\clearpage\thispagestyle{empty}\global\@topnum\z@

+ 17 - 17
book.bib

@@ -167,7 +167,7 @@ numpages = {18}
 	booktitle = {Compiler Construction: Proceedings of the 12th
 	booktitle = {Compiler Construction: Proceedings of the 12th
                   International Conference, CC '03, Held as Part of
                   International Conference, CC '03, Held as Part of
                   the Joint European Conferences on Theory and
                   the Joint European Conferences on Theory and
-                  Practice of Software, ETAPS '03, \normalfont{Lecture Notes in
+                  Practice of Software, ETAPS '03. \normalfont{Lecture Notes in
                   Computer Science 2622}},
                   Computer Science 2622}},
 	pages = {77--89},
 	pages = {77--89},
 	title = {A New One-Pass Transformation into Monadic Normal Form},
 	title = {A New One-Pass Transformation into Monadic Normal Form},
@@ -565,7 +565,7 @@ edition = {2}
 
 
 @inproceedings{Cooper:1998ly,
 @inproceedings{Cooper:1998ly,
   author =        {Keith D. Cooper and L. Taylor Simpson},
   author =        {Keith D. Cooper and L. Taylor Simpson},
-  booktitle =     {Compiler Construction: Proceedings of the 7th International Conference, CC '98, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS '98, \normalfont{Lecture Notes in Computer Science 1383}},
+  booktitle =     {Compiler Construction: Proceedings of the 7th International Conference, CC '98, Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS '98. \normalfont{Lecture Notes in Computer Science 1383}},
   publisher =     {Springer},
   publisher =     {Springer},
   title =         {Live {Range} {Splitting} in a {Graph} {Coloring} {Register}
   title =         {Live {Range} {Splitting} in a {Graph} {Coloring} {Register}
                    {Allocator}},
                    {Allocator}},
@@ -653,7 +653,7 @@ edition = {2}
   author =        {Detlefs, David and Flood, Christine and Heller, Steve and
   author =        {Detlefs, David and Flood, Christine and Heller, Steve and
                    Printezis, Tony},
                    Printezis, Tony},
   booktitle =     {Proceedings of the 4th International Symposium on
   booktitle =     {Proceedings of the 4th International Symposium on
-                   Memory Management, ISMM 2004},
+                   Memory Management, ISMM '04},
   pages =         {37--48},
   pages =         {37--48},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Garbage-{F}irst {Garbage} {Collection}},
   title =         {Garbage-{F}irst {Garbage} {Collection}},
@@ -663,7 +663,7 @@ edition = {2}
 @inproceedings{Tene:2011kx,
 @inproceedings{Tene:2011kx,
   author =        {Tene, Gil and Iyengar, Balaji and Wolf, Michael},
   author =        {Tene, Gil and Iyengar, Balaji and Wolf, Michael},
   booktitle =     {Proceedings of the International Symposium on Memory
   booktitle =     {Proceedings of the International Symposium on Memory
-                   Management, ISMM 2011},
+                   Management, ISMM '11},
   pages =         {79--88},
   pages =         {79--88},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {C4: The {C}ontinuously {C}oncurrent {C}ompacting
   title =         {C4: The {C}ontinuously {C}oncurrent {C}ompacting
@@ -677,7 +677,7 @@ edition = {2}
   editor =        {Bekkers, Yves and Cohen, Jacques},
   editor =        {Bekkers, Yves and Cohen, Jacques},
   pages =         {1--42},
   pages =         {1--42},
   publisher =     {Springer},
   publisher =     {Springer},
-  title =         {Uniprocessor Garbage Collection Techniques,
+  title =         {Uniprocessor Garbage Collection Techniques.
                   \normalfont{Lecture Notes in Computer Science 637}},
                   \normalfont{Lecture Notes in Computer Science 637}},
   year =          {1992}
   year =          {1992}
 }
 }
@@ -749,7 +749,7 @@ edition = {2}
 @inproceedings{Cutler:2015aa,
 @inproceedings{Cutler:2015aa,
   author =        {Cutler, Cody and Morris, Robert},
   author =        {Cutler, Cody and Morris, Robert},
   booktitle =     {Proceedings of the 2015 International Symposium on
   booktitle =     {Proceedings of the 2015 International Symposium on
-                   Memory Management, ISMM 2015},
+                   Memory Management, ISMM '15},
   pages =         {131--142},
   pages =         {131--142},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Reducing Pause Times with Clustered Collection},
   title =         {Reducing Pause Times with Clustered Collection},
@@ -761,7 +761,7 @@ edition = {2}
                    Scheid, Paul T. and Cytron, Ron K. and
                    Scheid, Paul T. and Cytron, Ron K. and
                    Kavi, Krishna M.},
                    Kavi, Krishna M.},
   booktitle =     {Proceedings of the 2015 International Symposium on
   booktitle =     {Proceedings of the 2015 International Symposium on
-                   Memory Management, ISMM 2015},
+                   Memory Management, ISMM '15},
   pages =         {118--130},
   pages =         {118--130},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Recycling Trash in Cache},
   title =         {Recycling Trash in Cache},
@@ -771,7 +771,7 @@ edition = {2}
 @inproceedings{Osterlund:2016aa,
 @inproceedings{Osterlund:2016aa,
   author =        {\"{O}sterlund, Erik and L\"{o}we, Welf},
   author =        {\"{O}sterlund, Erik and L\"{o}we, Welf},
   booktitle =     {Proceedings of the 2016 ACM SIGPLAN International
   booktitle =     {Proceedings of the 2016 ACM SIGPLAN International
-                   Symposium on Memory Management, ISMM 2016},
+                   Symposium on Memory Management, ISMM '16},
   pages =         {1--12},
   pages =         {1--12},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Block-Free Concurrent GC: Stack Scanning and Copying},
   title =         {Block-Free Concurrent GC: Stack Scanning and Copying},
@@ -781,7 +781,7 @@ edition = {2}
 @inproceedings{Jacek:2019aa,
 @inproceedings{Jacek:2019aa,
   author =        {Jacek, Nicholas and Moss, J. Eliot B.},
   author =        {Jacek, Nicholas and Moss, J. Eliot B.},
   booktitle =     {Proceedings of the 2019 ACM SIGPLAN International
   booktitle =     {Proceedings of the 2019 ACM SIGPLAN International
-                   Symposium on Memory Management, ISMM 2019},
+                   Symposium on Memory Management, ISMM '19},
   pages =         {53--63},
   pages =         {53--63},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Learning When to Garbage Collect with Random Forests},
   title =         {Learning When to Garbage Collect with Random Forests},
@@ -791,7 +791,7 @@ edition = {2}
 @inproceedings{Gamari:2020aa,
 @inproceedings{Gamari:2020aa,
   author =        {Gamari, Ben and Dietz, Laura},
   author =        {Gamari, Ben and Dietz, Laura},
   booktitle =     {Proceedings of the 2020 ACM SIGPLAN International
   booktitle =     {Proceedings of the 2020 ACM SIGPLAN International
-                   Symposium on Memory Management, ISMM 2020},
+                   Symposium on Memory Management, ISMM '20},
   pages =         {87--99},
   pages =         {87--99},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Alligator Collector: A Latency-Optimized Garbage
   title =         {Alligator Collector: A Latency-Optimized Garbage
@@ -868,14 +868,14 @@ edition = {2}
   booktitle =     {Proceedings of Compiler Construction: 10th
   booktitle =     {Proceedings of Compiler Construction: 10th
                   International Conference, CC 2001, Held as Part of
                   International Conference, CC 2001, Held as Part of
                   the Joint European Conferences on Theory and
                   the Joint European Conferences on Theory and
-                  Practice of Software, ETAPS 2001},
+                  Practice of Software, ETAPS '01},
   year =          {2001}
   year =          {2001}
 }
 }
 
 
 @inproceedings{Henderson:2002aa,
 @inproceedings{Henderson:2002aa,
   author =        {Henderson, Fergus},
   author =        {Henderson, Fergus},
   booktitle =     {Proceedings of the 3rd International Symposium on
   booktitle =     {Proceedings of the 3rd International Symposium on
-                   Memory Management, ISMM 2002},
+                   Memory Management, ISMM '02},
   pages =         {150--156},
   pages =         {150--156},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Accurate Garbage Collection in an Uncooperative
   title =         {Accurate Garbage Collection in an Uncooperative
@@ -986,7 +986,7 @@ edition = {2}
   booktitle =     {ACM Symposium on LISP and Functional Programming, LFP '84},
   booktitle =     {ACM Symposium on LISP and Functional Programming, LFP '84},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Compiling a Functional Language},
   title =         {Compiling a Functional Language},
-  pages =         {208--21},
+  pages =         {208--221},
   year =          {1984}
   year =          {1984}
 }
 }
 
 
@@ -1083,7 +1083,7 @@ edition = {2}
 
 
 @article{Anderson:2002kd,
 @article{Anderson:2002kd,
   author =        {Christopher Anderson and Sophia Drossopoulou},
   author =        {Christopher Anderson and Sophia Drossopoulou},
-  booktitle =     {Electron. Notes Theor. Comput. Sci.},
+  journal =     {Electron. Notes Theor. Comput. Sci.},
   number =        {8},
   number =        {8},
   publisher =     {Elsevier},
   publisher =     {Elsevier},
   title =         {{BabyJ}: From Object Based to Class Based
   title =         {{BabyJ}: From Object Based to Class Based
@@ -1105,9 +1105,9 @@ edition = {2}
 @inproceedings{Wadler:2009qv,
 @inproceedings{Wadler:2009qv,
   author =        {Philip Wadler and Robert Bruce Findler},
   author =        {Philip Wadler and Robert Bruce Findler},
   booktitle =     {Proceedings of Programming Languages and Systems, 31st European
   booktitle =     {Proceedings of Programming Languages and Systems, 31st European
-                  Symposium on Programming, ESOP 2009, Held as Part of
+                  Symposium on Programming, ESOP '09, Held as Part of
                   the Joint European Conferences on Theory and
                   the Joint European Conferences on Theory and
-                  Practice of Software, ETAPS 2009},
+                  Practice of Software, ETAPS '09},
   editor =        {Giuseppe Castagna},
   editor =        {Giuseppe Castagna},
   publisher =     {Springer},
   publisher =     {Springer},
   pages =         {1--16},
   pages =         {1--16},
@@ -1191,7 +1191,7 @@ edition = {2}
 
 
 @inproceedings{Weeks:2006aa,
 @inproceedings{Weeks:2006aa,
   author =        {Weeks, Stephen},
   author =        {Weeks, Stephen},
-  booktitle =     {Proceedings of the 2006 Workshop on ML, ML '06},
+  booktitle =     {Proceedings of the 2006 Workshop on ML '06},
   pages =         {1},
   pages =         {1},
   publisher =     {Association for Computing Machinery},
   publisher =     {Association for Computing Machinery},
   title =         {Whole-Program Compilation in MLton},
   title =         {Whole-Program Compilation in MLton},

+ 8 - 109
book.tex

@@ -2117,7 +2117,7 @@ def InterpLvar(InterpLint):
 \end{minipage}
 \end{minipage}
 \fi}
 \fi}
 \end{center}
 \end{center}
-Getting back to the troublesome example, repeated here
+Getting back to the troublesome example, repeated here:
 {\if\edition\racketEd  
 {\if\edition\racketEd  
 \begin{lstlisting}
 \begin{lstlisting}
 (Let 'y (Int 10) (Prim '- (Var 'y)))
 (Let 'y (Int 10) (Prim '- (Var 'y)))
@@ -5161,7 +5161,7 @@ We refer to these six registers are the argument-passing registers
 \index{subject}{argument-passing registers}.
 \index{subject}{argument-passing registers}.
 If there are more than six arguments, the convention is to use space
 If there are more than six arguments, the convention is to use space
 on the frame of the caller for the rest of the arguments. In
 on the frame of the caller for the rest of the arguments. In
-chapter~\ref{ch:Lfun} we instead pass a tuple containing the sixth
+chapter~\ref{ch:Lfun}, we instead pass a tuple containing the sixth
 argument and the rest of the arguments, which simplifies the treatment
 argument and the rest of the arguments, which simplifies the treatment
 of efficient tail calls.
 of efficient tail calls.
 %
 %
@@ -5392,11 +5392,11 @@ locations before instruction $I_k$.  \racket{We recommend representing
 \fi}
 \fi}
 
 
 The locations that are live after an instruction are its
 The locations that are live after an instruction are its
-\emph{live-after}\index{subject}{live-after} set and the the locations
+\emph{live-after}\index{subject}{live-after} set, and the locations
 that are live before an instruction are its
 that are live before an instruction are its
-\emph{live-before}\index{subject}{live-before} set.  The live-after
+\emph{live-before}\index{subject}{live-before} set. The live-after
 set of an instruction is always the same as the live-before set of the
 set of an instruction is always the same as the live-before set of the
-next instruction.  .
+next instruction.
 \begin{equation} \label{eq:live-after-before-next}
 \begin{equation} \label{eq:live-after-before-next}
   L_{\mathsf{after}}(k) = L_{\mathsf{before}}(k+1)
   L_{\mathsf{after}}(k) = L_{\mathsf{before}}(k+1)
 \end{equation}
 \end{equation}
@@ -23400,115 +23400,14 @@ registers.
   \label{tab:x86-instr}
   \label{tab:x86-instr}
 \end{table}
 \end{table}
 
 
-%% \if\edition\racketEd
-%% \cleardoublepage
-%% \section{Concrete Syntax for Intermediate Languages}
-
-%% The concrete syntax of \LangAny{} is defined in
-%% figure~\ref{fig:Lany-concrete-syntax}.
-
-%% \begin{figure}[tp]
-%% \centering
-%% \fbox{
-%% \begin{minipage}{0.97\textwidth}\small
-%% \[
-%% \begin{array}{lcl}
-%%   \Type &::=& \gray{\key{Integer} \MID \key{Boolean}
-%%      \MID \LP\key{Vector}\;\Type\ldots\RP \MID \key{Void}} \\
-%%     &\MID& \gray{\LP\Type\ldots \; \key{->}\; \Type\RP} \MID \ANYTY{} \\
-%% \FType &::=& \key{Integer} \MID \key{Boolean} \MID \key{Void} 
-%%       \MID \LP\key{Vector}\; \ANYTY{}\ldots\RP \\
-%%      &\MID& \LP\ANYTY{}\ldots \; \key{->}\; \ANYTY{}\RP\\
-%% \Exp &::=& \ldots \CINJECT{\Exp}{\FType}\RP \MID \CPROJECT{\Exp}{\FType}\\
-%%   &\MID& \LP\key{any-vector-length}\;\Exp\RP
-%%    \MID \LP\key{any-vector-ref}\;\Exp\;\Exp\RP \\
-%%   &\MID& \LP\key{any-vector-set!}\;\Exp\;\Exp\;\Exp\RP\\
-%%   &\MID& \LP\key{boolean?}\;\Exp\RP \MID \LP\key{integer?}\;\Exp\RP
-%%    \MID \LP\key{void?}\;\Exp\RP \\
-%%   &\MID& \LP\key{vector?}\;\Exp\RP \MID \LP\key{procedure?}\;\Exp\RP \\
-%%   \Def &::=& \gray{ \CDEF{\Var}{\LS\Var \key{:} \Type\RS\ldots}{\Type}{\Exp} } \\
-%%   \LangAnyM{} &::=& \gray{\Def\ldots \; \Exp}
-%% \end{array}
-%% \]
-%% \end{minipage}
-%% }
-%% \caption{The concrete syntax of \LangAny{}, extending \LangLam{}
-%%   (figure~\ref{fig:Llam-syntax}).}
-%% \label{fig:Lany-concrete-syntax}
-%% \end{figure}
-
-%% The concrete syntax for \LangCVar{}, \LangCIf{}, \LangCVec{} and
-%% \LangCFun{} is defined in figures~\ref{fig:c0-concrete-syntax},
-%% \ref{fig:c1-concrete-syntax}, \ref{fig:c2-concrete-syntax}, and
-%% \ref{fig:c3-concrete-syntax}, respectively.
-
-
-%% \begin{figure}[tbp]
-%% \fbox{
-%% \begin{minipage}{0.96\textwidth}
-%% \small    
-%% \[
-%% \begin{array}{lcl}
-%% \Atm &::=& \gray{ \Int \MID \Var \MID \itm{bool} } \\
-%% \itm{cmp} &::= & \gray{ \key{eq?} \MID \key{<} } \\
-%% \Exp &::=& \gray{ \Atm \MID \key{(read)} \MID \key{(-}~\Atm\key{)} \MID \key{(+}~\Atm~\Atm\key{)} } \\
-%%   &\MID& \gray{ \LP \key{not}~\Atm \RP \MID \LP \itm{cmp}~\Atm~\Atm\RP } \\
-%% &\MID& \LP \key{allocate}~\Int~\Type \RP \\
-%%   &\MID& (\key{vector-ref}\;\Atm\;\Int) \MID (\key{vector-set!}\;\Atm\;\Int\;\Atm)\\
-%%   &\MID& \LP \key{global-value}~\Var \RP \MID \LP \key{void} \RP \\
-%% \Stmt &::=& \gray{ \Var~\key{=}~\Exp\key{;} } \MID \LP\key{collect}~\Int \RP\\
-%% \Tail &::= & \gray{ \key{return}~\Exp\key{;} \MID \Stmt~\Tail } 
-%%    \MID \gray{ \key{goto}~\itm{label}\key{;} }\\
-%%    &\MID& \gray{ \key{if}~\LP \itm{cmp}~\Atm~\Atm \RP~ \key{goto}~\itm{label}\key{;} ~\key{else}~\key{goto}~\itm{label}\key{;} } \\
-%% \LangCVecM{} & ::= & \gray{ (\itm{label}\key{:}~ \Tail)\ldots }
-%% \end{array}
-%% \]
-%% \end{minipage}
-%% }
-%% \caption{The concrete syntax of the \LangCVec{} intermediate language.}
-%% \label{fig:c2-concrete-syntax}
-%% \end{figure}
-
-%% \begin{figure}[tp]
-%% \fbox{
-%% \begin{minipage}{0.96\textwidth}
-%% \small
-%% \[
-%% \begin{array}{lcl}
-%% \Atm &::=& \gray{ \Int \MID \Var \MID \key{\#t} \MID \key{\#f} }
-%%   \\
-%% \itm{cmp} &::= & \gray{  \key{eq?} \MID \key{<} } \\
-%% \Exp &::= & \gray{ \Atm \MID \LP\key{read}\RP \MID \LP\key{-}\;\Atm\RP \MID \LP\key{+} \; \Atm\;\Atm\RP
-%%       \MID \LP\key{not}\;\Atm\RP \MID \LP\itm{cmp}\;\Atm\;\Atm\RP  } \\
-%%    &\MID& \gray{  \LP\key{allocate}\,\Int\,\Type\RP
-%%    \MID \LP\key{vector-ref}\, \Atm\, \Int\RP  } \\
-%%    &\MID& \gray{  \LP\key{vector-set!}\,\Atm\,\Int\,\Atm\RP \MID \LP\key{global-value} \,\itm{name}\RP \MID \LP\key{void}\RP } \\
-%%    &\MID& \LP\key{fun-ref}~\itm{label}~\Int\RP \MID \LP\key{call} \,\Atm\,\Atm\ldots\RP \\
-%% \Stmt &::=& \gray{ \ASSIGN{\Var}{\Exp} \MID \RETURN{\Exp} 
-%%        \MID \LP\key{collect} \,\itm{int}\RP }\\
-%% \Tail &::= & \gray{\RETURN{\Exp} \MID \LP\key{seq}\;\Stmt\;\Tail\RP} \\
-%%       &\MID& \gray{\LP\key{goto}\,\itm{label}\RP
-%%        \MID \IF{\LP\itm{cmp}\, \Atm\,\Atm\RP}{\LP\key{goto}\,\itm{label}\RP}{\LP\key{goto}\,\itm{label}\RP}} \\
-%%       &\MID& \LP\key{tail-call}\,\Atm\,\Atm\ldots\RP \\
-%%   \Def &::=& \LP\key{define}\; \LP\itm{label} \; [\Var \key{:} \Type]\ldots\RP \key{:} \Type \; \LP\LP\itm{label}\,\key{.}\,\Tail\RP\ldots\RP\RP \\
-%% \LangCFunM{} & ::= & \Def\ldots
-%% \end{array}
-%% \]
-%% \end{minipage}
-%% }
-%% \caption{The \LangCFun{} language, extending \LangCVec{} (figure~\ref{fig:c2-concrete-syntax}) with functions.}
-%% \label{fig:c3-concrete-syntax}
-%% \end{figure}
-
-%% \fi % racketEd
 
 
 \backmatter
 \backmatter
 \addtocontents{toc}{\vspace{11pt}}
 \addtocontents{toc}{\vspace{11pt}}
 
 
-%% \addtocontents{toc}{\vspace{11pt}}
-
-%% \nocite{*} is a way to get all the entries in the .bib file to print in the bibliography:
 \cleardoublepage % needed for right page number in TOC for References
 \cleardoublepage % needed for right page number in TOC for References
+
+%% \nocite{*} is a way to get all the entries in the .bib file to
+%% print in the bibliography:
 \nocite{*}\let\bibname\refname
 \nocite{*}\let\bibname\refname
 \addcontentsline{toc}{fmbm}{\refname}
 \addcontentsline{toc}{fmbm}{\refname}
 \printbibliography
 \printbibliography