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
  • Service Links
    MyCourses - MyCourses instructions for Teachers - MyCourses instructions for Students - Teacher book your online session with a specialist - Digital tools for teaching - Personal data protection instructions for teachers - Workspace for thesis supervision Sisu Student guide 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 Guidance and support for students Starting Point of Wellbeing About AllWell? study well-being questionnaire
  •   ‎(en)‎
      ‎(en)‎   ‎(fi)‎   ‎(sv)‎
  • Toggle Search menu
  • Hi guest! (Log in)

close

Can not find the course?
try also:

  • Sisu
  • Courses.aalto.fi

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

This course space end date is set to 02.04.2020 Search Courses: CS-E4002

  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
      ForumAnnouncements Forum
    • icon for activity
      ForumGeneral discussion Forum

Course home

Course home

Next section

Materials►
Skip Upcoming events
Upcoming events
Loading
Site event MyCourses maintenance, service out of use
Monday, 12 June, 10:00 » 17:00

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
  • Calendar
  • Learner Metrics

Aalto logo

Tuki / Support
Opiskelijoille / Students
  • MyCourses instructions for students
  • email: mycourses(at)aalto.fi
Opettajille / Teachers
  • MyCourses help
  • MyTeaching Support form
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
  • Service Links
    • MyCourses
    • - MyCourses instructions for Teachers
    • - MyCourses instructions for Students
    • - Teacher book your online session with a specialist
    • - Digital tools for teaching
    • - Personal data protection instructions for teachers
    • - Workspace for thesis supervision
    • Sisu
    • Student guide
    • 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
    • Guidance and support for students
    • Starting Point of Wellbeing
    • About AllWell? study well-being questionnaire
  •   ‎(en)‎
    •   ‎(en)‎
    •   ‎(fi)‎
    •   ‎(sv)‎