Uproszczony schemat działania kompilatora
|
|
- Michalina Maria Kołodziejczyk
- 7 lat temu
- Przeglądów:
Transkrypt
1 Uproszczony schemat działania kompilatora Wykład7,str.1 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
2 Uproszczony schemat działania kompilatora Wykład7,str.1 ciąg leksemów drzewo wywodu analiza syntaktyczna KOMPILATOR
3 Różne metody analizy syntaktycznej Wykład7,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej.
4 Różne metody analizy syntaktycznej Wykład7,str.2 Rozbiór słowa budowanie jego drzewa wywodu w danej gramatyce bezkontekstowej. Synonimy: rozbiór = analiza syntaktyczna = parsing.
5 Różne metody analizy syntaktycznej Wykład7,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.
6 Różne metody analizy syntaktycznej Wykład7,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).
7 Różne metody analizy syntaktycznej Wykład7,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ą)
8 Różne metody analizy syntaktycznej Wykład7,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).
9 Różne metody analizy syntaktycznej Wykład7,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.
10 Rekursywny parser zstępujący Wykład7,str.3 na wejściu mamy ciąg terminali
11 Rekursywny parser zstępujący Wykład7,str.3 na wejściu mamy ciąg terminali; każdemunieterminalowi A gramatykiodpowiadafunkcjarekursywnaf A,której wywołanie powoduje
12 Rekursywny parser zstępujący Wykład7,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
13 Rekursywny parser zstępujący Wykład7,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
14 Rekursywny parser zstępujący Wykład7,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
15 Rekursywny parser zstępujący Wykład7,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
16 Rekursywny parser zstępujący Wykład7,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
17 Rekursywny parser zstępujący Wykład7,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
18 Rekursywny parser zstępujący Wykład7,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.
19 Wykład7,str.4 Przekształcenie gramatyki dla parsera zstępującego Zmiana kolejności produkcji i wyłączenie przed nawias
20 Wykład7,str.4 Przekształcenie gramatyki dla parsera zstępującego Zmiana kolejności produkcji i wyłączenie przed nawias : S + W W ::= S S S - W S ::= C C * S C C / S C ::= L ( W ) L ::= L 1 L W ::= S { + W S ::= C { * S C ::= ( W ) L ::= 0 { L 1 { L L λ } λ } - W / S λ } λ }
21 Wykład7,str.4 Przekształcenie gramatyki dla parsera zstępującego Zmiana kolejności produkcji i wyłączenie przed nawias : W ::= S S S + W S - W S ::= C C * S C C / S C ::= L ( W ) L ::= L 1 L W ::= S { + W S ::= C { * S C ::= ( W ) L ::= 0 { L 1 { L L λ } λ } - W / S λ } λ }
22 Wykład7,str.4 Przekształcenie gramatyki dla parsera zstępującego Zmiana kolejności produkcji i wyłączenie przed nawias : W ::= S S S + W S - W S ::= C C * S C C / S C ::= L ( W ) L ::= L 1 L W ::= S { + W S ::= C { * S C ::= ( W ) L ::= 0 { L 1 { L L λ } λ } - W / S λ } λ }
23 Wykład7,str.4 Przekształcenie gramatyki dla parsera zstępującego Zmiana kolejności produkcji i wyłączenie przed nawias : W ::= S S S + W S - W S ::= C C * S C C / S C ::= L ( W ) L ::= L 1 L W ::= S { + W S ::= C { * S C ::= ( W ) L ::= 0 { L 1 { L L λ } λ } - W / S λ } λ }
24 Wykład7,str.4 Przekształcenie gramatyki dla parsera zstępującego Zmiana kolejności produkcji i wyłączenie przed nawias : W ::= S S S + W S - W S ::= C C * S C C / S C ::= L ( W ) L ::= L 1 L W ::= S { + W S ::= C { * S C ::= ( W ) L ::= 0 { L 1 { L L λ } λ } - W / S λ } λ }
25 Programowanie parsera zstępującego W ::= S { + W - W λ } Wykład7,str.5
26 Programowanie parsera zstępującego W ::= S { + W - W λ } Wykład7,str.5 drzewof W () { t 1 =f S (); if(wejście== + ) { nastleks();t 2 =f W (); return(drzewozrobionezt 1,+,t 2 ) }else if(wejście== - ) { nastleks();t 2 =f W (); return(drzewozrobionezt 1,,t 2 ) } elsereturn(drzewozrobionezt 1 ) }
27 Programowanie parsera zstępującego W ::= S { + W - W λ } Wykład7,str.5 drzewof W () { t 1 =f S (); if(wejście== + ) { nastleks();t 2 =f W (); return(drzewozrobionezt 1,+,t 2 ) }else if(wejście== - ) { nastleks();t 2 =f W (); return(drzewozrobionezt 1,,t 2 ) } elsereturn(drzewozrobionezt 1 ) }
28 Programowanie parsera zstępującego W ::= S { + W - W λ } Wykład7,str.5 drzewof W () { t 1 =f S (); if(wejście== + ) { nastleks();t 2 =f W (); return(drzewozrobionezt 1,+,t 2 ) }else if(wejście== - ) { nastleks();t 2 =f W (); return(drzewozrobionezt 1,,t 2 ) } elsereturn(drzewozrobionezt 1 ) }
29 Programowanie parsera zstępującego W ::= S { + W - W λ } Wykład7,str.5 drzewof W () { t 1 =f S (); if(wejście== + ) { nastleks();t 2 =f W (); return(drzewozrobionezt 1,+,t 2 ) }else if(wejście== - ) { nastleks();t 2 =f W (); return(drzewozrobionezt 1,,t 2 ) } elsereturn(drzewozrobionezt 1 ) } Uwaga: To jeszcze nie jest dokładnie to, co trzeba. Patrz dalej.
Uproszczony schemat działania kompilatora
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
Bardziej szczegółowoWłączenie analizy leksykalnej do analizy składniowej jest nietrudne; po co więc jest wydzielona?
Po co wydziela się analizę leksykalną? Wykład7,str1 Włączenie analizy leksykalnej do analizy składniowej jest nietrudne; po co więc jest wydzielona? 1 Analiza leksykalna jest prostsza niż składniowa leksyka
Bardziej szczegółowoMetody Kompilacji Wykład 7 Analiza Syntaktyczna
Metody Kompilacji Wykład 7 Analiza Syntaktyczna Parsowanie Parsowanie jest to proces określenia jak ciąg terminali może być generowany przez gramatykę. Włodzimierz Bielecki WI ZUT 2/57 Parsowanie Dla każdej
Bardziej szczegółowoAnaliza leksykalna 1. Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych (tokenów)
Bardziej szczegółowoAnalizator syntaktyczny
Analizator syntaktyczny program źródłowy analizator leksykalny token daj nast. token analizator syntaktyczny drzewo rozbioru syntaktycznego analizator semantyczny kod pośredni tablica symboli Analizator
Bardziej szczegółowoMetody Kompilacji Wykład 8 Analiza Syntaktyczna cd. Włodzimierz Bielecki WI ZUT
Metody Kompilacji Wykład 8 Analiza Syntaktyczna cd Analiza Syntaktyczna Wstęp Parser dostaje na wejściu ciąg tokenów od analizatora leksykalnego i sprawdza: czy ciąg ten może być generowany przez gramatykę.
Bardziej szczegółowoMetodologie programowania
Co kształtuje języki programowania? Wykład2,str.1 Metodologie programowania Koszty obliczeń: 1980 1960:sprzętdrogi,a wysiłek programistów niewielki 1970: sprzęt coraz tańszy, a programowane problemy coraz
Bardziej szczegółowoWykład 5. Jan Pustelnik
Wykład 5 Jan Pustelnik Konstruowanie parsera Istnieje kilka podstawowych metod konstrukcji parsera bez nawracania Ze względów wydajnościowych parser bez nawracania jest jedynym sensownym rozwiązaniem (prawo
Bardziej szczegółowoMetody Kompilacji Wykład 3
Metody Kompilacji Wykład 3 odbywa się poprzez dołączenie zasad(reguł) lub fragmentów kodu do produkcji w gramatyce. Włodzimierz Bielecki WI ZUT 2 Na przykład, dla produkcji expr -> expr 1 + term możemy
Bardziej szczegółowoZadanie analizy leksykalnej
Analiza leksykalna 1 Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Przykład: We: COST := ( PRICE + TAX ) * 0.98 Wy: id 1 := ( id 2 + id 3 ) * num 4 Tablica symboli:
Bardziej szczegółowoGramatyka operatorowa
Gramatyki z pierwszeństwem operatorów Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyka operatorowa Definicja: G = G BK jest gramatyką operatorową (i) (ii) G jest gramatyką
Bardziej szczegółowoMetody Kompilacji Wykład 1 Wstęp
Metody Kompilacji Wykład 1 Wstęp Literatura: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Compilers: Princiles, Techniques, and Tools. Addison-Wesley 1986, ISBN 0-201-10088-6 Literatura: Alfred V. Aho,
Bardziej szczegółowo10. Translacja sterowana składnią i YACC
10. Translacja sterowana składnią i YACC 10.1 Charakterystyka problemu translacja sterowana składnią jest metodą generacji przetworników tekstu języków, których składnię opisano za pomocą gramatyki (bezkontekstowej)
Bardziej szczegółowoPlan wykładu. Kompilatory. Literatura. Translatory. Literatura Translatory. Paweł J. Matuszyk
Plan wykładu (1) Paweł J. Matuszyk AGH Kraków 1 2 tor leksykalny tor syntaktyczny Generator pośredniego Generator wynikowego Hopcroft J. E., Ullman J. D., Wprowadzenie do teorii automatów, języków i obliczeń,
Bardziej szczegółowoParsery LL(1) Teoria kompilacji. Dr inż. Janusz Majewski Katedra Informatyki
Parsery LL() Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy generacyjnej (zstępującej, top-down) symbol początkowy już terminale wyprowadzenie lewostronne pierwszy od lewej
Bardziej szczegółowoWprowadzenie do analizy składniowej. Bartosz Bogacki.
Wprowadzenie do analizy składniowej Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy wprowadzenia do analizy składniowej. Zapraszam serdecznie
Bardziej szczegółowoDefiniowanie języka przez wyrażenie regularne(wr)
Wykład3,str1 Definiowanie języka przez wyrażenie regularne(wr) DEFINICJA: (wyrażenia regularne) M(specjalneznakinienależącedoalfabetu:{,},, ) literyalfabetusąwr złożeniawrsąwr: jeśliw 1 iw 2 sąwr,to{w
Bardziej szczegółowoMatematyczne Podstawy Informatyki
Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Gramatyki bezkontekstowe I Gramatyką bezkontekstową
Bardziej szczegółowoAnaliza semantyczna. Gramatyka atrybutywna
Analiza semantyczna Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji na temat składni języka podlegającego tłumaczeniu, translator musi posiadać możliwość korzystania z wielu innych informacji
Bardziej szczegółowoProgram We Kompilator Wy Źródłowy
1. Aho A.V., Ullman J.D. - The Theory of Parsing, Translation and Compiling.1972. 2. Foster J.M. - Automatyczna analiza składniowa. 1976 3. Gries D. - Konstrukcja translatorów dla maszyn cyfrowych, 1984
Bardziej szczegółowoAnaliza leksykalna 1. Języki formalne i automaty. Dr inż. Janusz Majewski Katedra Informatyki
Analiza leksykalna 1 Języki formalne i automaty Dr inż. Janusz Majewski Katedra Informatyki Zadanie analizy leksykalnej Kod źródłowy (ciąg znaków) Analizator leksykalny SKANER Ciąg symboli leksykalnych
Bardziej szczegółowoMetody Kompilacji Wykład 13
Metody Kompilacji Wykład 13 Prosty Translator Translator dla prostych wyrażeń Schemat translacji sterowanej składnią często służy za specyfikację translatora. Schemat na następnym slajdzie zostanie użyty
Bardziej szczegółowoWykład5,str.1. Maszyny ze stosem ... 1,0 λ r. λ,z λ
Wykład5,str1 p 0,Z 0Z 0,0 00 q λ,z λ r Wykład5,str1 Słowo na wejściu: 0011 część nieprzeczytana Z p 0,Z 0Z 0,0 00 q λ,z λ r Wykład5,str1 Słowo na wejściu: 0011 część nieprzeczytana 0 Z p 0,Z 0Z 0,0 00
Bardziej szczegółowoAnaliza metodą zstępującą. Bartosz Bogacki.
Analiza metodą zstępującą Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy analizy metodą zstępującą. Zapraszam serdecznie do wysłuchania.
Bardziej szczegółowoObiektowa implementacja parsera klasy LL(1)
Obiektowa implementacja parsera klasy LL(1) Piotr Jeruszka 1 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, II stopień Specjalność: Aplikacje biznesowe i bazy danych, Rok II Streszczenie
Bardziej szczegółowoGramatyki atrybutywne
Gramatyki atrybutywne, część 1 (gramatyki S-atrybutywne Teoria kompilacji Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki atrybutywne Do przeprowadzenia poprawnego tłumaczenia, oprócz informacji
Bardziej szczegółowoEfektywna analiza składniowa GBK
TEORETYCZNE PODSTAWY INFORMATYKI Efektywna analiza składniowa GBK Rozbiór zdań i struktur zdaniowych jest w wielu przypadkach procesem bardzo skomplikowanym. Jego złożoność zależy od rodzaju reguł produkcji
Bardziej szczegółowoWykład 10. Translacja sterowana składnią
Wykład 10 Translacja sterowana składnią Translacja sterowana składnią Z konstrukcjami języków programowania wiąże się pewną informację przez dołączenie atrybutów do symboli gramatyki reprezentujących te
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 2
Języki formalne i automaty Ćwiczenia 2 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Metoda brute force... 2 Konwersja do postaci normalnej Chomskiego... 5 Algorytm Cocke a-youngera-kasamiego
Bardziej szczegółowoTranslacja wprowadzenie
Translacja wprowadzenie Teoria kompilacji Dr inż. Janusz Majewski Katedra Informatyki Literatura 1) Aho A. V., Sethi R., Ullman J. D.: Compilers. Principles, Techniques and Tools, Addison- Wesley, 1986
Bardziej szczegółowoJAO - lematy o pompowaniu dla jezykow bezkontekstowy
JAO - lematy o pompowaniu dla jezykow bezkontekstowych Postać normalna Chomsky ego Gramatyka G ze zbiorem nieterminali N i zbiorem terminali T jest w postaci normalnej Chomsky ego wtw gdy każda produkcja
Bardziej szczegółowoAlgorytmy zwiazane z gramatykami bezkontekstowymi
Algorytmy zwiazane z gramatykami bezkontekstowymi Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk
Bardziej szczegółowoGRAMATYKI BEZKONTEKSTOWE
GRAMATYKI BEZKONTEKSTOWE PODSTAWOWE POJĘCIE GRAMATYK Przez gramatykę rozumie się pewien układ reguł zadający zbiór słów utworzonych z symboli języka. Słowa te mogą być i interpretowane jako obiekty językowe
Bardziej szczegółowo0.1 Lewostronna rekurencja
0.1 Lewostronna rekurencja Sprawdź czy poniższa gramatyka E jest zgodna z LL(1), tzn. czy umożliwia przeprowadzenie analizy bez powrotu z wyprzedzeniem o jeden symbol. Wyjaśnienie pojęcia LL(1): Pierwsze
Bardziej szczegółowo3.4. Przekształcenia gramatyk bezkontekstowych
3.4. Przekształcenia gramatyk bezkontekstowych Definicje Niech będzie dana gramatyka bezkontekstowa G = G BK Symbol X (N T) nazywamy nieużytecznym w G G BK jeśli nie można w tej gramatyce
Bardziej szczegółowoTeoretyczne podstawy informatyki. Wykład 12: Gramatyki. E. Richter-Was 1
Teoretyczne podstawy informatyki Wykład 12: Gramatyki 1 18.12.2012 Gramatyki bezkontekstowe Opis wzorców polegający na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang.
Bardziej szczegółowoGramatyki rekursywne
Gramatyki bezkontekstowe, rozbiór gramatyczny eoria automatów i języków formalnych Dr inŝ. Janusz Majewski Katedra Informatyki Gramatyki rekursywne Niech będzie dana gramatyka bezkontekstowa G =
Bardziej szczegółowoJIP. Analiza składni, gramatyki
JIP Analiza składni, gramatyki Książka o różnych językach i paradygmatach 2 Polecam jako obowiązkową lekturę do przeczytania dla wszystkich prawdziwych programistów! Podsumowanie wykładu 2 3 Analiza leksykalna
Bardziej szczegółowoOpis wzorców polegający na na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang. contex-free grammar).
1 2 Opis wzorców polegający na na wykorzystaniu modelu definicji rekurencyjnych, nazywamy gramatyką bezkontekstową (ang. contex-free grammar). Jednym z ważnych zastosowań gramatyksą specyfikacje języków
Bardziej szczegółowoWprowadzenie do kompilatorów
Wprowadzenie do kompilatorów Czy ja kiedykolwiek napisz jaki kompilator? Jakie zadania ma do wykonania kompilator? Czy jzyk formalny to rodzaj jzyka programowania? Co to jest UML?, Czy ja kiedykolwiek
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 8
Języki formalne i automaty Ćwiczenia 8 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Konwersja NFA do DFA... 2 Minimalizacja liczby stanów DFA... 4 Konwersja automatu DFA do
Bardziej szczegółowoJęzyki programowania zasady ich tworzenia
Strona 1 z 18 Języki programowania zasady ich tworzenia Definicja 5 Językami formalnymi nazywamy każdy system, w którym stosując dobrze określone reguły należące do ustalonego zbioru, możemy uzyskać wszystkie
Bardziej szczegółowoPodstawy generatora YACC. Bartosz Bogacki.
Podstawy generatora YACC Bartosz Bogacki Bartosz.Bogacki@cs.put.poznan.pl Witam Państwa. Wykład, który za chwilę Państwo wysłuchają dotyczy generatora analizatorów składniowych YACC. Zapraszam serdecznie
Bardziej szczegółowoKONSTRUKCJA KOMPILATORÓW
KONSTRUKCJA KOMPILATORÓW WYKŁAD Robert Plebaniak PLATFORMA PROGRAMOWA LINUX (może nie zawierać LLgen, wówczas instalacja ze strony http://tack.sourceforge.net); WINDOWS (używa się wtedy programu Cygwin,
Bardziej szczegółowoSemantyka i Weryfikacja Programów - Laboratorium 6
Semantyka i Weryfikacja Programów - Laboratorium 6 Analizator leksykalny i składniowy - kalkulator programowalny Cel. Przedstawienie zasad budowy i działania narzędzi do tworzenia kompilatorów języków
Bardziej szczegółowoJęzyki formalne i automaty Ćwiczenia 4
Języki formalne i automaty Ćwiczenia 4 Autor: Marcin Orchel Spis treści Spis treści... 1 Wstęp teoretyczny... 2 Sposób tworzenia deterministycznego automatu skończonego... 4 Intuicyjne rozumienie konstrukcji
Bardziej szczegółowokiedy znowu uzyska sterowanie, to podejmuje obliczenie od miejsca, w którym poprzednio przerwała, i z dotychczasowymi wartościami zmiennych,
Korutyny Wykład13,str1 tak działa podprogram: PROGRAM GŁÓWNY wywołanie PODPROGRAM tak działają korutyny: KORUTYNA A resume B resume B KORUTYNA B resume A Korutyny Wykład13,str2 Korutyny mają zwykle więcej
Bardziej szczegółowoGramatyka TAG dla języka polskiego
Gramatyka TAG dla języka polskiego Katarzyna Krasnowska IPI PAN 25 lutego 2013 Katarzyna Krasnowska (IPI PAN) Gramatyka TAG dla języka polskiego 25 lutego 2013 1 / 31 Plan prezentacji 1 TAG 2 Ekstrakcja
Bardziej szczegółowoGramatyki wykorzystywane w analizie języka naturalnego
Gramatyki wykorzystywane w analizie języka naturalnego PCFG=Probabilistic Context-Free Grammars HLPCFG=Head-Lexicalised PCFG HG=Head Grammar HPSG=Head Grammar IG=Indexed Grammar LIG=Linear Indexed Grammar
Bardziej szczegółowoMATERIAŁY DO ZAJĘĆ I. Podstawowe pojęcia. Algorytm. Spis treści Przepis
MATERIAŁY DO ZAJĘĆ I Podstawowe pojęcia Spis treści I. Algorytm II. Schemat blokowy III. Struktury danych IV. Program komputerowy V. Opis środowiska programistycznego VI. Obsługa wejścia wyjścia VII. Przykład
Bardziej szczegółowoPerl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML
Perl a XML Narzędzia informatyczne w językoznawstwie Perl - Przetwarzanie XML Marcin Junczys-Dowmunt junczys@amu.edu.pl Zakład Logiki Stosowanej http://www.logic.amu.edu.pl 31 modułów w CPAN zawiera w
Bardziej szczegółowoPrzegląd metod error recovery (dla parsingu top-down, przykłady)
Referat z przedmiotu Teoria Kompilacji Przegląd metod error recovery (dla parsingu top-down, przykłady) Skąd biorą się błędy? Proces obsługi błędów zajmuje się defektami powstającymi z powodu błędów w
Bardziej szczegółowoParsery wykorzystywane w analizie języka naturalnego
Parsery wykorzystywane w analizie języka naturalnego 1. Link Grammar Parser 2. Part of Speech Tagging 3. PCFG's 4. HPCFG's 5. Parser Charniak'a 6. LoPar 7. MiniPar Autorzy: Tomasz Masternak, Adam Łączyński
Bardziej szczegółowoGeneratory analizatorów
Generatory analizatorów Generator analizatora leksykalnego flex ( http://www.gnu.org/software/flex/ ) Generator analizatora składniowego bison ( http://www.gnu.org/software/bison/ ) Idea ogólna Opis atomów
Bardziej szczegółowoJAO - Wprowadzenie do Gramatyk bezkontekstowych
JAO - Wprowadzenie do Gramatyk bezkontekstowych Definicja gramatyki bezkontekstowej Podstawowymi narzędziami abstrakcyjnymi do opisu języków formalnych są gramatyki i automaty. Gramatyka bezkontekstowa
Bardziej szczegółowoPodstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1
Podstawy programowania. Wykład Funkcje Krzysztof Banaś Podstawy programowania 1 Programowanie proceduralne Pojęcie procedury (funkcji) programowanie proceduralne realizacja określonego zadania specyfikacja
Bardziej szczegółowoAnaliza leksykalna i generator LEX
Analiza leksykalna i generator LEX Wojciech Complak Wojciech.Complak@cs.put.poznan.pl wprowadzenie generator LEX wyrażenia regularne i niejednoznaczności retrakcja definicje regularne atrybuty lewy kontekst
Bardziej szczegółowoRozbiór wstępujący gramatyki z pierwszeństwem. Rozbiór wstępujący gramatyki z pierwszeństwem
Rozbiór wstępujący grmtyki z pierwszeństwem Rozbiór wstępujący budujemy drzewo rozbioru od liści W ciągu symboli wejściowych musimy znleźć podstwę czyli uchwyt njbliższej redukcji, czyli podciąg który
Bardziej szczegółowoZAAWANSOWANE JĘZYKI PROGRAMOWANIA
Stefan Sokołowski ZAAWANSOWANE JĘZYKI PROGRAMOWANIA Inst. Informatyki, UG Gdańsk, 2015/2016 Zaawansowane Języki Programowania Wykład1,str.1 Na http://sigma.ug.edu.pl/ stefan/dydaktyka/zaawjezprog będą
Bardziej szczegółowoJĘZYKI FORMALNE I METODY KOMPILACJI
Stefan Sokołowski JĘZYKI FORMALNE I METODY KOMPILACJI Inst Informatyki Stosowanej, PWSZ Elbląg, 2018/2019 JĘZYKI FORMALNE reguły gry Wykład1,str1 Zasadnicze informacje: http://iispwszelblagpl/ stefan/dydaktyka/jezform
Bardziej szczegółowoGenerator YACC: gramatyki niejednoznaczne
Plan wykładu Generator YACC: gramatyki niejednoznaczne Wojciech Complak Wojciech.Complak@cs.put.poznan.pl gramatyki jednoznaczne i niejednoznaczne zalety gramatyk niejednoznacznych opisywanie łączności
Bardziej szczegółowoProgramowanie w Logice Gramatyki metamorficzne. Przemysław Kobylański na podstawie [CM2003] i [SS1994]
Programowanie w Logice Gramatyki metamorficzne Przemysław Kobylański na podstawie [CM2003] i [SS1994] Gramatyki bezkontekstowe Gramatyką bezkontekstową jest uporządkowana czwórka G = Σ, N, S, P, gdzie
Bardziej szczegółowoWybrane narzędzia do tworzenia analizatorów leksykalnych i składniowych w C/C++ by Kapitol Team
Wybrane narzędzia do tworzenia analizatorów leksykalnych i składniowych w C/C++ by Kapitol Team Flex a generatory skanerów C++ 2 sposoby wymuszenia stworzenia skanera w C++ flex -+ flexfile.l użycie %option
Bardziej szczegółowoSYLABUS DOTYCZY CYKLU KSZTAŁCENIA Bieżący sylabus w semestrze zimowym roku 2016/17
Załącznik nr 4 do Uchwały Senatu nr 430/01/2015 SYLABUS DOTYCZY CYKLU KSZTAŁCENIA 2016-2018 Bieżący sylabus w semestrze zimowym roku 2016/17 1.1. PODSTAWOWE INFORMACJE O PRZEDMIOCIE/MODULE Nazwa przedmiotu/
Bardziej szczegółowoTranslacja sterowana składnią w metodzie zstępującej
Translacja sterowana składnią w metodzie zstępującej Wojciech Complak Wojciech.Complak@cs.put.poznan.pl 1 Plan wykładu translacja sterowana składnią definicje sterowane składnią i schematy translacji atrybuty
Bardziej szczegółowoÓ Ę Ę ź ź ź Ź ź ź ź Ż Ś Ś Ż Ś ź ź Ó Ś Ż ź ć Ść Ź Ż ć Ż Ć ć ź Ź Ź Ó Ś ć ć Ż Ć Ś ć ź Ż ć Ść ć ć Ż Ś Ż ć Ż ź ć ź Ż ź ć ć Ś Ź Ż ć ć ć ć ć Ś Ś Ż ź Ę Ś Ś Ś Ż ć ź ć ć ć Ż Ż ć ć Ż Ź ć Ś Ś Ś Ś Ź Ó Ś Ś ć Ś ć Ć ź
Bardziej szczegółowoż Ą ż Ó Ę Ś ć ż ć ż ć Ś ż Ś ż Ń ż ż Ź ż Ź ż Ą Ś ż ć ć Ś Ą ż ż ż ź ż ż Ń Ę ż ż ć Ń ż Ń ż ż ź ż ż ż ż ż ź Ś ż ż ź ż Ś Ś ż ź ź ż ź Ą ż Ź ż ź ź Ź ź Ź ź ż Ź ż ź Ę ż ż Ę ż Ó Ń ż ź ć ż ź ż Ę ż ć ż ź ź ź ż ż
Bardziej szczegółowoĘ Ś ź Ę Ę ć ć ź ć ć ć ć ć źć ć ć ć ć Ź ź Ś ć Ł Ę ć ć Ą ź ć Ó Ł ź ć ć Ź Ł ć ć ć ć ć ć ć ź ć ć ć ć ź Ź ć ź ć ć ź ć ź Ź Ź ź ź ź Ś ź ź ć ć Ś Ę ć ź ć ć Ś ć ć ć ć ź ź ć ź ć ć ć Ź Ź ć Ś Ę ć Ć ć ź ć Ę ć ć ć ć
Bardziej szczegółowoŁ Ę Ł Ż ż Ń Ą Ó Ó ż Ś Ź ć ż ż ć Ć ż Ż ć Ó ż Ś Ó Ś ż Ó ż Ś ć ć Ż Ł ż ż ż ć ć ż Ó Ó Ę Ż Ó Ż ż Ó ż Ó Ź Ż ż Ó Ó ć Ó ż ż ć ż Ś Ż ć Ó ż Ś Ś ż ć ć Ó ż Ó Ó ż Ź Ę Ł Ż Ł Ź Ż ż Ó ż ż ż ż Ż ż ż Ż ż Ł ć Ż ż Ż ż Ó Ż
Bardziej szczegółowoć Ł ć ć ź Ą ć ć ć źć Ź Ź ŹĆ ć ć ć ć ć ć ć ć ć ć ć ć ć ć ć ć ć ć ć Ą ć Ł ć ć ć ć ć ć ć ŚĆ Ś ź ć ć ć Ć Ó Ć ć Ą Ł Ł Ł ź Ś Ł ć ć Ą Ą ź ć ć Ą ć ź ć ź ź ć ź ź Ą Ą Ń ć ź Ł ć Ć ć ź ć Ś ć ć ć ć ć ć ć Ś ć ć ć ć
Bardziej szczegółowoć Ń Ż Ł ć ć Ś ź ŚĆ Ą ć ź ć ć Ż Ś ź Ą ć Ń Ć Ć ć ć Ą ć źć Ń Ł Ł Ł ź ć Ą ź Ś ź ć Ń Ń ć Ć Ć ź Ś ź ć Ś Ś Ł ź Ś Ś ź ć ź ć Ś ć Ś ć ć Ż ć Ż ź ź Ą ć Ł Ń Ć ć Ż Ś ć ć ć ć Ś ć ć ć Ą ć ć ź ć ć ć ć ć Ń Ż Ż Ż Ż Ś ć Ą
Bardziej szczegółowoŚ ć ć Ż ć ć Ż ć ć ć ć ć Ę Ź Ż Ż ć Ę ć Ę Ź Ź Ó ć ć Ź ć Ó Ś ć Ź Ę Ę Ę ć Ń ć Ś ć Ż ć Ę Ę ć Ż Ł ź Ź Ś Ą ć Ą Ą ć Ą Ę ć ć Ę ć ć ć Ż ć Ź Ą Ł ć ć ć ć Ę ć Ź ć Ź ć Ą ć Ą ć ć ć ć Ą ć Ą ć Ż Ą ć ć ć ć ć ć Ść ć źć Ę
Bardziej szczegółowoŁ Ł Ź Ź ź ź ć ź ć Ę Ź Ś Ś ć ć Ś ć ć ć Ź ć źć ć ć ć ć Ź ć ć ć ć ć ć ź ć Ś ć ć Ą ć Ź ć Ś Ó Ź Ś ź ć ź Ś ć Ł Ą ć ć ć ć Ź Ź ć Ź ć ć ć Ź ź ć ć ć ć ć Ś ć ć ć ć ć Ł ć Ś ć Ź Ź Ź ć ć Ś Ś ć ć ć ź Ą ć ć ć ć ć ć ć
Bardziej szczegółowoń ć ć ń Ń ź ć ć ć ć ź ć ć ń ć źć ń ź ć ć ć ć ć Ę ć ń ć ć ć Ę ź ń ń ć ć ń ć ć ć ć ć ć ć ć ć ć ń ć ź ć ć ć ć ź ć ń ć ć ć ń ć ć ć Ń ć ź ć ć ń ć ć ć ć ć ć ć ć ć ć ź ć ć ć ć ć ć ć ć ź Ń ń ź ń ć ń ć ć ć Ę ć
Bardziej szczegółowoĘ Ę ć Ó ć ć Ń ź ź Ó Ć Ó ć ć ź ź ć ć ć Ń ć Ó ć ć ć ć Ó Ó ć Ó ć ć Ó Ę Ó ÓÓ Ę ć Ó ć ć Ó ć ć Ó Ę ć Ć Ó Ź Ę Ó Ó Ó ć Ó ź Ó ź Ń Ę Ó Ę Ę Ę ć ć Ć ć Ę Ę Ó Ó Ó ć ź Ń ć Ź ć ź ć ć Ę ć Ę ć ź ć Ó Ó Ę ć ć ć ź ć Ę ć Ź
Bardziej szczegółowoÓ ż ń Ą ź ń ż ć Ó ń ć Ć Ą ż Ą ć Ł Ę Ę Ą ć Ó ź ć ć ć ń Ń Ą ć ć ż Ó ź Ł Ł Ę ć ż ć Ę Ł ć Ń Ą Ł Ł Ę Ł ć ż ż ż Ł ć ć Ę Ń Ę Ą ń Ą ń ń ż ż ń ż ź Ń ź ć ź ń Ó ń ć Ł Ą Ą ż ż ć Ó Ł ć ć ź Ó ź ź Ę ć ć ń źć Ą ż Ą ż
Bardziej szczegółowoĆ Ć Ą ź ń ć ń Ź ń ć Ą ć ć ć Ę ć ń Ą Ą ź ń ź ń ń Ę ń ć ć Ę Ę ć Ę Ź Ź Ą Ę ń ń ń Ę ń ń Ą ń ń Ą Ą Ć Ą ć ń ć ń ć Ć ń ń Ą ń Ą Ą ć ć ź ź Ź ć ń ń Ą ń ń ń Ę Ą ć ń Ą ć Ą Ę ć ć Ę ń Ć Ę ń Ą Ź Ę ń Ę ń ń ć ć Ń ń Ą ń
Bardziej szczegółowoŁ Ż ć Ę Ę Ę Ę Ż Ę Ź ć ć ć Ł Ż ć Ę ć Ł ć Ę ź Ż ć Ę ć ć Ł Ł ć ź Ż Ż Ż ć ć Ż ć ć ć ć ć ć ć ć ć ć ć ć ć Ś ć ć Ę Ę Ł ć Ś ć Ł Ż Ę ć ć ć Ż Ż Ę Ł Ę ć Ę ć ć ć ć ć Ę ć ć ć Ł ź Ż Ę Ż Ż ć Ę źć źć ź Ż Ł ć ć ć Ż Ę ź
Bardziej szczegółowoŁ Ś ÓŻ Ż Ż Ż Ż Ś Ś Ę Ł ć Ą ŚĆ Ś Ą ć Ą Ś Ą Ś ź ć ź ć ć Ą ć Ą Ń ź ź ć Ą ć ć Ą ź Ę Ś Ą ź Ś ź Ą Ą ć Ę ć ź Ą ć Ą ć ć ć Ą Ą Ą Ą ŚĆ Ść ć Ń Ś ć ć Ę Ź ć Ę Ń ć Ć ć ć ć ć Ę Ń ć ć ć Ł ć Ą ć Ą Ą Ę Ć źć ć Ś ź Ę Ą Ś
Bardziej szczegółowoZapis algorytmów: schematy blokowe i pseudokod 1
Zapis algorytmów: schematy blokowe i pseudokod 1 Przed przystąpieniem do napisania kodu programu należy ten program najpierw zaprojektować. Projekt tworzącego go algorytmu może być zapisany w formie schematu
Bardziej szczegółowoGramatyki regularne i automaty skoczone
Gramatyki regularne i automaty skoczone Alfabet, jzyk, gramatyka - podstawowe pojcia Co to jest gramatyka regularna, co to jest automat skoczony? Gramatyka regularna Gramatyka bezkontekstowa Translacja
Bardziej szczegółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowoPodstawy programowania
Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót
Bardziej szczegółowoGenerator YACC: gramatyki niejednoznaczne
Generator YACC: gramatyki niejednoznaczne Wojciech Complak Wojciech.Complak@cs.put.poznan.pl 1 Plan wykładu gramatyki jednoznaczne i niejednoznaczne zalety gramatyk niejednoznacznych opisywanie łączności
Bardziej szczegółowoPOLITECHNIKA LUBELSKA. Walidacja Modeli Xtext
POLITECHNIKA LUBELSKA Walidacja Modeli Xtext 1. Wstęp 1.1. Czym jest walidacja Podczas opracowywania języka programowania analiza statyczna jest jednym z najważniejszych aspektów. W naukach technicznych
Bardziej szczegółowoJĘZYKIFORMALNE IMETODYKOMPILACJI
Stefan Sokołowski JĘZYKIFORMALNE IMETODYKOMPILACJI Inst. Informatyki Stosowanej, PWSZ Elbląg, 2009/2010 JĘZYKI FORMALNE reguły gry Wykład1,2X2009,str.1 Zasadnicze informacje: http://iis.pwsz.elblag.pl/
Bardziej szczegółowoWprowadzenie do programowania języki i gramatyki formalne. dr hab. inż. Mikołaj Morzy
Wprowadzenie do programowania języki i gramatyki formalne dr hab. inż. Mikołaj Morzy plan wykładu wprowadzenie gramatyki podstawowe definicje produkcje i drzewa wywodu niejednoznaczność gramatyk hierarchia
Bardziej szczegółowoZYKI BEZKONTEKSTOWE (KLASA
Spis treści 6. JĘZYKI BEZKONTEKSTOWE (KLASA "2")... 2 6.1. GRAMATYKI BEZKONTEKSTOWE... 2 6.2. AUTOMATY ZE STOSEM... 12 7. DETERMINISTYCZNE JĘZYKI BEZKONTEKSTOWE I ICH AKCEPTORY... 16 7.1. GRAMATYKI I JĘZYKI
Bardziej szczegółowoGenerator LLgen. Wojciech Complak Generator LLgen - charakterystyka. Generator LLgen -składnia specyfikacji
Plan wykładu Wojciech Complak Wojciech.Complak@cs.put.poznan.pl charakterystyka generatora LLgen składnia specyfikacji analizatora składniowego dołączanie analizatora leksykalnego rozszerzenia składni
Bardziej szczegółowo11 Probabilistic Context Free Grammars
11 Probabilistic Context Free Grammars Ludzie piszą i mówią wiele rzeczy, a ich wypowiedzi mają zawsze jakąś określoną strukture i regularność. Celem jest znalezienie i wyizolowanie tego typu struktur.
Bardziej szczegółowoWprowadzenie. Wojciech Complak
Wprowadzenie Wojciech Complak Wojciech.Complak@cs.put.poznan.pl Przedmiot Podstawy kompilatorów, wykład 1, Wprowadzenie, prezentuje Wojciech Complak. Witam Państwa na pierwszym wykładzie z przedmiotu Podstawy
Bardziej szczegółowoJęzyki i gramatyki formalne
Języki i gramatyki formalne Języki naturalne i formalne Cechy języka naturalnego - duża swoboda konstruowania zdań (brak ścisłych reguł gramatycznych), duża ilość wyjątków. Języki formalne - ścisły i jednoznaczny
Bardziej szczegółowoLingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań
Katedra Informatyki Stosowanej Politechnika Łódzka Lingwistyka Matematyczna Języki formalne i gramatyki Analiza zdań dr hab. inŝ. Lidia Jackowska-Strumiłło Historia rozwoju języków programowania 1955 1955
Bardziej szczegółowo