Taal - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Taal

Description:

Title: Grammatica's en ontleden Author: Jeroen Fokker Last modified by: Doaitse Swierstra Created Date: 11/16/2002 10:02:14 PM Document presentation format – PowerPoint PPT presentation

Number of Views:69
Avg rating:3.0/5.0
Slides: 41
Provided by: Jeroe156
Category:
Tags: taal

less

Transcript and Presenter's Notes

Title: Taal


1
Taal
  • Een Alfabet iseen eindige verzameling symbolen
  • Een Taal iseen deelverzameling van Tbij een
    bepaald alfabet T
  • Een Zin iseen element van een taal
  • Een Zin van een taal iseen element van die
    taal

2
Liever inductief dan predicatief
Zijn dezedefinities equivalent?
  • Palindromen predicatief
  • Palindromen inductief

s ? a,b,c s sR
sound
complete
  • e is een palindroom
  • a, b, en c zijn palindromen
  • Als P en palindroom is dan zijn aPa , bPb
    en cPc het ook
  • Niets anders is een palindroom

3
Grammatica
  • Een grammatica bestaat uit (T, N, R, S)
  • Het alfabet T eindig
  • Hulpsymbolen N eindig T?NØ
  • Productieregels R eindig
  • Een startsymbool S één S ? N

Met als elementen
A ? w
waarbij A ? N w ? (N?T)
4
Contextvrije grammatica
van palindromen
a , b , c
  • Terminals
  • Nonterminals
  • Regels
  • Startsymbool

P
P ? e , P ? a , P ? b , P ? c , P ? a P a ,
P ? b P b , P ? c P c
P
5
Afkorting-notatie
  • Lang
  • Kort
  • P ? e a b aPa bPb
  • P ? e
  • P ? a
  • P ? b
  • P ? aPa
  • P ? bPb

BNFBackus-Naur Form
6
Afkorting-notatie
  • Lang
  • Kort
  • A ? X
  • A ? e
  • A ? X A

EBNFExtended Backus-Naur Form
7
Echt Voorbeeld
  • Contextvrije grammatica voor stukje Java
  • Stat ? Var Expr if
    (Expr) Stat else Stat while
    (Expr) Stat
  • Expr ? Const Var Expr
    Op Expr
  • Op ? -

8
Afleiding van een zin
a , b , c
P
P
P ? e , P ? a , P ? b , P ? c , P ? a P a ,
P ? b P b , P ? c P c
P ? b P b
P
9
Afleiding van een zin
a , b , c
P
?
P
b P b
P ? e , P ? a , P ? b , P ? c , P ? a P a ,
P ? b P b , P ? c P c
P ? b P b
P
10
Afleiding van een zin
a , b , c
P
?
P
b P b
P ? e , P ? a , P ? b , P ? c , P ? a P a ,
P ? b P b , P ? c P c
P ? a P a
P
11
Afleiding van een zin
a , b , c
P
?
P
b P b
P ? e , P ? a , P ? b , P ? c , P ? a P a ,
P ? b P b , P ? c P c
?
b a P a b
P ? a P a
P
12
Afleiding van een zin
a , b , c
P
?
P
b P b
P ? e , P ? a , P ? b , P ? c , P ? a P a ,
P ? b P b , P ? c P c
?
b a P a b
P ? c
P
13
Afleiding van een zin
a , b , c
P
?
P
b P b
P ? e , P ? a , P ? b , P ? c , P ? a P a ,
P ? b P b , P ? c P c
?
b a P a b
?
P ? c
b a c a b
P
14
Afleiding van een zin
a , b , c
P
?
P
b P b
P ? e , P ? a , P ? b , P ? c , P ? a P a ,
P ? b P b , P ? c P c
?
b a P a b
?
b a c a b
P ? b a c a b
P
15
Afleiding van een zin
? ,? ,
? , X , ? ,
?????? X ???
?
X ?
?????? ???
X ? ? ? Rdan ? X ? ? ? ? ?
P
16
Ontleden
  • Zij grammatica G ( T, N, R, S )
  • Ontleden van zin zzoek een afleiding

S ? z
17
DefinitieTaal van een grammatica
  • Zij grammatica G ( T, N, R, S )
  • de taal van G
  • is

L(G)
z ? T S ? z
18
Contextvrij
  • Contextvrije grammaticaregels van de vorm
  • Contextvrije taalL(G) voor zekere contextvrije
    G

X ? ?
  • StellingDe taal van palindromen is een
    contextvrije taal

