Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 11 Midterm Exam 2 -Context-Free Languages Mälardalen University 2005.

Similar presentations


Presentation on theme: "1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 11 Midterm Exam 2 -Context-Free Languages Mälardalen University 2005."— Presentation transcript:

1 1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 11 Midterm Exam 2 -Context-Free Languages Mälardalen University 2005

2 2 Midterm Exam 2 Context-Free Languages Place: the LAMBDA lecture hall Time: Thursday 2005-05-16, 13:15-15:00 It is OPEN BOOK. (This means you are allowed to bring in one book of your choice.) It will cover Context-free Languages. You will have the complete 2 hours to do the test.

3 3 RECAPITULATION: CONTEXT-FREE LANGUAGES Context-Free Languages, CFL Pushdown Automata, PDA Pumping Lemma for CFL Selected CFL Problems

4 4 Context-Free Languages

5 5 Pushdown Automata Context-Free Grammars stack automaton

6 6 Context-Free Grammars

7 7 A context-free grammar A derivation Example

8 8 A context-free grammar Another derivation

9 9

10 10 A context-free grammar A derivation Example

11 11 A context-free grammar Another derivation

12 12

13 13 A context-free grammar A derivation Example

14 14 A context-free grammar A derivation

15 15

16 16 Definition: Context-Free Grammars Grammar Productions of the form: is string of variables and terminals VariablesTerminal symbols Start variables

17 17 Definition: Context-Free Language A language is context-free if and only if there is a grammar with

18 18 Derivation Order Leftmost derivation

19 19 Derivation Order Rightmost derivation

20 20 Leftmost derivation

21 21 Rightmost derivation

22 22 Derivation Trees

23 23

24 24

25 25

26 26

27 27 Derivation Tree

28 28 yield Derivation Tree

29 29 Ambiguity

30 30 leftmost derivation derivation (* denotes multiplication)

31 31 derivation leftmost derivation

32 32 Two derivation trees

33 33 The grammar is ambiguous! Stringhas two derivation trees

34 34 stringhas two leftmost derivations The grammar is ambiguous:

35 35 Definition A context-free grammar is ambiguous if some string has two or more derivation trees (two or more leftmost/rightmost derivations)

36 36 Why do we care about ambiguity?

37 37 Why do we care about ambiguity?

38 38 Why do we care about ambiguity?

39 39 Correct result:

40 40 Ambiguity is bad for programming languages We want to remove ambiguity!

41 41 We fix the ambiguous grammar… …by introducing parentheses () to indicate grouping, (precedence) Non-ambiguous grammar (E expression; T term; F factor)

42 42

43 43 Unique derivation tree

44 44 The grammar is non-ambiguous Every string has a unique derivation tree.

45 45 Inherent Ambiguity Some context free languages have only ambiguous grammars! Example:

46 46 The string has two derivation trees

47 47 Pushdown Automata PDAs

48 48 Pushdown Automaton - PDA Input String Stack States

49 49 The Stack The stack allows pushdown automata to recognize some non-regular languages. All access to the stack only on the top! (Stack top is written leftmost in the string, e.g. yxz) A PDA can write symbols on stack and read them later on. A stack is valuable as it can hold an unlimited amount of information. PUSH writing symbol POP reading symbol

50 50 The States Input symbol Pop symbol Push symbol

51 51 top input stack Replace (An alternative is to start and finish with empty stack.)

52 52 input Push top stack

53 53 input Pop top stack

54 54 input No Change top stack

55 55 Input Stack Example 3.7 Salling: A PDA for simple nested parenthesis strings

56 56 Input Stack Example 3.7

57 57 Input Stack Example 3.7

58 58 Input Stack Example 3.7

59 59 Input Stack Example 3.7

60 60 Input Stack Example 3.7

61 61 Input Stack Example 3.7

62 62 Input Stack Example 3.7

63 63 NPDAs

64 64 Non-Determinism

65 65 A string is accepted if: All the input is consumed The last state is a final state Stack in the initial condition (either: empty (when we started with empty stack), or: bottom symbol reached)

66 66 is the language accepted by the NPDA: Example NPDA

67 67 NPDA (Even-length palindromes) Example NPDA

68 68 Pushing Strings Input symbol Pop symbol Push string

69 69 top input stack Push pushed string Example:

70 70 Another NPDA example NPDA

71 71 Formal Definitions for NPDAs

72 72 Transition function:

73 73 Transition function: current state current input symbol current stack top new state new stack top

74 74 An unspecified transition function is to the null set and represents A dead configuration for the NPDA.

75 75 Formal Definition of NPDA Non-Deterministic Pushdown Automaton States Input alphabet Stack alphabet Transition function Final states Stack start symbol

76 76 Formal Definition Language of NPDA Initial state Final state

77 77 NPDAs Accept Context-Free Languages

78 78 Context-Free Languages (Grammars) Languages Accepted by NPDAs Theorem

79 79 Context-Free Languages (Grammars) Languages Accepted by NPDAs Proof - Step 1: Convert any context-free grammar to a NPDA with

80 80 Context-Free Languages (Grammars) Languages Accepted by NPDAs Proof - Step 2: Convert any NPDA to a context-free grammar with:

81 81 Converting Context-Free Grammars to NPDAs

82 82 An example grammar: What is the equivalent NPDA?

83 83 Grammar NPDA

84 84 The NPDA simulates leftmost derivations of the grammar L(Grammar) = L(NPDA)

85 85 In general Given any grammar We can construct a NPDA With

86 86 For any production For any terminal Constructing NPDA from grammar Top-down parser

