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 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 Sisu 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

Can not find the course?
try also:

  • Sisu
  • Courses.aalto.fi

CS-E4002 - Special Course in Computer Science: Compilers, 27.05.2020-05.08.2020

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

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

General

  • General

    General


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

    (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 (Zoom meetings and Slack workspace links at the end of this page)

    Lecture Sessions: Wednesdays 14:15 - 1600

    Exercise Sessions: Mondays 14:15 - 1600

    Zoom Office hours: Fridays 14:15 - 16:00

    Lecture Topics and Tentative Schedule

    1. Introduction (27 May)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=574758)
      Exercise Session (01 June)

    2. Lexical Analysis (03 June)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581417) 
      Exercise Session (08 June)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=583271) 

    3. Introduction to Parsing (10 June)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581419)
      Exercise Session (15 June)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=584087)

    4. Top-Down Parsing (17 June)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581449)
      Exercise Session (22 June)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=584833)

    5. Semantic Analysis & Symbol Table Management (24 June)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581451)
      Exercise Session (29 June)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=585937)

    6. Intermediate Code Generation (01 July)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581453)
      Exercise Session (06 July)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=586821)

    7. Bottom-Up Parsing  (08 July)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581454)
      Exercise Session (13 July)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=593034)

    8. Run-Time Environment (15 July)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581455)
      Exercise Session (20 July)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=594937)

    9. Code Optimization (22 July)
      Part 1: Local Optimization
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581457)
      Part 2: Global Optimization
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581458)
      Exercise Session (27 July)
      Part1:(https://mycourses.aalto.fi/mod/resource/view.php?id=595378)
      Part2:(https://mycourses.aalto.fi/mod/resource/view.php?id=595380)

    10. Register Allocation (29 July)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581459)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=581461)
      Exercise Session (03 August)
      (https://mycourses.aalto.fi/mod/resource/view.php?id=597652)

    Course Evaluation
    Writing Assignments            35%
    Programming Assignments  65%
    There is no examination.

    Assignments Tentative Schedule (https://mycourses.aalto.fi/mod/resource/view.php?id=581412)
    A Note Regarding the Final Grade (https://mycourses.aalto.fi/mod/resource/view.php?id=596221)


    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 There are no upcoming events
Go to calendar...
  • CS-E4002 - Special Course in Computer Science: Compilers, 27.05.2020-05.08.2020
  • Sections
  • General
  • Materials
  • Assignments
  • For Aalto users
  • Home
  • Calendar
  • Learner Metrics

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
    • 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
    • Sisu
    • 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)‎