summaryrefslogtreecommitdiff
path: root/Homework/cs5300/homework-four/compilers_assn_4.org
diff options
context:
space:
mode:
authorElizabeth Alexander Hunt <me@liz.coffee>2026-07-02 11:55:17 -0700
committerElizabeth Alexander Hunt <me@liz.coffee>2026-07-02 11:55:17 -0700
commit6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 (patch)
treeed97e39ec77c5231ffd2c394493e68d00ddac5a4 /Homework/cs5300/homework-four/compilers_assn_4.org
downloadmisc-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.org236
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
+