Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Lingwistyka Matematyczna
wykład 4
2
Gramatyka z translacją Podsumowanie Q&A
Agenda Kompilacja Drzewo wyprowadzeń Gramatyka z translacją Podsumowanie Q&A Mgr inż. Michał Jaros
3
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 Mgr inż. Michał Jaros
4
Mgr inż. Michał Jaros
5
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 Mgr inż. Michał Jaros
6
Środek kompilatora (z ang. „middle end”) Generacja kodu pośredniego
Kompilacja Środek kompilatora (z ang. „middle end”) Generacja kodu pośredniego Ogólna optymalizacja Mgr inż. Michał Jaros
7
Tył kompilatora (z ang. „back end”) Optymalizacja kodu
Kompilacja Tył kompilatora (z ang. „back end”) Optymalizacja kodu Generacja kodu wynikowego Mgr inż. Michał Jaros
8
Kompilacja Mgr inż. Michał Jaros
9
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 Mgr inż. Michał Jaros
10
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 Mgr inż. Michał Jaros
11
Drzewo wyprowadzeń S::=SAB;|AB; A::=type B::=B,C|C C::=id 2008-04-13
Mgr inż. Michał Jaros
12
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 Mgr inż. Michał Jaros
13
Drzewo wyprowadzeń id+id*id Mgr inż. Michał Jaros
14
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 Mgr inż. Michał Jaros
15
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 Mgr inż. Michał Jaros
16
if W then if W then S else S
Drzewo wyprowadzeń if W then if W then S else S Mgr inż. Michał Jaros
17
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 Mgr inż. Michał Jaros
18
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 Mgr inż. Michał Jaros
19
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 Mgr inż. Michał Jaros
20
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 Mgr inż. Michał Jaros
21
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 Mgr inż. Michał Jaros
22
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 Mgr inż. Michał Jaros
23
Gramatyka z translacją
Notacja wrostkowa Notacja przyrostkowa (ONP) x+y xy+ (xy)+z xyz+ x (y+z) xyz+ x*(y+z)*w xyz+*w* Mgr inż. Michał Jaros
24
Gramatyka z translacją
Podsumowanie Kompilacja Drzewo wyprowadzeń Gramatyka z translacją Mgr inż. Michał Jaros
25
Q&A Mgr inż. Michał Jaros
26
KONIEC Mgr inż. Michał Jaros
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.