Politechnika Warszawska - Centralny System Uwierzytelniania
Strona główna

Compiling Techniques

Informacje ogólne

Kod przedmiotu: 103A-CSCSN-ISA-ECOTE
Kod Erasmus / ISCED: (brak danych) / (brak danych)
Nazwa przedmiotu: Compiling Techniques
Jednostka: Wydział Elektroniki i Technik Informacyjnych
Grupy: ( Computer Systems and Networks )-Computer Systems and Networks-B.Sc.-EITI
( Courses in English )--eng.-EITI
( Przedmioty techniczne )---EITI
( Technical Courses )--eng.-EITI
Punkty ECTS i inne: 6.00 Podstawowe informacje o zasadach przyporządkowania punktów ECTS:
  • roczny wymiar godzinowy nakładu pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się dla danego etapu studiów wynosi 1500-1800 h, co odpowiada 60 ECTS;
  • tygodniowy wymiar godzinowy nakładu pracy studenta wynosi 45 h;
  • 1 punkt ECTS odpowiada 25-30 godzinom pracy studenta potrzebnej do osiągnięcia zakładanych efektów uczenia się;
  • tygodniowy nakład pracy studenta konieczny do osiągnięcia zakładanych efektów uczenia się pozwala uzyskać 1,5 ECTS;
  • nakład pracy potrzebny do zaliczenia przedmiotu, któremu przypisano 3 ECTS, stanowi 10% semestralnego obciążenia studenta.
Język prowadzenia: angielski
Jednostka decyzyjna:

103000 - Wydział Elektroniki i Technik Informacyjnych

Kod wydziałowy:

ECOTE

Numer wersji:

1

Skrócony opis:

Celem przedmiotu jest zapoznanie studentów z problemami występującymi w procesie translacji. Omawiane są mechanizmy transformacji tekstu oraz typowe problemy związane z ich realizacją. Następnie przedstawiane są elementy lingwistyki oraz ogólna budowa kompilatora. Omawiane są metody analizy leksykalnej i składniowej oraz podstawowe problemy związane z generacją i optymalizacją kodu wynikowego.

Pełny opis: (tylko po angielsku)

Compiling Techniques course starts with definition of compilers and text processors (macrogenerators). Types of text substitution in macrogenerators are introduced. The main difficulties in implementation of macrogenerators are discussed. Two examples of macrogenerators MG and GPM are described. Next, an introduction to linguistic is given. The ideas of grammar, derivations, Chomsky classification are followed by the presentation of main parts of a compiler. Lexical analysis is studied in more details. Transformations of regular expressions into NFA and DFA are presented. Next parsers for LL(k) and LR(k) grammars are shown. An example of recursive descent parser for simple language is discussed. Semantic analysis, code generation and optimisation are briefly described. Problems of error detection and error recovery in compiler are addressed.


Lecture contents
Introduction - translation, compilers, interpreters, text processors.

Macrogeneration - 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: Grammar, derivation, language, Chomski classification.

Main parts of a complier: lexical analysis, parsing, semantic analysis, code generation, problems of error detection and recovery.

Lexical analysis: Lexical atoms and its definitions, regular expressions, transformations of regular expression into nondeterministic and deterministic automata, automatic generation of scanners - system LEX.

Syntax analysis: Context free grammars, top-down and bottom-up parsing, parsing without backtracking, recursive descent parsing, LL(k) 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: identifiers and attributes, symbol table organization - hash table, trees, symbol table organization for languages with blocks, semantic actions in recursive descent parsers.

Code generation: semantics equivalents, local and global code optimization.

Integrated environments: functions of integrated environment - text edition, compilation, debugging, program execution, project management.



Tutorial contents
During exercises some problems concerning the material presented on lectures are solved.


Laboratory contents
During laboratories students are designing and implementing text processing or a part of a compiler. Laboratory classes have been prepared and are conducted with the use of the innovative and creative teaching method - the Design Thinking technique.

Literatura: (tylko po angielsku)

  • J.P. Bennet, “Introduction to Compiling Techniques”, Mc Graw Hill.
  • W. Reinhard, “Compiler Design”, Springer-Verlag Berlin and Heidelberg.
  • A.V.Aho, M. Lam, R. Sethi, J.D. Ullman, “Compilers: Principles, Techniques & Tools” , 2nd edition, Pearson, Addison-Wesley.
  • K.D. Cooper, L.Torcon, “Engineering a Compiler”, 2nd edition, Elsevier.
  • D.Galles, “ModernCompiler Design”, Addison-Wesley.
  • R. Sethi, J.D. Ullman, M. Lam, "21st Century Compilers”, 2004, Addison-Wesley.
  • M.T. Aegidius, “Introduction to Compiler Design” , Springer International Publishing AG.

Zajęcia w cyklu "rok akademicki 2023/2024 - sem. letni" (w trakcie)

Okres: 2024-02-19 - 2024-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 15 godzin, 66 miejsc więcej informacji
Laboratorium, 15 godzin, 66 miejsc więcej informacji
Wykład, 30 godzin, 66 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke, Anna Derezińska
Prowadzący grup: Ilona Bluemke, Anna Derezińska, Jacek Komorowski, Agnieszka Malanowska, Dominik Ryżko
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2022/2023 - sem. letni" (zakończony)

Okres: 2023-02-20 - 2023-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 15 godzin, 66 miejsc więcej informacji
Laboratorium, 15 godzin, 66 miejsc więcej informacji
Wykład, 30 godzin, 66 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke, Anna Derezińska
Prowadzący grup: Ilona Bluemke, Anna Derezińska, Jacek Komorowski, Agnieszka Malanowska, Dominik Ryżko
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2021/2022 - sem. letni" (zakończony)

Okres: 2022-02-23 - 2022-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 15 godzin, 66 miejsc więcej informacji
Laboratorium, 15 godzin, 66 miejsc więcej informacji
Wykład, 30 godzin, 66 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke, Anna Derezińska
Prowadzący grup: Ilona Bluemke, Anna Derezińska, Jacek Komorowski, Agnieszka Malanowska
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2020/2021 - sem. letni" (zakończony)

Okres: 2021-02-20 - 2021-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 15 godzin, 48 miejsc więcej informacji
Laboratorium, 15 godzin, 48 miejsc więcej informacji
Wykład, 30 godzin, 48 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke, Anna Derezińska
Prowadzący grup: Ilona Bluemke, Anna Derezińska, Jacek Komorowski, Agnieszka Malanowska
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2019/2020 - sem. letni" (zakończony)

Okres: 2020-02-22 - 2020-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 15 godzin, 36 miejsc więcej informacji
Laboratorium, 15 godzin, 36 miejsc więcej informacji
Wykład, 30 godzin, 36 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke, Anna Derezińska
Prowadzący grup: Ilona Bluemke, Anna Derezińska, Jacek Komorowski
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

Zajęcia w cyklu "rok akademicki 2018/2019 - sem. letni" (zakończony)

Okres: 2019-02-18 - 2019-09-30
Wybrany podział planu:
Przejdź do planu
Typ zajęć:
Ćwiczenia, 15 godzin, 36 miejsc więcej informacji
Laboratorium, 15 godzin, 36 miejsc więcej informacji
Wykład, 30 godzin, 36 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke
Prowadzący grup: Ilona Bluemke, Anna Derezińska
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Politechnika Warszawska.
pl. Politechniki 1, 00-661 Warszawa tel: (22) 234 7211 https://pw.edu.pl kontakt deklaracja dostępności USOSweb 7.0.0.0-7 (2024-03-18)