Académique Documents
Professionnel Documents
Culture Documents
wiczenia 01
by News
01-03-2011
Na zaj¦ciach b¦d¡ dwa kolokwia. Pierwsze, krótkie, na czwartych zaj¦ciach (s¡ pytania na wiki),
a drugie na caªe 1,5h. Liczona aktywno±¢ na zaj¦ciach.
mgr in». Marcin Kuta, C2 p 410, mkuta@agh.edu.pl
J¦zyki formalne
J¦zyk formalny
Jest to zbiór sªów, a wi¦c ka»da operacja na zbiorze dziaªa równie» na j¦zyku (np. przeci¦cie, suma,
iloczyn kartezja«ski itp.). Ka»dy j¦zyk musi by¢ zdeniowany nad jakim± alfabetem.
Alfabet
(1)
X
= {a, b, c, d}
T
X∗
L⊆ (2)
Konkatenacja
Jedna z podstawowych operacji na sªowach. Po prostu ª¡czenie sªów. Np. mamy sªowa ab oraz cd
to wynikiem konkatenacji b¦dzie sªowo abcd, co mo»na zapisa¢ równie» jako ab · cd.
Kiedy konkatenujemy te same sªowa to mo»emy skróci¢ zapis:
· ... · a} = an
| · a {z
a
n
a1 = a
ale ju» np. (ab)n 6= an bn poniewa»
ab · ... · ab} 6= a
| · ab{z | · a {z
· ... · a} · b| · b {z
· ... · }b
n n n
1
Sªowo puste
Zadanie 1
Mamy alfabet = {+, −, /, ∗, a, b, ..., z, (, )}. Zbudowa¢ j¦zyk nad tym alfabetem (poda¢ przykªa-
P
dowe sªowa)
L = {a, z, a + b, c ∗ d, a + b ∗ c, (a + b) ∗ c, a + b ∗ (c + d)}
Jest to j¦zyk operacji arytmetycznych. Jak wida¢, ma niesko«czon¡ ilo±¢ sªów. Jeszcze jednak jest
on niekompletny, brakuje paru rzeczy.
Jest to symbol pojedynczy, który nie mo»e wyst¡pi¢ w generowanym sªowie j¦zyka. Oznaczany
jest N lub V . W praktyce jest to symbol otoczony nawiasami k¡towymi w notacji BNF. Przykªad
<wyrazenie> ::= a|b
Gramatyka formalna
Jest to sposób opisu j¦zyka formalnego, czyli podzbioru wszystkich sªów nad danym alfabetem.
Symbol gramatyki:
G = (N, T, P, S), S ∈ N
gdzie N to symbole nieterminalne, T - terminale, P - produkcje oraz S - symbol startowy (korze«
drzewa rozbioru).
Zadanie 2
Mamy <operator> ::= +|-|*|/, <zmienna> ::= a|b|...|z|. Napisa¢ symbol pocz¡tkowy (pro-
dukcja wyra»enia).
Zadanie 3
Zbuduj drzewo rozbioru dla sªowa a + b + c ∈ L z poprzedniego alfabetu.
2
Dla naszej gramatyki nie jest to jedyne drzewo rozbioru. Mo»na je przedstawi¢ równie» jako
Gramatyka niejednoznaczna
Jest to gramatyka, w której istnieje sªowo, które posiada wi¦cej ni» jedno drzewo rozbioru.
Gramatyka jednoznaczna
Jest to gramatyka w której ka»de sªowo posiada dokªadnie jedno drzewo rozbioru.
Priorytet operacji mo»na odczyta¢ z drzewa. Im operator wa»niejszy (wi¦kszy priorytet) tym dalej
znajduje si¦ od korzenia (ni»ej jest). Nasze drzewo nie zachowuje równie» priorytetów poniewa»
val(a + b + c) = val((a + b) + c) wi¦c priorytety dodawania liczy si¦ od lewej strony, a jak wida¢ w
drugim drzewie jest na odwrót.
Zadanie 4
Poprawi¢ omawian¡ gramatyk¦, tak aby byªa jednoznaczna i zachowywaªa priorytety dziaªa« (w
tym nawiasy).
<add> ::= +|-
<mul> ::= *|/