ingwistyka Matematyczna gr inż. Michał Jaros Lingwistyka Matematyczna wykład 4
Jan 03, 2016
Lingwistyka Matematyczna
Mgr inż. Michał Jaros
Lingwistyka Matematyczna
wykład 4
Lingwistyka Matematyczna
Agenda• Kompilacja• Drzewo wyprowadzeń• Gramatyka z translacją• Podsumowanie• Q&A
2008-04-13 Mgr inż. Michał Jaros 2
Lingwistyka Matematyczna
Kompilacja• Kompilacja– Tłumaczenie kodu napisane w jednym języku na drugi– Sprawdzanie poprawności kodu
• W kompilacji zastosowanie mają:– Lingwistyka matematyczna– Języki formalne
2008-04-13 Mgr inż. Michał Jaros 3
Lingwistyka Matematyczna
2008-04-13 Mgr inż. Michał Jaros 4
Lingwistyka Matematyczna
Kompilacja
2008-04-13 Mgr inż. Michał Jaros 5
Przód kompilatora (z ang. „front end”)• Analiza leksykalna– Tokenizacja kodu źródłowego– Utworzenie tablicy symboli
• Analiza Składniowa– Utworzenie drzewa wyprowadzeń– Sprawdzenie poprawności gramatycznej
• Analiza semantyczna– Sprawdzanie sensu (sprawdzanie typów, ...)– Uzupełnienie tablicy symboli
Lingwistyka Matematyczna
KompilacjaŚrodek kompilatora (z ang. „middle end”)• Generacja kodu pośredniego– Ogólna optymalizacja
2008-04-13 Mgr inż. Michał Jaros 6
Lingwistyka Matematyczna
KompilacjaTył kompilatora (z ang. „back end”)• Optymalizacja kodu• Generacja kodu wynikowego
2008-04-13 Mgr inż. Michał Jaros 7
Lingwistyka Matematyczna
Kompilacja
2008-04-13 Mgr inż. Michał Jaros 8
Lingwistyka Matematyczna
KompilacjaKody pośrednie dla różnych języków
2008-04-13 Mgr inż. Michał Jaros 9
Kod źródłowy Kod pośredniPacal P-codeAda DianaJava JVM
C# .NET CIL
Lingwistyka Matematyczna
Drzewo wyprowadzeńDrzewo wyprowadzeń• Hierarchiczna struktura graficznie
reprezentująca wyprowadzenie zdania z gramatyki
• Korzeń = Symbol początkowy• Gałęzie = Symbole pomocnicze• Liście = Symbole końcowe• Struktura gałęzi = Produkcje
2008-04-13 Mgr inż. Michał Jaros 10
Lingwistyka Matematyczna
Drzewo wyprowadzeńS::=SAB;|AB;A::=typeB::=B,C|CC::=id
2008-04-13 Mgr inż. Michał Jaros 11
Lingwistyka Matematyczna
Drzewo wyprowadzeńNiejednoznaczność składni• Zdanie ma więcej niż jedno drzewo
wyprowadzeń.
S::=EE::=E+E|E*E|(E)|id
id+id*id
2008-04-13 Mgr inż. Michał Jaros 12
Lingwistyka Matematyczna
Drzewo wyprowadzeń
id+id*id
2008-04-13 Mgr inż. Michał Jaros 13
Lingwistyka Matematyczna
Drzewo wyprowadzeńS::=CC::=D+C|DD::=E*D|EE::=(C)|id
id+id*id
2008-04-13 Mgr inż. Michał Jaros 14
Lingwistyka Matematyczna
Drzewo wyprowadzeńPrzypadek rzeczywisty• Niejednoznaczność instrukcji warunkowej
if-else w językach C oraz Pascal
2008-04-13 Mgr inż. Michał Jaros 15
S::=ε| stmt| if W then SL| if W then SL else SL
SL::=SL;S | S
S::=ε| stmt| if W then SL| if W then SL else SL
SL::=SL;S | S
Pascal
Lingwistyka Matematyczna
Drzewo wyprowadzeń
2008-04-13 Mgr inż. Michał Jaros 16
if W then if W then S else S
Lingwistyka Matematyczna
Drzewo wyprowadzeń
Problem• Niejednoznaczność if-else• Języki programowania Pascal i C
Rozwiązanie• Słowo kluczowe else jest kojarzone z najbliżej
występującym słowem kluczowym if
2008-04-13 Mgr inż. Michał Jaros 17
Lingwistyka Matematyczna
Drzewo wyprowadzeńEliminacja niejednoznaczności instrukcji
warunkowej if-else w języku Modula-2.Analogiczne rozwiązanie w VisualBasic.
2008-04-13 Mgr inż. Michał Jaros 18
S::=ε| stmt| if W then SL end| if W then SL else SL end
SL::=SL;S | S
S::=ε| stmt| if W then SL end| if W then SL else SL end
SL::=SL;S | S
Modula-2
Lingwistyka Matematyczna
Drzewo wyprowadzeńPascal• if W then if W then S else S
Modula-21. if W then if W then S else S end end
2. if W then if W then S end else S end
2008-04-13 Mgr inż. Michał Jaros 19
Lingwistyka Matematyczna
Gramatyka z translacjąTranslacja sterowana składnią• Gramatyka bezkontekstowa• Zbiór terminali uzupełniony dodatkowymi
symbolami (symbole translacji)• Symbole translacji generują dodatkowe słowo
wyjściowe
2008-04-13 Mgr inż. Michał Jaros 20
Lingwistyka Matematyczna
Gramatyka z translacjąS ::= E
E ::= T El
El ::= +T El | -T El | ε
T ::= F Tl
Tl ::= * F Tl | / F Tl | ε
F ::= - F | (E) | idid ::= w | x | y | z
2008-04-13 Mgr inż. Michał Jaros 21
Lingwistyka Matematyczna
Gramatyka z translacjąS ::= E
E ::= T El
El ::= +T {+} El | -T {-} El | ε
T ::= F Tl
Tl ::= * F {*} Tl | / F {/} Tl | ε
F ::= - F {-} | (E) | id {id}id ::= w | x | y | z
2008-04-13 Mgr inż. Michał Jaros 22
Lingwistyka Matematyczna
Gramatyka z translacją
Notacja wrostkowa Notacja przyrostkowa (ONP)
x+y xy+(xy)+z xyz+x (y+z) xyz+
x*(y+z)*w xyz+*w*
2008-04-13 Mgr inż. Michał Jaros 23
Lingwistyka Matematyczna
Podsumowanie
• Kompilacja
• Drzewo wyprowadzeń
• Gramatyka z translacją
2008-04-13 Mgr inż. Michał Jaros 24
Lingwistyka Matematyczna
Q&A
2008-04-13 Mgr inż. Michał Jaros 25
Lingwistyka Matematyczna
KONIEC
2008-04-13 Mgr inż. Michał Jaros 26