0% found this document useful (0 votes)
399 views5 pages

Finite Automata Quiz MIT

1. The document contains 12 practice quiz questions on formal language and automata theory concepts like regular expressions, finite automata, context-free grammars, ambiguity, and type systems. 2. The questions cover topics such as regular expressions for specific languages, constructing DFAs from NFAs, context-free grammars for languages defined by properties of strings, eliminating left recursion, and extending a type system to handle pointers. 3. The answers provided include regular expressions, diagrams of automata, context-free grammars, proofs of ambiguity, and code for type propagation.

Uploaded by

Lokesh Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
399 views5 pages

Finite Automata Quiz MIT

1. The document contains 12 practice quiz questions on formal language and automata theory concepts like regular expressions, finite automata, context-free grammars, ambiguity, and type systems. 2. The questions cover topics such as regular expressions for specific languages, constructing DFAs from NFAs, context-free grammars for languages defined by properties of strings, eliminating left recursion, and extending a type system to handle pointers. 3. The answers provided include regular expressions, diagrams of automata, context-free grammars, proofs of ambiguity, and code for type propagation.

Uploaded by

Lokesh Kumar
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

6.

035 Practice Quiz 1

1. Give a Regular Expression and DFA for: L = {x {0, 1} | x ends with 1 and does not contain the substring 00} 2. Give a RE for: L = {0i 1j | i is even and j is odd } 3. Given the NFA for below for 0 (01) 0 , construct a DFA:
C 0 0 B D

4. Give a RE and a DFA/NFA for the language of all strings over {0, 1} that do not end in 01. 5. Give a RE and a CFG for:
L = {x {0, 1} | x starts and ends with dierent symbols }
6. Give a CFG for: L = {x {0, 1} | symbol at position i is same as symbol at position i+2 and | x | 2} 7. Give a CFG for the language of all non-palindromes over {0, 1} . 8. Give a CFG for: L = {0i 1j 0k | j > i + k} So, 001111100 is in the string. Hint, the concatenation of two (or more) context-free languages is context-free. 9. Eliminate left recursion from: S Aa | b A Ac | Sd | 10. Give a CFG for L = {ai bi ci | i 1}. 11. Is this grammar ambiguous? If so, prove it and construct a non-ambiguous grammar that derives the same language. S aS | aSbS | c 1

12. Assume that we have added a pointer type to decaf that can point to integers and booleans. We want to extend our type system (our attributed grammar) to handle these types. We have added a pointer(t) type to the type system to denote a pointer of type t. Complete the semantic action that propagates the type attribute for a pointer deference expression: E E1 {: E.type = ???? :}

Answers
1. (1 | 01)+
0 0 1 1 1 0 0,1

2. (00) 1(11) 3. DFA:


0

ABCD 0

BD 0

1 ABD 1 1 D

1 CD 0

0 0,1

4. | 0 | 1 | (0 | 1) (11 | 00 | 10)

1 1 0 0 0 1

5. [a(a | b) b]|[b(a | b) a]
S aAb | bAa
A aA | bA | 6. S A | B | C | D A 00A | 00 B 11B | 11 C 10C | 10 D 01D | 01 7. S 0S0 | 1S1|D D 1A0 | 0A1 A | 0A | 1A 8. S ABC A 0A1 | B 1B | 1 C 1C0 | L is a concatenation of L1 L2 L3 where L1 = {0i 1i | i 0}, L2 = {1m | m > 0}, and L3 = {1k 0k | k 0}. 9. S Aa | b A bdA1 | A1 A1 cA1 | adA1 | 10. Trick question, the language is not context-free. Sorry! 11. It is ambiguous! aacbc has two parse trees (not pictured, but you have to show the two parse trees to prove it is ambiguous). 3

Unambiguous grammar: ST |U T aT bT | c U aS | aT bU 12. E E1 {E.type := if E1 .type = pointer(t) then t else type error;}

MIT OpenCourseWare http://ocw.mit.edu

6.035 Computer Language Engineering


Spring 2010

For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.

You might also like