Program zajęć
- Zajęcia organizacyjne, szkolenie BHP, wprawka programistyczna
- Rozbudowa "wprawki" - od parsera do interpretera
- Zapoznanie ze środowiskiem ANTLRWorks, pierwszy interpreter, zmienne
- Generowanie i interpretacja drzew
- Predykaty, interpreter wyrażeń warunkowych i pętli
- Szablony
- Kompilacja
- c.d.n
Materiały do zajęć
- ad. 1
Celem zajęć jest pokazanie, dlaczego nie piszemy kompilatorów "od zera", a będziemy korzystać ze środowiska ANTLRWorks
Leksemy:INT ::= ('0'..'9')+ PLUS ::= '+' MINUS::= '-' MUL ::= '*' DIV ::= '/' NL ::= '\n' EOF ::= znak końca pliku
Gramatyka języka, który ma być parsowany:plik ::= expr* EOF expr ::= term (PLUS term | MINUS term)* NL term ::= atom (MUL atom | DIV atom)* atom ::= INT
Kompilator powinien się składać z dwóch części. Analizatora leksylaknego (lexera) oraz analizatora składniowego (parsera). Lexer ma za zadanie rozpoznać leksemy we wprowadzonym wyrażeniu. Następnym krokiem jest sprawdzenie zgodności wyrażenia z gramatyką przy użyciu parsera.
Implementacji należy dokonać w języku Java lub C++. - ad. 3
Gramatyka podstawowego "kalkulatora" - punkt wyjścia do pisania interpretera. - ad. 4
Gramatyka "kalkulatora": generator drzew, parser drzew
Interpreter drzewiasty - kawałek kodu łączący generator drzew z parserem
Przykład (ograniczony do szkieletu) wielopoziomowego parsera drzew. - ad. 6
Przykład wykorzystania szablonu
Przykładowy interpreter z wykorzystaniem wielopoziomowego parsera drzew i szablonów.
Pożyteczne linki
- małe F.A.Q. dotyczące kilku "błachostek"
- Strona projektu ANTLR
- Starsze materiały do laboratorium - wykorzystywany pakiet PCCTS 1.33mr33
- Literatura fachowa
Kontakt z prowadzącymi
dr inż. Tomasz Babczyński
Adres email zgodny z konwencją imie.nazwisko@pwr.wroc.pl
Konsultacje:
Pokój: 321, C-3
Telefon: (0-71 320) 20-15
mgr inż. Wojciech Penar
Adres email zgodny z konwencją imie.nazwisko@pwr.wroc.pl
Konsultacje: ?
Pokój: 101/102, C-3 (obok laboratoriów 103, 104, 127)
Telefon: (0-71 320) 33-05