diff options
| author | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-02 11:55:17 -0700 |
|---|---|---|
| committer | Elizabeth Alexander Hunt <me@liz.coffee> | 2026-07-02 11:55:17 -0700 |
| commit | 6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 (patch) | |
| tree | ed97e39ec77c5231ffd2c394493e68d00ddac5a4 /Homework/cs5300/homework-six/compilers_assn_6.org | |
| download | misc-undergrad-6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6.tar.gz misc-undergrad-6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6.zip | |
Diffstat (limited to 'Homework/cs5300/homework-six/compilers_assn_6.org')
| -rw-r--r-- | Homework/cs5300/homework-six/compilers_assn_6.org | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/Homework/cs5300/homework-six/compilers_assn_6.org b/Homework/cs5300/homework-six/compilers_assn_6.org new file mode 100644 index 0000000..0652712 --- /dev/null +++ b/Homework/cs5300/homework-six/compilers_assn_6.org @@ -0,0 +1,113 @@ +#+TITLE: Assignment Six +#+AUTHOR: Lizzy Hunt +#+STARTUP: entitiespretty fold inlineimages +#+LATEX_HEADER: \notindent \notga \usepackage{ dsfont } \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{fontspec} \usepackage[a4paper,margin=1in,portrait]{geometry} \usepackage{fontspec} \setmonofont{DejaVu Sans Mono} +#+LATEX: \setlength\parindent{0pt} +#+LATEX_COMPILER: lualatex +#+OPTIONS: toc:nil + +* Question One +\begin{verbatim} +A -> BcDA' +A' -> eD | ε +B -> xBB' +B' -> yD | zD | ε +D -> Z +\end{verbatim} + +* Question Two +\begin{verbatim} +A -> wA' +A' -> xA' | yA' | ε +\end{verbatim} + +* Question Three +\begin{verbatim} +A -> wA' | yzA' +A' -> xA' | ε +\end{verbatim} + +* Question Four +\begin{verbatim} +A -> Bx +B -> Cy | Dz +C -> Awp | z +D -> t + +For i = 1, there is no immediate left recursion + +When i = 2 there is also no immediate left recursion + +When i = 3 we substituted A in C: + +A -> Bx +B -> Cy | Dz +C -> Bxwp | z +D -> t + +Then B: +A -> Bx +B -> Cy | Dz +C -> Cyxwp | Dzxwp | z +D -> t + +And remove the immediate left recursion in C: +A -> Bx +B -> Cy | Dz +C -> Dzxwp | zC' +C' -> yxwpC' | ε +D -> t + +When i = 4, there's no left recursion + +\end{verbatim} + +* Question Five +\begin{verbatim} +A -> Bx | Cy +B -> Cz +C -> Bw | v + +When i = 1, no immediate left recursion + +When i = 2, no immediate left recursion + +When i = 3, we substitute B in C + +A -> Bx | Cy +B -> Cz +C -> Czw | v + +, which we remove the immediate left recursion from + +A -> Bx | Cy +B -> Cz +C -> vC' +C' -> zwC' | ε +\end{verbatim} + +* Question Six +\begin{verbatim} +first(A) = first(B) \ ε U first(x) U first(y) = {t, w, u, x, y} +first(B) = first(C) U first(u) U {ε} = {t, w, u, ε} +first(C) = first(t) U first(w) = {t, w} + +follow(A) = {$} U follow(B) = {$, x} +follow(B) = {x} +follow(C) = follow(A) U {z} = {$, x, z} +\end{verbatim} + +* Question Seven +\begin{verbatim} +first(A) = first(C) = first(E) = {x, z} +first(B) = first(a) U {ε} = {a, ε} +first(C) = first(E) = {x, z} +first(D) = first(b) U {ε} = {b, ε} +first(E) = first(x) U first(z) = {x, z} + +follow(A) = {$} U first(y) = {$, y} +follow(B) = follow(A) = {$, y} +follow(C) = first(B) \ ε U follow(B)= {a, $, y} +follow(D) = follow(C) = {a, $, y} +follow(E) = first(D) \ ε U follow(D) = {b, a, $, y} +\end{verbatim} |