87 87 Grammar generates string if and only if NPDA accepts

88 88 Therefore: For any context-free language there is an NPDA that accepts the same language

89 89 Converting NPDAs to Context-Free Grammars

90 90 For any NPDA we will construct a context-free grammar with

91 91 in NPDA Input processedStack contents terminalsvariables A derivation in Grammar The grammar simulates the machine

92 92 Some Simplifications First we modify the NPDA so that It has a single final state It empties the stack when it accepts the input Original NPDA Empty Stack

93 93 Second we modify the NPDA transitions. All transitions will have form: or which means that each move increases/decreases stack by a single symbol.

94 94 Those simplifications do not affect generality of our argument. It can be shown that for any NPDA there exists an equivalent one having above two properties i.e. the equivalent NPDA with a single final state which empties its stack when it accepts the input, and which for each move increases/decreases stack by a single symbol.

95 95 For each transition: we add production:

96 96 For each transition: we add production: for all states

97 97 Start Variable Stack bottom symbol Start state (Single) Final state

98 98 Language Hierarchy

99 99 Regular Languages Context-Free Languages Non-regular languages

100 100 Deterministic PDAs (DPDAs)

101 101 Allowed DPDAs

102 102 Not allowed

103 103 Allowed Something must be matched from the stack

104 104 Not allowed

105 105 NPDAs Have More Power than DPDAs

106 106 Positive Properties of Context-Free Languages

107 107 Context-free languages are closed under Union is context free is context-free Union

108 108 In general: For context-free languages with context-free grammars and start variables The grammar of the union has new start variable and additional production

109 109 Context-free languages are closed under Concatenation is context free is context-free Concatenation

110 110 In general: For context-free languages with context-free grammars and start variables The grammar of the concatenation has new start variable and additional production

111 111 Context-free languages are closed under star-operation is context free Star Operation is context free

112 112 In general: For context-free language with context-free grammar and start variable The grammar of the star operation has new start variable and additional production

113 113 Negative Properties of Context-Free Languages

114 114 Context-free languages are not closed under intersection is context free not necessarily context-free Intersection

115 115 Context-free languages are not closed under complement is context free not necessarily context-free Complement

116 116 Intersection of CFL and RL (Regular Closure)

117 117 The intersection of a context-free language and a regular language is a context-free language context free regular context-free

118 118 The Pumping Lemma for Context-Free Languages

119 119 The Pumping Lemma for CFL there exists an integer such that for any string we can write For infinite context-free language with lengths and

120 120 Applications of The Pumping Lemma for CFL

121 121 Context-free languages Restriction-free languages

122 122 Theorem The language is not context free Proof Use the Pumping Lemma for context-free languages

123 123 Assume for contradiction that is context-free Since is context-free and infinite we can apply the pumping lemma

124 124 Pumping Lemma gives a number such that: Pick any string with length We pick:

125 125 We can write: with lengths and

126 126 Pumping Lemma says: for all

127 127 We examine all the possible locations of string in

128 128 Case 1: is within

129 129 Case 5: Similar analysis to case 4 …ETC….WE GO THROUGH ALL CASES…

130 130 There are no other cases to consider (since, string cannot overlap, and at the same time)

131 131 In all cases we obtained a contradiction Therefore: The original assumption that is context-free must be wrong Conclusion:is not context-free END OF PROOF

132 132 Regular Languages Context-free languages Unrestricted grammar languages

133 133 Selected Examples of CF Language Problems

134 134 Let G be the grammar with productions: Claim: L(G) = L Find a CFG for the following language Example

135 135 Proof: Consider the following derivation: S  * a n Sc n  a n Bc n  * a n b m Bc m c n  a n b m c (n + m) (where the first  * applies S  aSc n times, the second B  bBc m times) Since all words in L(G) must follow this pattern in their derivations, it is clear that L(G)  L Find a CFG for the following language

136 136 Consider w  L, w = a n b m c (n + m) for some n, m  0 The derivation S  * a n Sc n  a n Bc n  * a n b m Bc m c n  a n b m c (n + m) clearly produces w for any n, m.  L  L(G)  L  L(G)  G is a CFG for L Find a CFG for the following language END OF PROOF

137 137 Find a PDA and CFG for the following language Example Is the automaton deterministic? Yes. It acts in a unique way in each state.

138 138 CFG :

139 139 Find a PDA and CFG for the following language Example PDA

140 140 CFG :

141 141 Consider the following two languages: L 1 ={w : w is made from a’s and b’s and the length of w is a multiple of 10} L 2 = {a n b n : n  0} Prove that the language L is context-free Example

142 142 L 1 ={w : w is made from a’s and b’s and the length of w is a multiple of ten} L 2 = {a n b n : n  0} Let L 1 denote the complement of L 1. We have that L = L 1  L 2. L 1 is a regular language, since we can easily build a finite automaton with 10 states that accepts any string in this language. L 1 is regular too, since regular languages are closed under complement.

143 143 The language L 2 is context-free. The grammar is: S  aSb | Therefore, the language L = L 1  L 2 is also context-free, since context-free languages are closed under regular intersection (Regular Closure). END O PROOF

144 144 Find a PDA and CFG for the following language Example CFG Production ex.

145 145 PDA

146 146 Find a PDA and CFG for the following language Example PDA

147 147 CFG, direct construction Strings start and finish with different symbols Strings contain at least one more a than b (we must have AA here as only one A just balances b)


Download ppt "1 CD5560 FABER Formal Languages, Automata and Models of Computation Lecture 11 Midterm Exam 2 -Context-Free Languages Mälardalen University 2005."

Similar presentations


Ads by Google