Jelajahi Sumber

progress on chapter 2 python

Jeremy Siek 3 tahun lalu
induk
melakukan
4be49dff54
2 mengubah file dengan 388 tambahan dan 260 penghapusan
  1. 348 244
      book.tex
  2. 40 16
      defs.tex

File diff ditekan karena terlalu besar
+ 348 - 244
book.tex


+ 40 - 16
defs.tex

@@ -9,6 +9,9 @@
 \newcommand{\LangVar}{$R_{\mathsf{Var}}$} % R1
 \newcommand{\LangVarM}{R_{\mathsf{Var}}}
 
+\newcommand{\LangVarANF}{\ensuremath{R^{\mathsf{ANF}}_{\mathsf{Var}}}}
+\newcommand{\LangVarANFM}{R^{\mathsf{ANF}}_{\mathsf{Var}}}
+
 \newcommand{\LangIf}{$R_{\mathsf{If}}$} %R2
 \fi
 
@@ -18,14 +21,15 @@
 \newcommand{\LangVar}{$P_{\mathsf{Var}}$} % R1
 \newcommand{\LangVarM}{P_{\mathsf{Var}}}
 
+\newcommand{\LangVarANF}{\ensuremath{P^{\mathsf{ANF}}_{\mathsf{Var}}}}
+\newcommand{\LangVarANFM}{P^{\mathsf{ANF}}_{\mathsf{Var}}}
+
 \newcommand{\LangIf}{$P_{\mathsf{If}}$} %R2
 \fi
 
 
 \newcommand{\LangCVar}{$C_{\mathsf{Var}}$} % C0
 \newcommand{\LangCVarM}{C_{\mathsf{Var}}} % C0
-\newcommand{\LangVarANF}{\ensuremath{R^{\mathsf{ANF}}_{\mathsf{Var}}}}
-\newcommand{\LangVarANFM}{R^{\mathsf{ANF}}_{\mathsf{Var}}}
 \newcommand{\LangIfM}{\ensuremath{R_{\mathsf{If}}}} %R2
 \newcommand{\LangCIf}{$C_{\mathsf{If}}$} %C1
 \newcommand{\LangCIfM}{\ensuremath{C_{\mathsf{If}}}} %C1
@@ -79,7 +83,7 @@
 \newcommand{\LangInst}{\ensuremath{R_{\mathsf{Inst}}}} %R'10
 \newcommand{\LangCLoopPVec}{\ensuremath{C^{\mathsf{PVec}}_{\circlearrowleft}}} %Cp7
 
-\newcommand{\LangXVar}{\ensuremath{\mathrm{x86}_{\mathsf{Var}}}} % pseudo x86_0
+\newcommand{\LangXVar}{$\mathrm{x86}_{\mathsf{Var}}$} % pseudo x86_0
 \newcommand{\LangXASTInt}{\ensuremath{\mathrm{x86}_{\mathsf{Int}}}} % x86_0
 \newcommand{\LangXInt}{$\mathrm{x86}_{\mathsf{Int}}$} %x86^{\dagger}_0
 \newcommand{\LangXIntM}{\mathrm{x86}_{\mathsf{Int}}} %x86^{\dagger}_0
