Assignment Three

1. Question One

1.1. a

1a.excalidraw.png

1.2. b

1b.excalidraw.png

1.3. c

1c.excalidraw.png

1.4. d

1d.excalidraw.png

1.5. e

1e.excalidraw.png

1.6. f

1f.excalidraw.png

2. Question Two

State a b e
0 φ φ {1, 3}
1 {2, 4} {4} φ
2 {2} φ φ
3 φ {4} φ
4 φ {4} φ

3. Question Three

State a b
0 1 0
1 1 2
2 1 3
3 1 0

4. Question Four

4.1. a

4a.excalidraw.png

4.2. b

DFA State NFA States a b c
d0 {s0, s1, s2, s5, s9} {s3, s6} (d1) se se
d1 {s3, s6} se {s4, s8, s9, s1, s2, s5} (d2) {s7, s8, s9, s1, s2, s5} (d3)
d2 {s4, s8, s9, s1, s2, s5} {s3, s6} (d1) se se
d3 {s7, s8, s9, s1, s2, s5} {s3, s6} (d1) se se

4b.excalidraw.png

4.3. c

partition a b c
{d1}, {d0, d2, d3} {d0, d2, d3} ⇒ {d1, d0, d0} {d0, d2, d3} ⇒ {-, -, -} {d0, d2, d3} ⇒ {-, -, -}
{d1}, {d0}, {d2, d3} {d2, d3} ⇒ {d0, d0} {d2, d3} ⇒ {-, -} {d2, d3} ⇒ {-, -}

4c.excalidraw.png

5. Question Five

5.1. regex 1

5.1.1. NFA

51a.excalidraw.png

5.1.2. DFA

DFA State NFA States 1 0
d0 {s0, s1, s2, s4, s7} {s1, s2, s3, s4, s6, s7} (d1) {s1, s2, s4, s5, s6, s7} (d2)
d1 {s1, s2, s3, s4, s6, s7} d1 d2
d2 {s1, s2, s4, s5, s6, s7} d1 d2

51b.excalidraw.png

5.1.3. Minimization

partition 1 0
{d0, d1, d2} {d0, d1, d2} ⇒ {d1, d1, d1} {d0, d1, d2} ⇒ {d2, d2, d2}

51c.excalidraw.png

5.2. regex 2

5.2.1. NFA

52a.excalidraw.png

5.2.2. DFA

DFA State NFA States 1 0
d0 {s0, s1, s2, s3, s5, s11, s6, s12 } {s1, s2, s3, s5, s6, s7, s8, s10, s11, s12} (d1) {s1, s2, s3, s4, s5, s11, s6, s12} (d2)
d1 {s1, s2, s3, s5, s6, s7, s8, s10, s11, s12} d1 {s1, s2, s3, s4, s5, s9, s11, s6, s12} (d3)
d2 {s1, s2, s3, s4, s5, s11, s6} d1 d2
d3 {s1, s2, s3, s4, s5, s9, s11, s6, s12} d1 d2

52b.excalidraw.png

5.2.3. Minimization

partition 1 0
{d0, d1, d2, d3} {d0, d1, d2, d3} ⇒ {d1, d1, d1, d1} {d0, d1, d2, d3} ⇒ {d2, d3, d2, d2}

52c.excalidraw.png

6. Question Six

6.1. a

6.1.1. DFA

6a.excalidraw.png

6.1.2. catMap

{
  '-': 'sign',
  '+': 'sign',
  [0-9]: 'digit',
  'e': 'scntfc'
}

6.1.3. transMap

{
  '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',
  },
}

6.1.4. tokenTypes

{
  's2': 'integer',
  's6': 'integer,
}

6.2. b

6.2.1. DFA

6b.excalidraw.png

6.2.2. catMap

{
  [a-zA-Z]: 'letter',
  '_': 'letter',
  [0-9]: 'digit',
}

6.2.3. transMap

{
  's1': {
    'letter': 's2'
  },
  's2': {
    'letter': 's2',
    'digit': 's2',
  },
}

6.3. c

6.3.1. DFA

6c.excalidraw.png

6.3.2. catMap

{
  [^(\n)*/]: 'nonc',
  '\n': 'newline',
  'eof': 'eof',
  '/': 'slash',
  '*': 'star'
}

6.3.3. transMap

{
  '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'
  }
}

6.3.4. tokenType

{
  's3': 'singleLineComment',
  's6': 'multiLineComment',
}

Author: Lizzy Hunt

Created: 2023-02-12 Sun 17:33

Validate