De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

In een reguliere taal… zin yxz S E A B vuwuwxzvuwxzvvuwxzvvvuwxzvvv lengte  n.

Verwante presentaties


Presentatie over: "In een reguliere taal… zin yxz S E A B vuwuwxzvuwxzvvuwxzvvvuwxzvvv lengte  n."— Transcript van de presentatie:

1 In een reguliere taal… zin yxz S E A B vuwuwxzvuwxzvvuwxzvvvuwxzvvv lengte  n

2 In een reguliere taal… vuwvuwxzvvyxz Er is een n, zo dat … Voor elke deelzin y met lengte  n … Er is een kern v, waarvoor … Voor alle i  0 … x u v i w z is ook een zin

3 “Pomp-stelling” L is Regulier   n  x, y, zxyz  L|y|  n  u, v, wuvw=y|v|  1  i  0x u v i w z  L vuw vuwxzvvyxz

4 Pomp-stelling omdraaien… L is Regulier   n  x, y, zxyz  L|y|  n  u, v, wuvw=y|v|  1  i  0x u v i w z  L 

5 Gebruik van omgekeerde Pomp-stelling  n  x, y, zxyz  L|y|  n  u, v, wuvw=y|v|  1  i  0x u v i w z  L Noem mij een n ! …dan geef ik je een zin xyz … yxz …en nou mag jij v aanwijzen … vuw …dan vind ik een i zoals nodig!  L is niet Regulier

6 neem dan i=2… a a b b b b b b baa …wijs maar een v aan! Voorbeeld: { a m b m | m  0 } is niet regulier Noem mij een n ! …met een opsplitsing … a a a a a a ab b b b b b b Nou, ehh, 7 ! a a a a a a a b b b b b b b …dan is hier een zin … deze neem ik! a  L

7 Gevolg n(Hoofdstuk 2) { a m b m | m  0 } is contextvrij n(Pomp-stelling) { a m b m | m  0 } is niet regulier nEr zijn contextvrije talen die niet regulier zijn S  a S bS  S  a S bS  

8 Reguliere talen: overzicht RG Definitie 8 +9 DFA Definitie 1 +3 NFA Definitie 4 +6 RE Definitie 14 +15 Stelling 13 Stelling 12 Stelling 7 triviaal ZRG Definitie (11) Stelling 11 triviaal CFG Definitie 2.5 +7 triviaal onmogelijk Stelling 16 Stelling 17

9 Chomsky-hierarchie nType 3: Reguliere grammatica’s links: N rechts: T* N ? nType 2: Contextvrije grammatica’s links: N rechts: (N  T)* nType 1: Contextgevoelige grammatica’s links:  N  rechts:  (N  T)*  nType 0: Algemene grammatica’s links: (N  T) + rechts: (N  T)*

10 Chomsky-hierarchie nEr zijn talen die contextvrij zijn maar niet regulier { a m b m | m  0 } (bewijs met Pomp-stelling) nEr zijn talen die zelfs niet contextvrij zijn { a m b m c m | m  0 } (bewijs met uitgebreide Pomp-stelling)

11 Pomp-stellingen nWe kunnen ook een pompstelling formuleren voor Contextvrije talen n…en daarmee bewijzen dat bepaalde talen niet Contextvrij zijn n{ a m b m c m | m  0 } is niet contextvrij

12 Ontleedboom bij CFG S  ……… | …… A  ………… | …… B  …… | …… | … C  …… | … | …  m m k nivo’s  m k z S

13 Ontleedboom bij CFG z S  ……… | …… A  ………… | …… B  …… | …… | … C  …… | … | …  m m >k nivo’s > m k k non- terminals S A A nAls de zin lang genoeg is, is er een pad met een dubbele nonterminal

14 Pomp-stelling voor CFG uy S vx A w A vx A w A vx A w A

15 uy S A w A

16 uy S vx A w A vx A w A nVoor alle i  0 … u v i w x i y is ook een zin

