Drzewa wywodu Drzewo wywodu a struktura słowa

Transkrypt

Drzewa wywodu Drzewo wywodu a struktura słowa
Wykład 3, str. 1
Drzewa wywodu
ciąg terminali:
34 ∗ (x + 11)
aksjomat
hzmiennai ::= a b . . . z
hcyfrai ::= 0 1 . . . 9
hcyfrai
hliczbai ::= hliczbai hcyfrai
hatomi ::= hzmiennai hliczbai ( hwyrażeniei )
hwyrażeniei + hskładniki
hwyrażeniei ::= hskładniki
hskładniki ::= hatomi hskładniki ∗ hatomi
hwyrażeniei
hskładniki
.....
.......
.
.....
.....
........................................................
.
.
.........hatomi
.
.............
.................
...
.
.
.
.
.
.
.
.
.
.
.........
.
.
.
...
.......
.......
.
.
.
.
.
.
.
.
.
......
.
.
.
hwyrażeniei
.
.
.
.
.....
...
.
.
.
....
....
.
.
.
.
....
.
...
.
hskładniki
..
...
.
.
..
...
.
.
.
...
....hwyrażeniei
...
...
hatomi
..
...
...
...
..
..
...
..
..
hskładniki
hliczbai
...
...
...
...
...
...
..
hatomi
hliczbai
...
.
.
...
.....
....
...
....
...
hzmiennai
hcyfrai
hcyfrai
.
.
..
....
....
..
hskładniki
hatomi
hliczbai
hliczbai
hcyfrai hcyfrai
3
4
* (
x
+
1
1
)
Wykład 3, str. 2
Drzewo wywodu a struktura słowa
hwyrażeniei ::= 0 1 . . . 9 ( hwyrażeniei ) hwyrażeniei + hwyrażeniei hwyrażeniei ∗ hwyrażeniei
.......
hwyrażeniei
.......
.....
.....
.....
hwyrażeniei
....
....
.
hwyrażeniei
hwyrażeniei .........
hwyrażeniei
...
...
2
+
5
∗.
3
...
...
...
... hwyrażeniei
hwyrażeniei
hwyrażeniei
....
....
....
.....
hwyrażeniei
.....
.....
......
hwyrażeniei
Niejednoznaczność wywodu: istnieją dwa różne drzewa wywodu danego
słowa. W tym przypadku sugerują one kolejność działań:
• drzewo górne odpowiada wykonaniu dodawania przed mnożeniem
• drzewo dolne odpowiada wykonaniu mnożenia przed dodawaniem
Wykład 3, str. 3
Drzewo wywodu a struktura słowa
Gramatyka fragmentu języka polskiego:
hzdaniei
::=
hgr.podmiotui hgr.orzeczeniai
hgr.podmiotui
::=
hpodmioti
hprzydawkai hgr.podmiotui
hgr.orzeczeniai
::=
hpodmioti
::=
hprzydawkai
::=
horzeczeniei
::=
hdopełnieniei
::=
hokoliczniki
::=
horzeczeniei
horzeczeniei hdopełnieniei
hgr.orzeczeniai hokoliczniki
Anka Basia Czesiek
gruby stary
bije kocha
Ankę Basię Cześka
w domu nocą
Wykład 3, str. 4
Drzewo wywodu a struktura słowa
hzdaniei
hgr.orzeczeniai
hgr.podmiotui
hgr.podmiotui
hgr.orzeczeniai
hgr.orzeczeniai
hgr.podmiotui
hprzydawkaihprzydawkai hpodmioti horzeczenieihdopełnienieihokoliczniki hokoliczniki
stary
gruby Czesiek
bije
Ankę w domu nocą
Wykład 3, str. 5
Drzewo wywodu a struktura słowa
hzdaniei
hgrupa podmiotui
hpodmioti
hgrupa orzeczeniai
horzeczeniei
=
CZAS LECI
JAK STRZAŁA
=
CZASOWE MUCHY
LUBIĄ STRZAŁĘ
hokoliczniki
TIME FLIES LIKE AN ARROW
hprzydawkai hpodmioti horzeczeniei hdopełnieniei
hgrupa podmiotui
hgrupa orzeczeniai
hzdaniei
Znaczenie zależy od drzewa rozbioru również w językach naturalnych.
Wykład 3, str. 6
Drzewo wywodu a struktura słowa
Z punktu widzenia należenia słowa do języka postać drzewa wywodu nie ma
znaczenia. Z punktu widzenia przekazywanego sensu postać drzewa wywodu
jest bardzo ważna.
Przykład: jak policzyć wartość wczytywanej liczby?
M
hliczbai ::= hcyfrai hcyfrai hliczbai
To sugeruje, że trzeba osobno znaleźć wartość pierwszej cyfry i osobno całej
reszty a następnie jakoś te wartości połączyć: 3|456 = 3 · 103 + 456
— ale skąd z góry wiedzieć,
do jakiej potęgi podnieść 10?
hliczbai ::= hcyfrai hliczbai hcyfrai
To sugeruje, że trzeba osobno znaleźć wartość ostatniej cyfry i osobno całej
reszty a następnie jakoś te wartości połączyć: 345|6 = 345 · 10 + 6
— tak jest łatwiej zaprogramować.
Rozumienie słowa oraz operacje na nim odbywają się faktycznie na jego
drzewie wywodu.
Wykład 3, str. 7
Akceptory: automaty skończone
s
Słowo abab:
δ ∗hp, ababi = δ ∗hq, babi = δ ∗hq, abi
= δ ∗hs, bi = δ ∗hq, λi = q
odrzucone.
t
Słowo baab:
δ ∗hp, baabi = δ ∗hr, aabi = δ ∗hr, abi
= δ ∗hr, bi = δ ∗ht, λi = t
zaakceptowane.
Słowo λ: δ ∗hp, λi = p odrzucone.
.............
.............
.... ...... b
.... ......a
...
...
....
...
..
..
..
..
.
...
...
.
..
.
.
.
.
.
..
❫..
❫..
a
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
q...
...
..✐
.............................
q
b
a✣
✲
p
b
❫
r
b .........
.....................q
..✐
.............................
...
...
...
✣
...
...
...
...
....
..... .... a
...........
a
...
...
...
✣
....
.
...
..
.
...
...... ....... b
.........
Słowo abbaba:
δ ∗hp, abbabai = δ ∗hq, bbabai
= δ ∗hq, babai = δ ∗hq, abai
= δ ∗hs, bai = δ ∗hq, ai = δ ∗hs, λi = s
zaakceptowane.
Akceptacja słowa — od stanu początkowego do akceptującego.
Wykład 3, str. 8
Akceptory: automaty skończone
............
...............
.... .......b
... ......a
.
.
.. .
...
...
.
.
....
....
..
.
...
.
...
.
.
.
..
..
❫..
❫..
a
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.....
q
.....
..✐
.............................
q
a✣
✲
s
b
p
b
❫
r
b ..........
.....................q
..✐
............................
...
...
...
✣
...
..
...
....
...
..... .... a
............
a
t
...
...
...
✣
...
..
...
.
.
...
..... ....... b
...........
Funkcja przejścia automatu:
δ
p
q
r
s
t
a
q
s
r
s
r
b
r
q
t
q
t
δ ∗hp, baabi = δ ∗ δhp, bi , aab
D
E
D
E
= δ ∗ r, aab = δ ∗ δhr, ai , ab
D
E
D
E
= δ ∗ r, ab = δ ∗ δhr, ai , b
D
= δ ∗ r, b = δ ∗ δhr, bi , λ
= δ ∗ht, λi = t
D
E
D
E
E
Akceptacja słowa w: jeśli δ ∗hp, wi jest stanem akceptującym.
Wykład 3, str. 9
Automaty skończone
DEFINICJA: Deterministyczny automat skończony M —
M • skończony zbiór Q stanów,
• skończony zbiór Σ liter,
• funkcja przejścia δ : Q × Σ → Q,
• wyróżniony stan początkowy q0 ∈ Q,
• wyróżniony zbiór stanów końcowych (akceptujących) F ⊆ Q.
DEFINICJA: Uogólniona funkcja przejścia — δ ∗ : Q × Σ∗ → Q:

q



jeśli w = λ
δ ∗hq, wi def
= δ ∗ δhq, σi , w ′


D
E
jeśli w = σw ′
dla pewnych σ ∈ Σ i w ′ ∈ Σ∗
DEFINICJA: Automat M akceptuje słowo w jeśli δ ∗hq0 , wi ∈ F
DEFINICJA: Język akceptowany przez automat M = hQ, Σ, δ, q0 , F i:
def
L(M ) =
n
w ∈ Σ∗ M akceptuje w
o
=
n
w ∈ Σ∗ δ ∗hq0 , wi ∈ F
o