Lingwistyka Matematyczna wykład 4
Gramatyka z translacją Podsumowanie Q&A Agenda Kompilacja Drzewo wyprowadzeń Gramatyka z translacją Podsumowanie Q&A 2008-04-13 Mgr inż. Michał Jaros
W kompilacji zastosowanie mają: 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
2008-04-13 Mgr inż. Michał Jaros
Kompilacja 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 2008-04-13 Mgr inż. Michał Jaros
Środek kompilatora (z ang. „middle end”) Generacja kodu pośredniego Kompilacja Środek kompilatora (z ang. „middle end”) Generacja kodu pośredniego Ogólna optymalizacja 2008-04-13 Mgr inż. Michał Jaros
Tył kompilatora (z ang. „back end”) Optymalizacja kodu Kompilacja Tył kompilatora (z ang. „back end”) Optymalizacja kodu Generacja kodu wynikowego 2008-04-13 Mgr inż. Michał Jaros
Kompilacja 2008-04-13 Mgr inż. Michał Jaros
Kody pośrednie dla różnych języków Kompilacja Kody pośrednie dla różnych języków Kod źródłowy Kod pośredni Pacal P-code Ada Diana Java JVM C# .NET CIL 2008-04-13 Mgr inż. Michał Jaros
Korzeń = Symbol początkowy Gałęzie = Symbole pomocnicze 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
Drzewo wyprowadzeń S::=SAB;|AB; A::=type B::=B,C|C C::=id 2008-04-13 Mgr inż. Michał Jaros
Niejednoznaczność składni Drzewo wyprowadzeń Niejednoznaczność składni Zdanie ma więcej niż jedno drzewo wyprowadzeń. S::=E E::=E+E|E*E|(E)|id id+id*id 2008-04-13 Mgr inż. Michał Jaros
Drzewo wyprowadzeń id+id*id 2008-04-13 Mgr inż. Michał Jaros
S::=C C::=D+C|D D::=E*D|E E::=(C)|id id+id*id Drzewo wyprowadzeń S::=C C::=D+C|D D::=E*D|E E::=(C)|id id+id*id 2008-04-13 Mgr inż. Michał Jaros
Przypadek rzeczywisty Drzewo wyprowadzeń Przypadek rzeczywisty Niejednoznaczność instrukcji warunkowej if-else w językach C oraz Pascal S::=ε | stmt | if W then SL | if W then SL else SL SL::=SL;S | S Pascal 2008-04-13 Mgr inż. Michał Jaros
if W then if W then S else S Drzewo wyprowadzeń if W then if W then S else S 2008-04-13 Mgr inż. Michał Jaros
Problem Rozwiązanie Drzewo wyprowadzeń 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
Drzewo wyprowadzeń Eliminacja niejednoznaczności instrukcji warunkowej if-else w języku Modula-2. Analogiczne rozwiązanie w VisualBasic. S::=ε | stmt | if W then SL end | if W then SL else SL end SL::=SL;S | S Modula-2 2008-04-13 Mgr inż. Michał Jaros
if W then if W then S else S Modula-2 Drzewo wyprowadzeń Pascal if W then if W then S else S Modula-2 if W then if W then S else S end end if W then if W then S end else S end 2008-04-13 Mgr inż. Michał Jaros
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
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 ::= w | x | y | z 2008-04-13 Mgr inż. Michał Jaros
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
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
Gramatyka z translacją Podsumowanie Kompilacja Drzewo wyprowadzeń Gramatyka z translacją 2008-04-13 Mgr inż. Michał Jaros
Q&A 2008-04-13 Mgr inż. Michał Jaros
KONIEC 2008-04-13 Mgr inż. Michał Jaros