17 Pomp-stelling voor CFG uy S vx A w A nVoor alle i  0 … u v i w x i y is ook een zin n v en x niet allebei leeg  k+1 nivo’s n |vwx|  m k+1

18 Pomp-stelling voor Reguliere talen L is Regulier   n  x, y, zxyz  L|y|  n  u, v, wuvw=y|v|  1  i  0x u v i w z  L vuw vuwxzvvyxz namelijk |N|

19 Pomp-stelling voor Contextvrije talen L is Contextvrij   c  zz  L |z|>c  u,v,w,x,yuvwxy=z |vx|  1  i  0u v i w x i y  L namelijk m k |vwx|  d, d namelijk m k+1

20 Omgekeerde Pomp-stelling voor Contextvrije talen  c, d  zz  L |z|>c  u,v,w,x,yuvwxy=z |vx|  1  i  0u v i w x i y  L  L is niet Contextvrij |vwx|  d

21 Voorbeeld: { a n b n c n | n  0 } is niet CF Noem mij een c,d ! a a a … a a a b b b … b b b c c c … c c c …dan is hier een zin … max(c,d) vxwvxw nOpsplitsing bevat <3 verschillende letters nPompen met i>1 vermeerdert niet alle letters …wijs maar een opsplitsing uvwxy aan! |vwx|  d

22 Stelling 2.10 Als L en M CF-talen zijn dan… nL  M is ook CF nL M is ook CF nL*is ook CF Als L en M Reg-talen zijn dan… nL  M is ook Reg nL M is ook Reg nL*is ook Reg Stelling 5.11 nL  M is ook Reg nCmpl(L)is ook Reg nL  M is niet CF nCmpl(L)is niet CF

23 Doorsnede van CF-talen is niet altijd CF n { a n b n | n  0 } is contextvrij n { c k | k  0 } is contextvrij n { a n b n c k | n, k  0 } is contextvrij n { a k b n c n | n, k  0 } is contextvrij n Met de pompstelling bewezen we: { a n b n c n | n  0 } is niet contextvrij n Dus CF-eigenschap blijft niet behouden onder doorsnede

24 Ontleden met een Stackmachine S  a S S  c S S  b a a b nNonterminal bovenop stack? Vervang door een van de regels! nTerminal bovenop stack? Accepteer die input S S a S a b S a S b b maar door welke?

25 Ontleden met een Stackmachine S  c A | b A  c B C | b S A | a B  c c | C b C  a S | b a c c c c b a S A c c c c b a A C B c c c b a C B C c c c b a C c b a C a b a a

26 LL(1) grammatica’s nAls je op grond van het eerstvolgende input-symbool de keuze kunt maken dan is de grammatica een LL(1)-grammatica n… en kan het met de eerste k symbolen dan is het een LL(k )-grammatica Leftmost Lookahead(k)

27 Complexiteit van ontleden Tijd nodig voor het parsen van een zin met lengte n nContextvrije grammatica: O(n 3 ) nContextvrije grammatica met LL(1)-eigenschap:O(n) Wanneer is een grammatica LL(1) ?

28 Definitie LL(1) Een grammatica is LL(1) nAls je op grond van het eerstvolgende input-symbool kunt kiezen uit alternatieven Formeel: nAls de lookahead-sets van de alternatieven van elke nonterminal onderling disjunct zijn

29 Definitie Lookaheadset van alternatief N  S  x  N  { x | S  *  N     *  x  } Lah(N  x  ) = {x} Lah(N  P  ) = ……

30 Eigenschappen van Nonterminals … nodig om Lookahead-sets te bepalen nEmpty(N) nFirst(N) nFollow(N) N  *  S  x  N N


Download ppt "In een reguliere taal… zin yxz S E A B vuwuwxzvuwxzvvuwxzvvvuwxzvvv lengte  n."

Verwante presentaties


Ads door Google