Skip to main content
MyCourses MyCourses
  • Schools
    School of Arts, Design, and Architecture (ARTS) School of Business (BIZ) School of Chemical Engineering (CHEM) –sGuides for students (CHEM) – Instructions for report writing (CHEM) School of Electrical Engineering (ELEC) School of Engineering (ENG) School of Science (SCI) Language Centre Open University Library Aalto university pedagogical training program UNI (exams) Sandbox
  • CORONAVIRUS INFO
    Koronavirus - tietoa opiskelijalle Coronavirus - information for students Coronavirus - information för studerande Koronaviruksen vaikutus opiskeluun: kysymyksiä ja vastauksia Effects of the coronavirus on studies: questions and answers Coronaviruset och studierna: frågor och svar Corona help for teachers
  • Service Links
    MyCourses - Instructions for Teachers - Teacher book your online session with a specialist - Digital tools for teaching - Personal data protection instructions for teachers - Instructions for Students - Workspace for thesis supervision WebOodi Into portal for students Courses.aalto.fi Library Services - Resourcesguides - Imagoa / Open science and images IT Services Campus maps - Search spaces and see opening hours Restaurants in Otaniemi ASU Aalto Student Union Aalto Marketplace
  • ALLWELL?
    Study Skills Support for Studying Starting Point of Wellbeing About AllWell? study well-being questionnaire
  •   ‎(en)‎
      ‎(en)‎   ‎(fi)‎   ‎(sv)‎
  • Toggle Search menu
  • Hi guest! (Log in)

close

CS-E4002 - Special Course in Computer Science: Compilers, 09.01.2020-02.04.2020

  1. Home
  2. Courses
  3. School of Science
  4. department of...
  5. cs-e4002 - sp...
Syllabus

General

  • General

    General

    Compilers

    (Picture source: Compilers course by Prof. Alex Aiken at online.stanford.edu)


    C O M P I L E R S                                                                                     

    Overview

    Design and implementation of Compilers is one of the fundamental concepts in Computer Science. Compilers are also one of the most important tools for software development. This course is about how to design and implement compilers. Topics covered by the course include but not limited to an introduction to compilers and interpreters, regular languages, lexical analysis and scanners, context-free grammars, syntax analysis and different parsing methods, semantic analysis, symbol table management, error handling, intermediate representation and code generation, run-time memory organization, data flow analysis and code optimization, register allocation, and compiler writing tools. The course has weekly written and/or programming exercises including an implementation of a running compiler for a small (simplified) programming language.

    Objectives
    In this course, you learn how to design and implement compilers for a variety of languages and machines. The principles and techniques of compiler writing are also applicable to many other software domains and are very likely to be reused again in your future career as a computer scientist.

    Lecturer
    Gholamreza Ghassem-Sani (https://users.aalto.fi/~ghasseg1/)
    (http://sharif.ir/~sani)

    Time and Location

    Lectures: Thursdays 14:15 - 1600, Lecture Hall T1 (C202)

    Exercises: Mondays 12:15 - 1400, TU6 (1199) in TUAS building

    Office Hours: Thursdays and Mondays 16:15 - 18:00, Room A320, in CS building

    Lecture Topics and Tentative Schedule (https://mycourses.aalto.fi/mod/resource/view.php?id=548865)

    1. Introduction (9 Jan. 2020)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=548870)
      Exercise Session (13 Jan.)

    2. Lexical Analysis (16 Jan.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=548871)
      Exercise Session (20 Jan.)

    3. Introduction to Parsing (23 Jan.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=548872)
      Exercise Session (27 Jan.)

    4. Top-Down Parsing (30 Jan.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=548873)
      Exercise Session (03 Feb.)

    5. Bottom-Up Parsing (6 Feb.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=548874)
      Exercise Session (10 Feb.)

    6. Semantic Analysis & Symbol Table Management (13 Feb.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=548875)
      Exercise Session (24 Feb.)

    7. Intermediate Code Generation (27 Feb.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=549853)
      Exercise Session (02 Mar.)

    8. Run-Time Environment (5 Mar.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=554059)
      Exercise Session (09 Mar.)

    9. Local Code Optimization (12 Mar.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=555990)
      Exercise Session (16 Mar.)

    10. Global Optimization (19 Mar.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=559076)
      Exercise Session (23 Mar.)

    11. Register Allocation (26 Mar.)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=561986)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=562347)
      Exercise Session (30 Mar.)

    Course Evaluation

    Writing Assignments            40%
    Programming Assignments  60%
    There is no examination.

    Prerequisites
    Data Structures and Algorithms (or equivalent).
    Programming in Python
    Basics in formal languages and automata is recommended.

    Main Reference (is not required, if you attend the lectures!)
    A. Aho, M. Lam, R. Sethi, J. Ullman, Compilers: Principles, Techniques, and Tools, 2nd Edition, Addison Wesley, 2007.


    • icon for activity Announcements Forum
    • icon for activity General discussion Forum

Course home

Course home

Next section

Materials►
Skip Upcoming events
Upcoming events
Loading There are no upcoming events
Go to calendar...
  • CS-E4002 - Special Course in Computer Science: Compilers, 09.01.2020-02.04.2020
  • Sections
  • General
  • Materials
  • Assignments
  • For Aalto users
  • Home

Aalto logo

Tuki / Support
  • MyCourses help
  • mycourses(at)aalto.fi
Palvelusta
  • MyCourses rekisteriseloste
  • Tietosuojailmoitus
  • Palvelukuvaus
  • Saavutettavuusseloste
About service
  • MyCourses protection of privacy
  • Privacy notice
  • Service description
  • Accessibility summary
Service
  • MyCourses registerbeskrivining
  • Dataskyddsmeddelande
  • Beskrivining av tjänsten
  • Sammanfattning av tillgängligheten

Hi guest! (Log in)
  • Schools
    • School of Arts, Design, and Architecture (ARTS)
    • School of Business (BIZ)
    • School of Chemical Engineering (CHEM)
    • –sGuides for students (CHEM)
    • – Instructions for report writing (CHEM)
    • School of Electrical Engineering (ELEC)
    • School of Engineering (ENG)
    • School of Science (SCI)
    • Language Centre
    • Open University
    • Library
    • Aalto university pedagogical training program
    • UNI (exams)
    • Sandbox
  • CORONAVIRUS INFO
    • Koronavirus - tietoa opiskelijalle
    • Coronavirus - information for students
    • Coronavirus - information för studerande
    • Koronaviruksen vaikutus opiskeluun: kysymyksiä ja vastauksia
    • Effects of the coronavirus on studies: questions and answers
    • Coronaviruset och studierna: frågor och svar
    • Corona help for teachers
  • Service Links
    • MyCourses
    • - Instructions for Teachers
    • - Teacher book your online session with a specialist
    • - Digital tools for teaching
    • - Personal data protection instructions for teachers
    • - Instructions for Students
    • - Workspace for thesis supervision
    • WebOodi
    • Into portal for students
    • Courses.aalto.fi
    • Library Services
    • - Resourcesguides
    • - Imagoa / Open science and images
    • IT Services
    • Campus maps
    • - Search spaces and see opening hours
    • Restaurants in Otaniemi
    • ASU Aalto Student Union
    • Aalto Marketplace
  • ALLWELL?
    • Study Skills
    • Support for Studying
    • Starting Point of Wellbeing
    • About AllWell? study well-being questionnaire
  •   ‎(en)‎
    •   ‎(en)‎
    •   ‎(fi)‎
    •   ‎(sv)‎