Bläddra i källkod

Merge branch 'IUCompilerCourse:master' into master

Programming Languages Uni Freiburg 3 år sedan
förälder
incheckning
12a58a9d36
4 ändrade filer med 289 tillägg och 185 borttagningar
  1. 1 1
      TimesAPriori_MIT.cls
  2. 49 0
      book.bib
  3. 227 174
      book.tex
  4. 12 10
      defs.tex

+ 1 - 1
TimesAPriori_MIT.cls

@@ -1729,7 +1729,7 @@ Chapter \arabic{chapter}}%
 \let\subparagraph\appsubparagraph%
 \let\subparagraph\appsubparagraph%
 %        \appendtrue
 %        \appendtrue
 \def\chaptername{Appendix}%
 \def\chaptername{Appendix}%
-\footnotesize%
+%\footnotesize%
 }
 }
 
 
 
 

+ 49 - 0
book.bib

@@ -1,3 +1,52 @@
+
+@book{Pierce:2004fk,
+	editor = {Benjamin C. Pierce},
+	publisher = {The MIT press},
+	title = {Advanced Topics in Types and Programming Languages},
+	year = {2004}}
+
+@book{Pierce:SF2,
+  author = {Benjamin C. Pierce and Arthur Azevedo de Amorim
+                  and Chris Casinghino and Marco Gaboardi and
+                  Michael Greenberg and C\v{a}t\v{a}lin Hri\c{t}cu
+                  and Vilhelm Sj\"{o}berg and Andrew Tolmach
+                  and Brent Yorgey},
+  title = {Programming Language Foundations},
+  series = {Software Foundations series, volume 2},
+  month = may,
+  year = {2018},
+  publisher = {Electronic textbook},
+  plclub = {Yes},
+  bcp = {Yes},
+  keys = {verification,books}
+}
+
+@Book{Harper2016,
+  author = 	 {Robert Harper},
+  title = 	 {Practical Foundations for Programming Languages},
+  publisher = 	 {Cambridge University Press},
+  year = 	 2016,
+  edition = 	 {2nd}}
+
+@Article{Appel90,
+  author = 	 {Appel, Andrew W.},
+  title = 	 {A runtime system},
+  journal = 	 {{LISP} and Symbolic Computation},
+  year = 	 1990,
+  volume = 	 3,
+  number = 	 4,
+  pages = 	 {343--380},
+  month = 	 {November}}
+
+@book{Appel91,
+  place={Cambridge},
+  title={Compiling with Continuations},
+  DOI={10.1017/CBO9780511609619},
+  publisher={Cambridge University Press},
+  author={Appel, Andrew W.},
+  year={1991}
+}
+
 @inproceedings{Dieckmann99,
 @inproceedings{Dieckmann99,
   author    = {Sylvia Dieckmann and Urs H{\"{o}}lzle},
   author    = {Sylvia Dieckmann and Urs H{\"{o}}lzle},
   editor    = {Rachid Guerraoui},
   editor    = {Rachid Guerraoui},

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 227 - 174
book.tex


+ 12 - 10
defs.tex

@@ -64,12 +64,12 @@
 \newcommand{\LangCLoop}{$\CLang_{\circlearrowleft}$} %C7
 \newcommand{\LangCLoop}{$\CLang_{\circlearrowleft}$} %C7
 \newcommand{\LangCLoopM}{\CLang_{\circlearrowleft}} %C7
 \newcommand{\LangCLoopM}{\CLang_{\circlearrowleft}} %C7
 \newcommand{\LangLoopANF}{\ensuremath{\Lang^{\RCO}_{\mathsf{While}}}} %R8
 \newcommand{\LangLoopANF}{\ensuremath{\Lang^{\RCO}_{\mathsf{While}}}} %R8
-\newcommand{\LangArray}{\ensuremath{\Lang^{\mathsf{Vecof}}_{\mathsf{While}}}} %\Lang^s3
+\newcommand{\LangArray}{\ensuremath{\Lang^{\mathsf{Array}}_{\mathsf{While}}}} %\Lang^s3
 \newcommand{\LangGrad}{$\Lang_{\mathsf{?}}$} %R9
 \newcommand{\LangGrad}{$\Lang_{\mathsf{?}}$} %R9
 \newcommand{\LangGradM}{\Lang_{\mathsf{?}}} %R9
 \newcommand{\LangGradM}{\Lang_{\mathsf{?}}} %R9
-\newcommand{\LangCast}{$\Lang_{\mathsf{cast}}$} %R9'
-\newcommand{\LangCastM}{\Lang_{\mathsf{cast}}} %R9'
-\newcommand{\LangProxy}{\ensuremath{\Lang_{\mathsf{proxy}}}} %R8''
+\newcommand{\LangCast}{$\Lang_{\mathsf{Cast}}$} %R9'
+\newcommand{\LangCastM}{\Lang_{\mathsf{Cast}}} %R9'
+\newcommand{\LangProxy}{\ensuremath{\Lang_{\mathsf{Proxy}}}} %R8''
 \newcommand{\LangPVec}{\ensuremath{\Lang_{\mathsf{PVec}}}} %R8''
 \newcommand{\LangPVec}{\ensuremath{\Lang_{\mathsf{PVec}}}} %R8''
 \newcommand{\LangPVecFunRef}{\ensuremath{\Lang^{\mathsf{FunRef}}_{\mathsf{PVec}}}} %R8''
 \newcommand{\LangPVecFunRef}{\ensuremath{\Lang^{\mathsf{FunRef}}_{\mathsf{PVec}}}} %R8''
 \newcommand{\LangPVecAlloc}{\ensuremath{\Lang^{\mathsf{Alloc}}_{\mathsf{PVec}}}} %R8''
 \newcommand{\LangPVecAlloc}{\ensuremath{\Lang^{\mathsf{Alloc}}_{\mathsf{PVec}}}} %R8''
@@ -122,9 +122,10 @@
 \newcommand{\LC}{\key{\{}}
 \newcommand{\LC}{\key{\{}}
 \newcommand{\RC}{\key{\}}}
 \newcommand{\RC}{\key{\}}}
 
 
-\newcommand{\MID}{\;\;\mid\;\;}
+\newcommand{\MID}{\;\mid\;}
 
 
 \if\edition\racketEd
 \if\edition\racketEd
+\newcommand{\QUOTE}[1]{\code{'}#1}
 \newcommand{\INT}[1]{{\key{(Int}~#1\key{)}}}
 \newcommand{\INT}[1]{{\key{(Int}~#1\key{)}}}
 \newcommand{\READOP}{{\key{read}}}
 \newcommand{\READOP}{{\key{read}}}
 \newcommand{\READ}{{\key{(Prim}~\code{'read}~\key{())}}}
 \newcommand{\READ}{{\key{(Prim}~\code{'read}~\key{())}}}
@@ -147,13 +148,13 @@
 \newcommand{\CIF}[3]{\LP\key{if}~#1~#2~#3\RP}
 \newcommand{\CIF}[3]{\LP\key{if}~#1~#2~#3\RP}
 \newcommand{\AND}[2]{\key{(Prim}~\code{'and}~\code{(}#1~#2\code{))}}
 \newcommand{\AND}[2]{\key{(Prim}~\code{'and}~\code{(}#1~#2\code{))}}
 \newcommand{\OR}[2]{\key{(Prim}~\code{'or}~\code{(}#1~#2\code{))}}
 \newcommand{\OR}[2]{\key{(Prim}~\code{'or}~\code{(}#1~#2\code{))}}
-\newcommand{\CAND}[2]{\CBINOP{\key{'and}}{#1}{#2}}
-\newcommand{\COR}[2]{\CBINOP{\key{'or}}{#1}{#2}}
+\newcommand{\CAND}[2]{\CBINOP{\key{and}}{#1}{#2}}
+\newcommand{\COR}[2]{\CBINOP{\key{or}}{#1}{#2}}
 \newcommand{\INTTY}{{\key{Integer}}}
 \newcommand{\INTTY}{{\key{Integer}}}
 \newcommand{\INTTYPE}{{\key{Integer}}}
 \newcommand{\INTTYPE}{{\key{Integer}}}
 \newcommand{\BOOLTY}{{\key{Boolean}}}
 \newcommand{\BOOLTY}{{\key{Boolean}}}
-\newcommand{\VECTY}[1]{{\LP\key{Vector}#1\RP}}
-\newcommand{\ANYTY}{{\key{any}}}
+\newcommand{\VECTY}[1]{{\LP\key{Vector}~#1\RP}}
+\newcommand{\ANYTY}{{\key{Any}}}
 \newcommand{\CPROGRAM}[2]{\LP\code{CProgram}~#1~#2\RP}
 \newcommand{\CPROGRAM}[2]{\LP\code{CProgram}~#1~#2\RP}
 \newcommand{\CPROGRAMDEFS}[2]{\LP\code{CProgramDefs}~#1~#2\RP}
 \newcommand{\CPROGRAMDEFS}[2]{\LP\code{CProgramDefs}~#1~#2\RP}
 \newcommand{\LET}[3]{\key{(Let}~#1~#2~#3\key{)}}
 \newcommand{\LET}[3]{\key{(Let}~#1~#2~#3\key{)}}
@@ -174,6 +175,7 @@
 %% Use BEGIN instead of LET -Jeremy
 %% Use BEGIN instead of LET -Jeremy
 %% \newcommand{\LET}[3]{\key{Let}\LP #1 \key{,} #2 \key{,} #3 \RP}
 %% \newcommand{\LET}[3]{\key{Let}\LP #1 \key{,} #2 \key{,} #3 \RP}
 %% \newcommand{\CLET}[3]{\key{let}~#1~\key{=}~#2~\key{in}~#3}
 %% \newcommand{\CLET}[3]{\key{let}~#1~\key{=}~#2~\key{in}~#3}
+\newcommand{\QUOTE}[1]{\code{'}#1\code{'}}
 \newcommand{\INT}[1]{{\key{Constant}\LP#1\RP}}
 \newcommand{\INT}[1]{{\key{Constant}\LP#1\RP}}
 \newcommand{\READOP}{{\key{input\_int}}}
 \newcommand{\READOP}{{\key{input\_int}}}
 \newcommand{\READ}{{\key{Call(Name('input\_int'),[])}}}
 \newcommand{\READ}{{\key{Call(Name('input\_int'),[])}}}
@@ -243,7 +245,7 @@
 \newcommand{\CBEGIN}[2]{\LP\key{begin}~#1~#2\RP}
 \newcommand{\CBEGIN}[2]{\LP\key{begin}~#1~#2\RP}
 \newcommand{\CNEG}[1]{\LP\key{-}~#1\RP}
 \newcommand{\CNEG}[1]{\LP\key{-}~#1\RP}
 \newcommand{\CNOT}[1]{\LP\key{not}~#1\RP}
 \newcommand{\CNOT}[1]{\LP\key{not}~#1\RP}
-\newcommand{\CALL}[2]{\key{Call}\LP #1\code{, } #2 \RP}
+\newcommand{\CALL}[2]{\LP\key{Call}~#1~#2\RP}
 \newcommand{\APPLY}[2]{\LP\key{Apply}~#1~#2\RP}
 \newcommand{\APPLY}[2]{\LP\key{Apply}~#1~#2\RP}
 \newcommand{\CAPPLY}[2]{\LP#1~#2\RP}
 \newcommand{\CAPPLY}[2]{\LP#1~#2\RP}
 \newcommand{\FUNREF}[2]{\LP\key{FunRef}~#1~#2\RP}
 \newcommand{\FUNREF}[2]{\LP\key{FunRef}~#1~#2\RP}

Vissa filer visades inte eftersom för många filer har ändrats