Lingwistyka Matematyczna

Preview:

DESCRIPTION

Lingwistyka Matematyczna. wykład 4. Agenda. Kompilacja Drzewo wyprowadzeń Gramatyka z translacją Podsumowanie Q&A. Kompilacja. Kompilacja Tłumaczenie kodu napisane w jednym języku na drugi Sprawdzanie poprawności kodu W kompilacji zastosowanie mają: Lingwistyka matematyczna - PowerPoint PPT Presentation

Citation preview

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

Recommended