1 / 8

Homework #5 Solutions

Homework #5 Solutions. 1. True or False. a) Regular Languages are always Context-Free Languages True False b) Context Free Languages are always Regular Languages

step
Download Presentation

Homework #5 Solutions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Homework #5 Solutions

  2. 1. True or False a) Regular Languages are always Context-Free Languages True False b) Context Free Languages are always Regular Languages True False c) The grammar S 0S |0S1S |e is ambiguous d) The language {anbncn} is regular e) The language {anbncn} is context-free True False True False True False

  3. 2. Minimize the following dfa (1) Dividing into Final and Non-Final States: Partition I  Partition 2 

  4. #2 cont. (2) In Partition 1, all states “do the same thing” on an a. But on a b, states 1 and 6 both go to Partition II. We’ll move them to their own partition: (3) We cannot partition further: L(M) = (a*ba*ba*)*

  5. #3. a) Create a grammar thatgenerates the set of all strings over {0,1} with an equal number of 0’s and 1’s Also b) construct a parse tree and c) leftmost derivation of 0011. d) Is your grammar ambiguous? Why or why not? • S-> 0 S 1, S  1 S 0, S  S S, S e b) c) Yes. There is more than 1 parse tree for e as well as for other strings. S0 S 1  0 0 S 1 1  0 0 1 1

  6. #4. Find the Start symbol for the Java grammar shown at: http://www.cse.psu.edu/~saraswat/cg428/lecture_notes/LJava2.html • The start symbol is CompilationUnit. • It doesn’t appear on the left-hand-side. It is good technique to write a programming language grammar so that the Start symbol does not occur on the right-hand-side, and all grammars can be changed to an equivalent grammar having this property (how?)

  7. #5. For the grammar G: S  X Z Z X X x X e Z zZ ea) What is L(G)? { e, x, z, xz, xx, zz, zx, xzz, xzx. zzx, xzzx }, a finite language • b) ProofLet X = { e, x, z, xz, xx, zz, zx, xzz, xzx. zzx, xzzx }. • To show X = L(G) requires 2 proof parts: • if w e X, then w e L(G) • if w e L(G), then w e X • 1. Given: w e X • Prove: w e L(G) • * • To show w e L(G) means we have to show S  w • Since the language is finite, we can show this for each string: • w = e: • SXZZXeZZXeeZXeeeXeeee = e Similarly for the other elements of L.

  8. #5 cont 2. if w e L(G), then w e X Derivations of strings of length 0 in L(G): SXZZXeZZXeeZXeeeXeeee = e and e is in X Derivations of strings of length 1 in L(G): SXZZXxZZXxeZXxeeXxeee=x (can be derived another way also) And x is in X SXZZXeZZXezZXezeXezee=z (can be derived another way also And z is in X No other derivations result in strings of length 1 Similarly for derivations of strings of length 3 and 4

More Related