19
Voorbeelden van regels van grammaticas van talen
  • Digit ? 0 1 2 3 4 5 6 7 8 9
  • Digits ? e Digit Digits
  • Nietnul ? 1 2 3 4 5 6 7 8 9
  • Nat ? 0 Nietnul Digits
  • Teken ? -
  • Int ? Teken Nat Nat
  • Lower ? a b c x y z
  • Upper ? A B C X Y Z
  • Letter ? Lower Upper
  • Naam ? Letter Rest
  • Rest ? e Letter Rest Digit Rest

20
Verschillende afleidingen
  • S
  • S S
  • S S S
  • S a S
  • a a S
  • a a a

a
  • S
  • S S
  • a S
  • a S S
  • a a S
  • a a a
  • S
  • S S
  • S S S
  • a S S
  • a a S
  • a a a

S
S ? S S , S ? a
S
leftmostderivation
ook leftmost,maar anders!
21
Ontleedboom
22
Unieke ontleding
  • Een zin heeft een unieke ontleding als
  • er maar één ontleedboom is
  • of equivalent
  • er maar één leftmost derivation is

23
Ambigue grammatica
  • Een grammatica is ambigu als
  • er een zin is met een niet-unieke ontleding

24
Publieksvraag
Expr ? , Stat ? Var Expr , Stat ?
while ( Expr ) Stat , Stat ? if ( Expr ) ,
  • Grammatica voor Statements in Java
  • Maak aanvulling voor if-statements
  • Is de grammatica ambigu?

25
Een mogelijke oplossing
Expr ? , Stat ? Var Expr , Stat ?
while ( Expr ) Stat , Stat ? if ( Expr ) Stat
Rest , Rest ? e else Stat
  • Is deze grammatica ambigu?

26
Ja, de grammatica is ambigu
want deze zin heeft 2 ontledingen
if(E) if(E) S else S
27
Eigenschappen van grammaticas
  • die je zou kunnen nagaan
  • Is de grammatica ambigu?
  • Zijn er nonterminals N met N ? e ?
  • Heeft de grammatica alleen regels
  • X ? A B
  • X ? a
  • Chomsky-normaalvorm

binaire ontleedbomen
28
Grammatica-transformaties
  • Aanpassen van de regels,
  • maar zo dat
  • De taal hetzelfde blijft
  • Wenselijke eigenschappen ontstaan

29
Transformaties (1/6)Dubbelen verwijderen
  • Heeft dezelfde taal als

A ? u u v
A ? u v
30
Transformaties (2/6)Regels expanderen
  • Heeft dezelfde taal als

A ? u B v z B ? x w
A ? u x v u w v z B ? x w
31
Transformaties (3/6)Links-factorisatie
  • Heeft dezelfde taal als

A ? u x u w z
A ? u B z B ? x w
32
Transformaties (4/6)Verwijderen links-recursie
  • Heeft dezelfde taal als

A ? A x A y u v
A ? u u B v v B B ? x x B y y
B
33
Transformaties (5/6)Associatieve operatoren
  • Heeft dezelfde taal als

Ds ? D Ds ? Ds Ds
Ds ? D Ds ? D Ds
niet meerambigu
34
Transformaties (6/6)Operatoren met prioriteiten
  • Heeft
  • dezelfde
  • taal als

E ? E E E ? E E E ? ( E ) E ? N
E ? T E ? T E T ? F T ? F T F ?
( E ) F ? N
gaat nuvoor
35
Ambigue if-statement
if(E) if(E) S else S
36
Publieksvraag
  • Kun je een niet-ambigue grammatica maken voor
    Statements in Java?

Stat ? if ( Expr ) Stat Rest , Rest ? e
else Stat , Stat ? Var Expr , Stat ? while (
Expr ) Stat ,
37
Hint
Stat ? Compleet Half , Compleet ? , Half
? , Overig ? Var Expr , Overig ? while (
Expr ) Stat ,
38
Oplossing
Stat ? Compleet Half , Compleet ? if ( Expr
) Compleet else Compleet , Compleet ? Overig ,
Half ? if ( Expr ) Stat , Half ? if ( Expr )
Compleet else Half , Overig ? Var Expr ,
Overig ? while ( Expr ) Stat ,
39
Haskell datatypevoor ontleedbomen
  • Grammatica-regels
  • Haskell datatypedat ontleedboom representeert

X ? A B , X ? C d , X ? e
data X A B C d
e
show X ? String show (Een a b) show a
show b show (Twee c) show c d show (Drie)
e
uit deabstracte syntaxkun je concrete
syntaxreconstrueren
parse String ? X
40
Het parse-probleem
  • Ontleden van zin zzoek een afleiding
  • We zoeken een Haskell-functie

S ? z
parse String ? S
Write a Comment
User Comments (0)
About PowerShow.com