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-four/compilers_assn_4.org | |
| download | misc-undergrad-6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6.tar.gz misc-undergrad-6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6.zip | |
Diffstat (limited to 'Homework/cs5300/homework-four/compilers_assn_4.org')
| -rw-r--r-- | Homework/cs5300/homework-four/compilers_assn_4.org | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/Homework/cs5300/homework-four/compilers_assn_4.org b/Homework/cs5300/homework-four/compilers_assn_4.org new file mode 100644 index 0000000..da16615 --- /dev/null +++ b/Homework/cs5300/homework-four/compilers_assn_4.org @@ -0,0 +1,236 @@ +#+TITLE: Assignment Three +#+AUTHOR: Lizzy Hunt +#+STARTUP: entitiespretty fold inlineimages +#+LATEX_HEADER: \notindent \notga \usepackage{ dsfont } \usepackage{amsmath} \usepackage[a4paper,margin=1in,landscape]{geometry} +#+LATEX: \setlength\parindent{0pt} +#+OPTIONS: toc:nil + +* Question One +** a +#+attr_latex: :width 250px +[[./1a.excalidraw.png]] +** b +#+attr_latex: :width 250px +[[./1b.excalidraw.png]] +** c +#+attr_latex: :width 250px +[[./1c.excalidraw.png]] +** d +#+attr_latex: :width 250px +[[./1d.excalidraw.png]] +** e +#+attr_latex: :width 250px +[[./1e.excalidraw.png]] +** f +#+attr_latex: :width 200px +[[./1f.excalidraw.png]] + +* Question Two +| State | a | b | e | +| 0 | \phi | \phi | {1, 3} | +| 1 | {2, 4} | {4} | \phi | +| 2 | {2} | \phi | \phi | +| 3 | \phi | {4} | \phi | +| 4 | \phi | {4} | \phi | + +* Question Three +| State | a | b | +| 0 | 1 | 0 | +| 1 | 1 | 2 | +| 2 | 1 | 3 | +| 3 | 1 | 0 | + +* Question Four +** a +#+attr_latex: :width 350px +[[./4a.excalidraw.png]] +** b +| DFA State | NFA States | a | b | c | +| d_0 | {s_0, s_1, s_2, s_5, s_9} | {s_3, s_6} (d_1) | s_e | s_e | +| d_1 | {s_3, s_6} | s_e | {s_4, s_8, s_9, s_1, s_2, s_5} (d_2) | {s_7, s_8, s_9, s_1, s_2, s_5} (d_3) | +| d_2 | {s_4, s_8, s_9, s_1, s_2, s_5} | {s_3, s_6} (d_1) | s_e | s_e | +| d_3 | {s_7, s_8, s_9, s_1, s_2, s_5} | {s_3, s_6} (d_1) | s_e | s_e | + +#+attr_latex: :width 200px +[[./4b.excalidraw.png]] +** c +| partition | a | b | c | +| {d_1}, {d_0, d_2, d_3} | {d_0, d_2, d_3} \Rightarrow {d_1, d_0, d_0} | {d_0, d_2, d_3} \Rightarrow {-, -, -} | {d_0, d_2, d_3} \Rightarrow {-, -, -} | +| {d_1}, {d_0}, {d_2, d_3} | {d_2, d_3} \Rightarrow {d_0, d_0} | {d_2, d_3} \Rightarrow {-, -} | {d_2, d_3} \Rightarrow {-, -} | + +#+attr_latex: :width 200px +[[./4c.excalidraw.png]] + +* Question Five +** regex 1 +*** NFA +#+attr_latex: :width 350px +[[./51a.excalidraw.png]] + +*** DFA +| DFA State | NFA States | 1 | 0 | +| d_0 | {s_0, s_1, s_2, s_4, s_7} | {s_1, s_2, s_3, s_4, s_6, s_7} (d_1) | {s_1, s_2, s_4, s_5, s_6, s_7} (d_2) | +| d_1 | {s_1, s_2, s_3, s_4, s_6, s_7} | d_1 | d_2 | +| d_2 | {s_1, s_2, s_4, s_5, s_6, s_7} | d_1 | d_2 | + +#+attr_latex: :width 200px +[[./51b.excalidraw.png]] + +*** Minimization +| partition | 1 | 0 | +| {d_0, d_1, d_2} | {d_0, d_1, d_2} \Rightarrow {d_1, d_1, d_1} | {d_0, d_1, d_2} \Rightarrow {d_2, d_2, d_2} | + +#+attr_latex: :width 75px +[[./51c.excalidraw.png]] + +** regex 2 +*** NFA +#+attr_latex: :width 350px +[[./52a.excalidraw.png]] +*** DFA +| DFA State | NFA States | 1 | 0 | +| d_0 | {s_0, s_1, s_2, s_3, s_5, s_11, s_6, s_12 } | {s_1, s_2, s_3, s_5, s_6, s_7, s_8, s_10, s_11, s_12} (d_1) | {s_1, s_2, s_3, s_4, s_5, s_11, s_6, s_12} (d_2) | +| d_1 | {s_1, s_2, s_3, s_5, s_6, s_7, s_8, s_10, s_11, s_12} | d_1 | {s_1, s_2, s_3, s_4, s_5, s_9, s_11, s_6, s_12} (d_3) | +| d_2 | {s_1, s_2, s_3, s_4, s_5, s_11, s_6} | d_1 | d_2 | +| d_3 | {s_1, s_2, s_3, s_4, s_5, s_9, s_11, s_6, s_12} | d_1 | d_2 | + +#+attr_latex: :width 150px +[[./52b.excalidraw.png]] + +*** Minimization +| partition | 1 | 0 | +| {d_0, d_1, d_2, d_3} | {d_0, d_1, d_2, d_3} \Rightarrow {d_1, d_1, d_1, d_1} | {d_0, d_1, d_2, d_3} \Rightarrow {d_2, d_3, d_2, d_2} | + +#+attr_latex: :width 100px +[[./52c.excalidraw.png]] + +* Question Six +** a +*** DFA +#+attr_latex: :width 350px +[[./6a.excalidraw.png]] + +*** catMap +#+BEGIN_SRC json +{ + '-': 'sign', + '+': 'sign', + [0-9]: 'digit', + 'e': 'scntfc' +} +#+END_SRC + +*** transMap +#+BEGIN_SRC json +{ + 's0': { + 'sign': 's1', + 'digit': 's2', + }, + 's1': { + 'digit': 's2', + }, + 's2': { + 'digit': 's2', + 'scntfc': 's3', + }, + 's3': { + 'sign': 's4', + 'digit': 's5', + }, + 's4': { + 'digit': 's6', + }, + 's5': { + 'digit': 's6', + }, + 's6': { + 'digit': 's6', + }, +} +#+END_SRC + +*** tokenTypes +#+BEGIN_SRC json +{ + 's2': 'integer', + 's6': 'integer, +} +#+END_SRC +** b +*** DFA +#+attr_latex: :width 200px +[[./6b.excalidraw.png]] + +*** catMap +#+BEGIN_SRC json +{ + [a-zA-Z]: 'letter', + '_': 'letter', + [0-9]: 'digit', +} +#+END_SRC + +*** transMap +#+BEGIN_SRC json +{ + 's1': { + 'letter': 's2' + }, + 's2': { + 'letter': 's2', + 'digit': 's2', + }, +} +#+END_SRC + +** c +*** DFA +#+attr_latex: :width 400px +[[./6c.excalidraw.png]] + +*** catMap +#+BEGIN_SRC json +{ + [^(\n)*/]: 'nonc', + '\n': 'newline', + 'eof': 'eof', + '/': 'slash', + '*': 'star' +} +#+END_SRC +*** transMap +#+BEGIN_SRC json +{ + 's0': { + 'slash': 's1', + }, + 's1': { + 'slash': 's2', + 'star': 's4', + }, + 's2': { + 'nonc': 's2', + 'newline': 's3', + 'eof': 's3' + }, + 's4': { + 'nonc': 's4', + 'star': 's5', + }, + 's5': { + 'nonc': 's4', + 'newline': 's4', + 'slash': 's6' + } +} +#+END_SRC + +*** tokenType +#+BEGIN_SRC json +{ + 's3': 'singleLineComment', + 's6': 'multiLineComment', +} +#+END_SRC + |
