Konstrukcja kompilatorów

Język wykładowy Polski
Semestr Zimowy
Status Poddana pod głosowanie
Opiekun Witold Charatonik
Liczba godzin 30 (wyk.) 30 (ćw-prac.)
Rodzaj Informatyczny 1
ECTS 6
Polecany dla I roku Nie
Egzamin Tak

Opis przedmiotu:

Wykład prowadzony wspólnie przez dwuosobowy zespół: W.Charatonik i P. Polesiuk. Przekrojowy, ale niezbyt szczegółowy wykład wprowadzający w tematykę kompilacji. Program: * Wstęp [1 wykład] * Leksowanie i parsowanie [3 wykłady] * Analiza semantyczna [1 wykład] * Generowanie kodu [3 wykłady] * Analiza programów i optymalizacja kodu [3 wykłady] * Wsparcie dla języków wysokopoziomowych [4 wykłady] W czasie semestru przewidujemy około sześciu niewielkich zadań na pracownię polegających na doimplementowaniu do przygotowanego szablonu poszczególnych funkcjonalności kompilatora -- tak, aby pod koniec semestru każdy student napisał własny kompilator prostego języka imperatywnego. Pracownia będzie prowadzona w języku OCaml. Wymagania: * Metody programowania (struktura języków programowania, składnia abstrakcyjna i konkretna) * Architektury systemów komputerowych (kod trójadresowy, graf kontroli przepływu, tłumaczenie C do kodu maszynowego, ramki stosu, konwencja wywołania procedur, asembler, konsolidacja, relokacja, biblioteki współdzielone, MIPS ISA) Literatura: * Modern Compiler Implementation in ML, Appel * Compilers: Principles, Techniques, and Tools, Aho & Ullman * Engineering: A Compiler, Cooper & Torczon * Advanced Compiler Design and Implementation, Muchnick * The Garbage Collection Handbook, Jones