@@ -113,10 +117,12 @@
 \newcommand{\key}[1]{\texttt{#1}}
 \newcommand{\code}[1]{\texttt{#1}}
 
-\newcommand{\LP}[0]{\key{(}}
-\newcommand{\RP}[0]{\key{)}}
-\newcommand{\LS}[0]{\key{[}}
-\newcommand{\RS}[0]{\key{]}}
+\newcommand{\LP}{\key{(}}
+\newcommand{\RP}{\key{)}}
+\newcommand{\LS}{\key{[}}
+\newcommand{\RS}{\key{]}}
+
+\newcommand{\MID}{\;\;\mid\;\;}
 
 \if\edition\racketEd
 \newcommand{\INT}[1]{{\color{olive}\key{(Int}~#1\key{)}}}
@@ -145,7 +151,6 @@
 \newcommand{\CREAD}{\key{(read)}}
 \newcommand{\CNEG}[1]{\LP\key{-}~#1\RP}
 \newcommand{\CPROGRAM}[2]{\LP\code{CProgram}~#1~#2\RP}
-\newcommand{\XPROGRAM}[2]{\LP\code{X86Program}~#1~#2\RP}
 \newcommand{\PROGRAMDEFSEXP}[3]{\code{(ProgramDefsExp}~#1~#2~#3\code{)}}
 \newcommand{\PROGRAMDEFS}[2]{\code{(ProgramDefs}~#1~#2\code{)}}
 \newcommand{\CADD}[2]{\LP\key{+}~#1~#2\RP}
@@ -212,10 +217,36 @@
 \newcommand{\GOTO}[1]{\key{(Goto}~#1\key{)}}
 \newcommand{\IFSTMT}[3]{\key{(IfStmt}\,#1~#2~#3\key{)}}
 
+\if\edition\racketEd
 \newcommand{\IMM}[1]{\key{(Imm}~#1\key{)}}
 \newcommand{\REG}[1]{\key{(Reg}~#1\key{)}}
-\newcommand{\BYTEREG}[1]{\key{(ByteReg}~#1\key{)}}
 \newcommand{\DEREF}[2]{\key{(Deref}~#1~#2\key{)}}
+\newcommand{\BININSTR}[3]{\key{(Instr}~#1~\key{(}#2~#3\key{))}}
+\newcommand{\UNIINSTR}[2]{\key{(Instr}~#1~\key{(}#2\key{))}}
+\newcommand{\CALLQ}[2]{\key{(Callq}~#1~#2\key{)}}
+\newcommand{\PUSHQ}[1]{\key{(Pushq}~#1\key{)}}
+\newcommand{\POPQ}[1]{\key{(Popq}~#1\key{)}}
+\newcommand{\JMP}[1]{\key{(Jmp}~#1\key{)}}
+\newcommand{\RETQ}{\key{(Retq)}}
+\newcommand{\XPROGRAM}[2]{\LP\code{X86Program}~#1~#2\RP}
+\fi
+\if\edition\pythonEd
+\newcommand{\IMM}[1]{\key{Constant}\LP #1\RP}
+\newcommand{\REG}[1]{\key{Reg}\LP #1\RP}
+\newcommand{\DEREF}[2]{\key{Deref}\LP #1 \key{,} #2 \RP}
+\newcommand{\BININSTR}[3]{\key{Instr}\LP #1 \key{,} \LS #2 \key{,} #3 \RS \RP}
+\newcommand{\UNIINSTR}[2]{\key{Instr}\LP #1 \key{,} \LS #2 \RS \RP}
+\newcommand{\CALLQ}[2]{\key{Callq}\LP #1 \key{,} #2 \RP}
+\newcommand{\PUSHQ}[1]{\key{Pushq}\LP #1 \RP}
+\newcommand{\POPQ}[1]{\key{Popq}\LP #1 \RP}
+\newcommand{\JMP}[1]{\key{Jump}\LP #1 \RP}
+\newcommand{\RETQ}{\key{Retq}\LP\RP}
+% TODO: change \XPROGRAM to 1 parameter
+\newcommand{\XPROGRAM}[2]{\code{X86Program}\LP #1 \RP}
+\fi
+
+
+\newcommand{\BYTEREG}[1]{\key{(ByteReg}~#1\key{)}}
 \newcommand{\DEF}[5]{\LP\key{Def}~#1~#2~#3~#4~#5\RP}
 \newcommand{\CDEF}[4]{\LP\key{define}~\LP#1~#2\RP\,\key{:}\,#3~#4\RP}
 \newcommand{\CGDEF}[4]{\LP\key{define}~\LP#1~#2\RP\,#3~#4\RP}
@@ -224,14 +255,7 @@
 \newcommand{\CFG}[1]{\key{(CFG}~#1\key{)}}
 \newcommand{\BLOCK}[2]{\key{(Block}~#1~#2\key{)}}
 \newcommand{\STACKLOC}[1]{(\key{stack}~#1)}
-\newcommand{\BININSTR}[3]{\key{(Instr}~#1~\key{(}#2~#3\key{))}}
-\newcommand{\UNIINSTR}[2]{\key{(Instr}~#1~\key{(}#2\key{))}}
-\newcommand{\CALLQ}[2]{\key{(Callq}~#1~#2\key{)}}
 \newcommand{\INDCALLQ}[2]{\key{(IndirectCallq}~#1~#2\key{)}}
-\newcommand{\RETQ}{\key{(Retq)}}
-\newcommand{\PUSHQ}[1]{\key{(Pushq}~#1\key{)}}
-\newcommand{\POPQ}[1]{\key{(Popq}~#1\key{)}}
-\newcommand{\JMP}[1]{\key{(Jmp}~#1\key{)}}
 \newcommand{\TAILJMP}[2]{\key{(TailJmp}~#1~#2\key{)}}
 \newcommand{\JMPIF}[2]{\key{(JmpIf}~#1~#2\key{)}}
 

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini