Politechnika Warszawska - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

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
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 2018/2019 - sem. letni" (zakończony)

Okres: 2019-02-18 - 2019-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
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

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

Okres: 2018-02-19 - 2018-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
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

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

Okres: 2017-02-20 - 2017-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 28 miejsc więcej informacji
Laboratorium, 15 godzin, 28 miejsc więcej informacji
Wykład, 30 godzin, 28 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke
Prowadzący grup: Ilona Bluemke
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2016-02-23 - 2016-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
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
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2015-02-23 - 2015-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 30 miejsc więcej informacji
Laboratorium, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke
Prowadzący grup: Ilona Bluemke
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2014-02-24 - 2014-09-28
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 30 miejsc więcej informacji
Laboratorium, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke
Prowadzący grup: Ilona Bluemke
Lista studentów: (nie masz dostępu)
Zaliczenie: Egzamin
Jednostka realizująca:

103200 - Instytut Informatyki

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

Okres: 2013-02-20 - 2013-09-30
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 15 godzin, 30 miejsc więcej informacji
Laboratorium, 15 godzin, 30 miejsc więcej informacji
Wykład, 30 godzin, 30 miejsc więcej informacji
Koordynatorzy: Ilona Bluemke
Prowadzący grup: Ilona Bluemke
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.