Uproszczony schemat działania kompilatora

Podobne dokumenty
Uproszczony schemat działania kompilatora

Włączenie analizy leksykalnej do analizy składniowej jest nietrudne; po co więc jest wydzielona?

Analiza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analizator syntaktyczny

Metody Kompilacji Wykład 7 Analiza Syntaktyczna

Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT

Zadanie analizy leksykalnej

Gramatyka operatorowa

Metody Kompilacji Wykład 3

Plan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk

Wykład 5. Jan Pustelnik

Metody Kompilacji Wykład 1 Wstęp

Metodologie programowania

10. Translacja sterowana składnią i YACC

Analiza semantyczna. Gramatyka atrybutywna

Program We Kompilator Wy Źródłowy

Wprowadzenie do analizy składniowej. Bartosz Bogacki.

Efektywna analiza składniowa GBK

Matematyczne Podstawy Informatyki

Parsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki

Analiza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki

Gramatyki atrybutywne

Translacja wprowadzenie

Analiza metodą zstępującą. Bartosz Bogacki.

Metody Kompilacji Wykład 13

Języki formalne i automaty Ćwiczenia 2

Obiektowa implementacja parsera klasy LL(1)

Języki formalne i automaty Ćwiczenia 8

Algorytmy zwiazane z gramatykami bezkontekstowymi

Wykład 10. Translacja sterowana składnią

Definiowanie języka przez wyrażenie regularne(wr)

JAO - lematy o pompowaniu dla jezykow bezkontekstowy

Gramatyki rekursywne

Gramatyki wykorzystywane w analizie języka naturalnego

GRAMATYKI BEZKONTEKSTOWE

Wprowadzenie do kompilatorów

JIP. Analiza składni, gramatyki






















0.1 Lewostronna rekurencja

Teoretyczne podstawy informatyki. Wykład 12: Gramatyki. E. Richter-Was 1

3.4. Przekształcenia gramatyk bezkontekstowych

MATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis

Opis wzorców polegający na na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang. contex-free grammar).

Semantyka i Weryfikacja Programów - Laboratorium 6

Gramatyka TAG dla języka polskiego

11 Probabilistic Context Free Grammars

Przyczyny dwustopniowego tłumaczenia

Podstawy generatora YACC. Bartosz Bogacki.

JAO - Wprowadzenie do Gramatyk bezkontekstowych

Gramatyki regularne i automaty skoczone

Przegląd metod error recovery (dla parsingu top-down, przykłady)

Analiza leksykalna i generator LEX

Podstawy programowania

Generatory analizatorów

Języki formalne i automaty Ćwiczenia 4

Wybrane narzędzia do tworzenia analizatorów leksykalnych i składniowych w C/C++ by Kapitol Team

Parsery wykorzystywane w analizie języka naturalnego

Języki programowania zasady ich tworzenia

JĘZYKIFORMALNE IMETODYKOMPILACJI

Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań

Języki formalne i automaty Ćwiczenia 9

KONSTRUKCJA KOMPILATORÓW

Perl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML

Języki, automaty i obliczenia

SYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17

Forma. Główny cel kursu. Umiejętności nabywane przez studentów. Wymagania wstępne:

ZAAWANSOWANE JĘZYKI PROGRAMOWANIA

Wizualizacja wyników analizy syntaktycznej

Wprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy

Języki i gramatyki formalne

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

Mikroinformatyka. Wielozadaniowość

Rozbiór wstępujący gramatyki z pierwszeństwem. Rozbiór wstępujący gramatyki z pierwszeństwem

Hierarchia Chomsky ego Maszyna Turinga

Podstawy Informatyki Języki programowania c.d.

Wykład 11. Konstrukcja drzew składniowych

Generator YACC: gramatyki niejednoznaczne

Konstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.

ZYKI BEZKONTEKSTOWE (KLASA

Programowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]

Transkrypt:

Wykład7,13XI2009,str.1 Uproszczony schemat działania kompilatora program źródłowy ciąg leksemów drzewo wywodu drzewo i tablice symboli analiza leksykalna analiza syntaktyczna analiza semantyczna KOMPILATOR generacja kodu dane do programu kod docelowy wyniki

Wykład7,13XI2009,str.1 Uproszczony schemat działania kompilatora ciąg leksemów drzewo wywodu analiza syntaktyczna KOMPILATOR

Różne metody analizy syntaktycznej Wykład7,13XI2009,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej.

Różne metody analizy syntaktycznej Wykład7,13XI2009,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej. Synonimy: rozbiór = analiza syntaktyczna = parsing.

Różne metody analizy syntaktycznej Wykład7,13XI2009,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej. Synonimy: rozbiór = analiza syntaktyczna = parsing. Parser program(procedura, podprogram) dokonujący rozbioru.

Różne metody analizy syntaktycznej Wykład7,13XI2009,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej. Synonimy: rozbiór = analiza syntaktyczna = parsing. Parser program(procedura, podprogram) dokonujący rozbioru. Budowy drzewa wywodu można dokonywać albo od strony korzenia(rozbiór zstępujący), albo od strony liści(rozbiór wstępujący).

