Nazwa przedmiotu:
Compiling Techniques
Koordynator przedmiotu:
dr inż. Ilona Bluemke
Status przedmiotu:
Obowiązkowy
Poziom kształcenia:
Studia I stopnia
Program:
Computer Science
Grupa przedmiotów:
Technical Courses
Kod przedmiotu:
ECOTE
Semestr nominalny:
8 / rok ak. 2015/2016
Liczba punktów ECTS:
6
Liczba godzin pracy studenta związanych z osiągnięciem efektów uczenia się:
- lecture attendance: 15 x 2 h = 30h., - tutorials attendance : 15 h, - preparation to tutorials: revieving lecture presentations, completing homework, : 10 h, - preparation to written class tests (including participation in consultations 1 h): 15 h - preparation to lectures ( revieving lecture presentationsreading recomended literature including participation in consultations 1h): 10 h - attendance in laboratory (15h) and completing laboratory tasks : Indroductory project (10h), coding (20h), testing (20h), final documentation (5h) = 70 Total : 30 + 15 + 15 +15 +10 + 70 = 155 hours (6 ETCS)
Liczba punktów ECTS na zajęciach wymagających bezpośredniego udziału nauczycieli akademickich:
30 + 15 + 15 + 3 = 63 h ( 2.5 ETCS) (3 h of consulataions are assumed)
Język prowadzenia zajęć:
angielski
Liczba punktów ECTS, którą student uzyskuje w ramach zajęć o charakterze praktycznym:
laboratory (70h) + tutorials (15h) makes 3.5 ETCS
Formy zajęć i ich wymiar w semestrze:
  • Wykład30h
  • Ćwiczenia15h
  • Laboratorium15h
  • Projekt0h
  • Lekcje komputerowe0h
Wymagania wstępne:
fluency in programming
Limit liczby studentów:
24
Cel przedmiotu:
Students should become familiar with the construction of a text processor. They should learn the main phases of a compiler (scanning, parsing, semantic analysis, code generation).
Treści kształcenia:
Introduction (2h)- translation, compilers, interpreters, text processors. Macrogeneration (8h )- text processing, types of text substitution, macrodefinitions and macrocalls, implementation of macro libraries, visibility of macrodefinitions, implementation of MG macrogenerator, operation of GPM macrogenerator. Introduction to translation and linguistics(2h) Grammar, derivation, language, Chomski classification. Main parts of a complier (3h).lexical analysis, parsing, semantic analysis, code generation, problems of error detection and recovery Lexical analysis (4h) Lexical atoms, regular expressions, transformations from regular expression into nondeterministic and deterministic automata, automatic generation of scanners. Syntax analysis (7h) Context free grammars, top-down and bottom-up parsing, parsing without backtracking, recursive descent parsing, LL(1) grammars and its parsing, LR grammars and LR parsing. An example of recursive descent parsing for PASCAL subset: from BNF productions into parsing procedures, error detection and recovery. Semantic analysis (2h) identifiers and attributes, symbol table organization, semantic actions in recursive descent parsers . Code generation (2h) semantics equivalents, local and global code optimization. Integrated environments (2h) functions of integrated environment - text edition, compilation, debugging, program execution, project management. Laboratory: During laboratories each student should design, implement and test a program. The program is related to the subjects of lectures e.g. simple macrogenerator, scanner or parser for a very simple language. Students should prepare preliminary project, then implement a program, thoroughly test it and make the final documentation. The introductory project contains: functional specification, input/output description, project specification (architecture, data structures – graphical representation, main algorithm), UML may be used to specify project, test cases.
Metody oceny:
tests (2), laboratory evaluation, exam
Egzamin:
tak
Literatura:
•J.P. Bennet: "Introduction to Compiling Techniques", Mc Graw Hill •R. Sethi, J.D. Ullman, M. Lam: "21st Century Compilers", 2004, Addison-Wesley
Witryna www przedmiotu:
https://studia.elka.pw.edu.pl/priv/12L/ECOTE.A/
Uwagi:

Efekty uczenia się

Profil ogólnoakademicki - wiedza

