Lingwistyka Matematyczna

26
ingwistyka Matematyczna gr inż. Michał Jaros Lingwistyka Matematyczna wykład 4

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

Transcript of Lingwistyka Matematyczna

Page 1: Lingwistyka Matematyczna

Lingwistyka Matematyczna

Mgr inż. Michał Jaros

Lingwistyka Matematyczna

wykład 4

Page 2: Lingwistyka Matematyczna

Lingwistyka Matematyczna

Agenda• Kompilacja• Drzewo wyprowadzeń• Gramatyka z translacją• Podsumowanie• Q&A

2008-04-13 Mgr inż. Michał Jaros 2

Page 3: Lingwistyka Matematyczna

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

Page 4: Lingwistyka Matematyczna

Lingwistyka Matematyczna

2008-04-13 Mgr inż. Michał Jaros 4

Page 5: Lingwistyka Matematyczna

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

Page 6: Lingwistyka Matematyczna

Lingwistyka Matematyczna

KompilacjaŚrodek kompilatora (z ang. „middle end”)• Generacja kodu pośredniego– Ogólna optymalizacja

2008-04-13 Mgr inż. Michał Jaros 6

Page 7: Lingwistyka Matematyczna

Lingwistyka Matematyczna

KompilacjaTył kompilatora (z ang. „back end”)• Optymalizacja kodu• Generacja kodu wynikowego

2008-04-13 Mgr inż. Michał Jaros 7

Page 8: Lingwistyka Matematyczna

Lingwistyka Matematyczna

Kompilacja

2008-04-13 Mgr inż. Michał Jaros 8

Page 9: Lingwistyka Matematyczna

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

Page 10: Lingwistyka Matematyczna

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

Page 11: Lingwistyka Matematyczna

Lingwistyka Matematyczna

Drzewo wyprowadzeńS::=SAB;|AB;A::=typeB::=B,C|CC::=id

2008-04-13 Mgr inż. Michał Jaros 11

Page 12: Lingwistyka Matematyczna

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

Page 13: Lingwistyka Matematyczna

Lingwistyka Matematyczna

Drzewo wyprowadzeń

id+id*id

2008-04-13 Mgr inż. Michał Jaros 13

Page 14: Lingwistyka Matematyczna

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

Page 15: Lingwistyka Matematyczna

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

Page 16: Lingwistyka Matematyczna

Lingwistyka Matematyczna

Drzewo wyprowadzeń

2008-04-13 Mgr inż. Michał Jaros 16

if W then if W then S else S

Page 17: Lingwistyka Matematyczna

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

Page 18: Lingwistyka Matematyczna

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

Page 19: Lingwistyka Matematyczna

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

Page 20: Lingwistyka Matematyczna

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

Page 21: Lingwistyka Matematyczna

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

Page 22: Lingwistyka Matematyczna

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

Page 23: Lingwistyka Matematyczna

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

Page 24: Lingwistyka Matematyczna

Lingwistyka Matematyczna

Podsumowanie

• Kompilacja

• Drzewo wyprowadzeń

• Gramatyka z translacją

2008-04-13 Mgr inż. Michał Jaros 24

Page 25: Lingwistyka Matematyczna

Lingwistyka Matematyczna

Q&A

2008-04-13 Mgr inż. Michał Jaros 25

Page 26: Lingwistyka Matematyczna

Lingwistyka Matematyczna

KONIEC

2008-04-13 Mgr inż. Michał Jaros 26