Różne metody analizy syntaktycznej Wykład7,13XI2009,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej. Synonimy: rozbiór = analiza syntaktyczna = parsing. Parser program(procedura, podprogram) dokonujący rozbioru. Budowy drzewa wywodu można dokonywać albo od strony korzenia(rozbiór zstępujący), albo od strony liści(rozbiór wstępujący). Jest wiele metod rozbioru danego słowa; różnią się zakresem stosowalności(do jakich rodzajów gramatyk bezkontekstowych się nadają)

Różne metody analizy syntaktycznej Wykład7,13XI2009,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej. Synonimy: rozbiór = analiza syntaktyczna = parsing. Parser program(procedura, podprogram) dokonujący rozbioru. Budowy drzewa wywodu można dokonywać albo od strony korzenia(rozbiór zstępujący), albo od strony liści(rozbiór wstępujący). Jest wiele metod rozbioru danego słowa; różnią się zakresem stosowalności(do jakich rodzajów gramatyk bezkontekstowych się nadają), oraz efektywnością(jak szybko działają i ile potrzebują pamięci).

Różne metody analizy syntaktycznej Wykład7,13XI2009,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej. Synonimy: rozbiór = analiza syntaktyczna = parsing. Parser program(procedura, podprogram) dokonujący rozbioru. Budowy drzewa wywodu można dokonywać albo od strony korzenia(rozbiór zstępujący), albo od strony liści(rozbiór wstępujący). Jest wiele metod rozbioru danego słowa; różnią się zakresem stosowalności(do jakich rodzajów gramatyk bezkontekstowych się nadają), oraz efektywnością(jak szybko działają i ile potrzebują pamięci). Programy do automatycznego tworzenia parserów potrafią na ogół dobrać optymalny(albo przynajmniej niezły) parser do danej gramatyki.

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A,której wywołanie powoduje albo przeczytanie z wejścia najdłuższego ciągu w terminali, takiego że A w,orazskonstruowaniedrzewawywodusłowawznieterminalu A

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A,której wywołanie powoduje albo przeczytanie z wejścia najdłuższego ciągu w terminali, takiego że A w,orazskonstruowaniedrzewawywodusłowawznieterminalu A, albo sygnalizację błędu

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A,której wywołanie powoduje albo przeczytanie z wejścia najdłuższego ciągu w terminali, takiego że A w,orazskonstruowaniedrzewawywodusłowawznieterminalu A, albo sygnalizację błędu; funkcjaf A jestdefiniowanawedługprodukcjigramatycznychznieterminalu A

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A,której wywołanie powoduje albo przeczytanie z wejścia najdłuższego ciągu w terminali, takiego że A w,orazskonstruowaniedrzewawywodusłowawznieterminalu A, albo sygnalizację błędu; funkcjaf A jestdefiniowanawedługprodukcjigramatycznychznieterminalu A każdemu terminalowi występującemu w produkcji odpowiada sprawdzenie, czy na wejściu pojawia się ten właśnie terminal, i przeczytanie go z wejścia

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A,której wywołanie powoduje albo przeczytanie z wejścia najdłuższego ciągu w terminali, takiego że A w,orazskonstruowaniedrzewawywodusłowawznieterminalu A, albo sygnalizację błędu; funkcjaf A jestdefiniowanawedługprodukcjigramatycznychznieterminalu A każdemu terminalowi występującemu w produkcji odpowiada sprawdzenie, czy na wejściu pojawia się ten właśnie terminal, i przeczytanie go z wejścia, każdemu nieterminalowi B występującemu w produkcji odpowiada wywołaniefunkcjif B

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A,której wywołanie powoduje albo przeczytanie z wejścia najdłuższego ciągu w terminali, takiego że A w,orazskonstruowaniedrzewawywodusłowawznieterminalu A, albo sygnalizację błędu; funkcjaf A jestdefiniowanawedługprodukcjigramatycznychznieterminalu A każdemu terminalowi występującemu w produkcji odpowiada sprawdzenie, czy na wejściu pojawia się ten właśnie terminal, i przeczytanie go z wejścia, każdemu nieterminalowi B występującemu w produkcji odpowiada wywołaniefunkcjif B, dojściu do końca produkcji odpowiada skonstruowanie drzewa z mniejszych drzew dostarczonych przez te wszystkie wywołania

Rekursywny parser zstępujący Wykład7,13XI2009,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A,której wywołanie powoduje albo przeczytanie z wejścia najdłuższego ciągu w terminali, takiego że A w,orazskonstruowaniedrzewawywodusłowawznieterminalu A, albo sygnalizację błędu; funkcjaf A jestdefiniowanawedługprodukcjigramatycznychznieterminalu A każdemu terminalowi występującemu w produkcji odpowiada sprawdzenie, czy na wejściu pojawia się ten właśnie terminal, i przeczytanie go z wejścia, każdemu nieterminalowi B występującemu w produkcji odpowiada wywołaniefunkcjif B, dojściu do końca produkcji odpowiada skonstruowanie drzewa z mniejszych drzew dostarczonych przez te wszystkie wywołania, niezgodności terminalu w produkcji i na wejściu oraz błędowi przy wywołaniu funkcjif B odpowiadapróbaprzejściadonastępnejprodukcjiztegonieterminalu przy tym nie można cofnąć już wczytanych terminali z wejścia.