Efekt ECOTE_W01
Student, who passed this course is able to describe different methods of text substitution and implement them
Weryfikacja: test, laboratory, exam
Powiązane efekty kierunkowe: K_W08, K_W10
Powiązane efekty obszarowe: T1A_W03, T1A_W04, T1A_W07, T1A_W03, T1A_W04, T1A_W07
Efekt ECOTE_W02
Student, who passed tis course is able to list types of grammars, perform grammar transformations e.g left recursion elimination
Weryfikacja: test, laboratory, exam
Powiązane efekty kierunkowe: K_W07, K_W18
Powiązane efekty obszarowe: T1A_W03, T1A_W04, T1A_W07, T1A_W04, T1A_W05, T1A_W06, T1A_W07
Efekt ECOTE_W03
Student, who passed this course is able to describe functions performed by main parts of a compiler and implement them for a subset of programming language
Weryfikacja: test, exam
Powiązane efekty kierunkowe: K_W18
Powiązane efekty obszarowe: T1A_W04, T1A_W05, T1A_W06, T1A_W07
Efekt ECOTE_W04
Student, who passed this course is able transform regular expression into finite automata (deterministic- DFA, nondeterministic- NFA), transform NFA into DFA
Weryfikacja: test, exam, laboratory
Powiązane efekty kierunkowe: K_W18
Powiązane efekty obszarowe: T1A_W04, T1A_W05, T1A_W06, T1A_W07
Efekt ECOTE_W05
Student, who passed this course is able to describe scanner, design a scanner for very simple language
Weryfikacja: test, exam, laboratory
Powiązane efekty kierunkowe: K_W18
Powiązane efekty obszarowe: T1A_W04, T1A_W05, T1A_W06, T1A_W07
Efekt ECOTE_W06
Student, who passed this course is able to use and describe parsing methods (recursive descent, LL(1), bottom up – SLR(1)
Weryfikacja: test, exam
Powiązane efekty kierunkowe: K_W18
Powiązane efekty obszarowe: T1A_W04, T1A_W05, T1A_W06, T1A_W07
Efekt ECOTE_W07
Student, who passed this course is able to define functions of semantic analyzer, optymizer, code generator
Weryfikacja: test, exam
Powiązane efekty kierunkowe: K_W18
Powiązane efekty obszarowe: T1A_W04, T1A_W05, T1A_W06, T1A_W07

Profil ogólnoakademicki - umiejętności

Efekt ECOTE_U01
Student, who passed this course is able to describe different methods of text substitution and implement them
Weryfikacja: laboratory
Powiązane efekty kierunkowe: K_U10
Powiązane efekty obszarowe: T1A_U14
Efekt ECOTE_U02
Student, who passed tis course is able to list types of grammars, perform grammar transformations e.g left recursion elimination
Weryfikacja: test, exam, laboratory
Powiązane efekty kierunkowe: K_U08, K_U13
Powiązane efekty obszarowe: T1A_U08, T1A_U09, T1A_U14, T1A_U15, T1A_U16
Efekt ECOTE_U03
Student, who passed this course is able to describe functions performed by main parts of a compiler and implement them for a subset of programming language
Weryfikacja: test, exam
Powiązane efekty kierunkowe: K_U03, K_U12, K_U13, K_U16
Powiązane efekty obszarowe: T1A_U03, T1A_U15, T1A_U16, T1A_U14, T1A_U15, T1A_U16, T1A_U08, T1A_U13
Efekt ECOTE_U04
Student, who passed this course is able to transform regular expression into finite automata (deterministic- DFA, nondeterministic- NFA), transform NFA into DFA
Weryfikacja: test, exam
Powiązane efekty kierunkowe: K_U12, K_U13
Powiązane efekty obszarowe: T1A_U15, T1A_U16, T1A_U14, T1A_U15, T1A_U16
Efekt ECOTE_U05
Student, who passed this course is able to describe scanner, design a scanner for very simple language
Weryfikacja: test, exam, laboratory
Powiązane efekty kierunkowe: K_U12, K_U13
Powiązane efekty obszarowe: T1A_U15, T1A_U16, T1A_U14, T1A_U15, T1A_U16
Efekt ECOTE_U06
Student, who passed this course is able to use and describe parsing methods (recursive descent, LL(1), bottom up – SLR(1)
Weryfikacja: test, exam
Powiązane efekty kierunkowe: K_U13
Powiązane efekty obszarowe: T1A_U14, T1A_U15, T1A_U16
Efekt ECOTE_U07
Student, who passed this course is able to design and implement a part of a compiler or text processor , test it
Weryfikacja: laboratory
Powiązane efekty kierunkowe: K_U13
Powiązane efekty obszarowe: T1A_U14, T1A_U15, T1A_U16

Profil ogólnoakademicki - kompetencje społeczne

Efekt ECOTE_K01
Student, who passed this course is able work individually and in a team
Weryfikacja: laboratory
Powiązane efekty kierunkowe: K_K01, K_K03, K_K04, K_K06
Powiązane efekty obszarowe: T1A_K01, T1A_K05, T1A_K03, T1A_K04, T1A_K07