Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Compilation theory
Tok studiów:
2013/2014
Kod:
RME-1-713-s
Wydział:
Inżynierii Mechanicznej i Robotyki
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Mechatronika
Semestr:
7
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Angielski
Forma i tryb studiów:
Stacjonarne
Osoba odpowiedzialna:
dr Gładki Paweł (pawel.gladki@us.edu.pl)
Osoby prowadzące:
dr Gładki Paweł (pawel.gladki@us.edu.pl)
Krótka charakterystyka modułu

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 The student is familiar with regular expressions, finite automata, Lex and ML-Lex Kolokwium
M_W002 The student understands basic notions of context-free grammars, parsing and Yacc Kolokwium
M_W003 The student has a working knowledge of symbol tables and type-checking Kolokwium
M_W004 The student posseses a deep understanding of stack frames, intermediate trees, expressions to trees, declarations to trees, canonical trees, instruction selection, assemby code, liveness, register allocation and linking. Kolokwium
M_W005 The student is able to comprehend garbage collection, object-oriented languages, higher-order functions and closures Kolokwium
M_W006 The student knows about parser generation, just-in-time compilation, program analysis, optimization Kolokwium
Umiejętności
M_U001 The student knows how to implement an interpreter Projekt
M_U002 The student knows how to program an abstract syntax and lexical analyzer. Projekt
M_U003 The student knows how to design a parser. Projekt
M_U004 The student knows how to devise a type checker. Projekt
M_U005 The student knows how to proceed with code generation Projekt
M_U006 The student knows how to perform liveness analysis Projekt
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Inne
Zaj. terenowe
Zaj. warsztatowe
E-learning
Wiedza
M_W001 The student is familiar with regular expressions, finite automata, Lex and ML-Lex + - - - - - - - - - -
M_W002 The student understands basic notions of context-free grammars, parsing and Yacc + - - - - - - - - - -
M_W003 The student has a working knowledge of symbol tables and type-checking + - - - - - - - - - -
M_W004 The student posseses a deep understanding of stack frames, intermediate trees, expressions to trees, declarations to trees, canonical trees, instruction selection, assemby code, liveness, register allocation and linking. + - - - - - - - - - -
M_W005 The student is able to comprehend garbage collection, object-oriented languages, higher-order functions and closures + - - - - - - - - - -
M_W006 The student knows about parser generation, just-in-time compilation, program analysis, optimization + - - - - - - - - - -
Umiejętności
M_U001 The student knows how to implement an interpreter - - + - - - - - - - -
M_U002 The student knows how to program an abstract syntax and lexical analyzer. - - + - - - - - - - -
M_U003 The student knows how to design a parser. - - + - - - - - - - -
M_U004 The student knows how to devise a type checker. - - + - - - - - - - -
M_U005 The student knows how to proceed with code generation - - + - - - - - - - -
M_U006 The student knows how to perform liveness analysis - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:
Lectures on compilation theory

(1) Regular expressions, finite automata, Lex and ML-Lex.
(2) Context-free grammars, parsing and Yacc.
(3) Symbol tables, type-checking.
(4) Stack frames, intermediate trees, expressions to trees, declarations to trees, canonical trees.
(5) Instruction selection, assemby code, liveness, register allocation, linking.
(6) Garbage collection, object-oriented languages, higher-order functions, closured.
(7) Parser generation, just-in-time compilation, program analysis, optimization.

Ćwiczenia laboratoryjne:
Labs in compilation theory

(1) Programming assignment 1: interpreter.
(2) Programming assignment 2: abstract syntax and lexical analyzer.
(3) Programming assignment 3: parser.
(4) Programming assignment 4: type checker.
(5) Programming assignment 5: code generation.
(6) Programming assignment 6: liveness analysis.

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 100 godz
Punkty ECTS za moduł 4 ECTS
Udział w wykładach 14 godz
Samodzielne studiowanie tematyki zajęć 17 godz
Udział w ćwiczeniach laboratoryjnych 14 godz
Wykonanie projektu 15 godz
Przygotowanie do zajęć 15 godz
Dodatkowe godziny kontaktowe z nauczycielem 25 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

6 programming assignment worth 60% total.
2 mid-term exams worth 40% total.

Wymagania wstępne i dodatkowe:

Nie podano wymagań wstępnych lub dodatkowych.

Zalecana literatura i pomoce naukowe:

(1) Andrew W. Appel, Modern Compiler Implementation in ML. Cambridge University Press, 1998.
(2) Jeffrey D. Ullman, Elements of ML Programming, second edition, Prentice Hall.
(3) Robert Harper, Programming in Standard ML: http://www.cs.cmu.edu/%7Erwh/smlbook/book.pdf

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Brak