Weekly outline

  • General

    COMPILERS


    Obligations:

    At the end of this course, a student must

    • master the syllabus presented during lectures and laboratory practice;
    • successfully solve the homework assignments (and collect at least 50 out of 100 points);
    • successfully solve the exam (and collect at least 50 out of 100 points).

    Homework assignments:

    Homework assignments are given during lectures and discussed during the laboratory practice. The deadlines for submission of solutions are strict, late submissions are neither checked nor graded. Student's assignments are graded during laboratory practice in the student's presence; if a student is not present the grade is not explained and no appeal can be made about the grade.

    Exam:

    The exam at the end of the course takes place in the laboratory, hands-on. It takes 90 minutes. Each student must solve 3 exercises that require modifications of his or hers solutions to homework assignments. Literature is not allowed.
    At the end, the solutions to the 3 exercises are checked in the student's presence. The student is required to comment the solutions and may expect some general questions regarding compilers as well.

    Grade:

    The final grade is based on the average of points collected at the homework assignments and the exam.

    Textbooks:

    1. Andrew W. Appel, Jens Palsberg. Modern Compiler Implementation in Java, 2nd Edition, Cambridge University Press, 2002.
    2. Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools (2nd Edition), Addison-Wesley, 2007.
    3. John R. Levine: Linkers & Loaders, Morgan Kaufmann Publishers, 2000.


    ... and finally: I'm sorry for my imperfect English.

  • 17 February - 23 February

    INTRODUCTION

    • 24 February - 1 March

      LEXICAL ANALYSIS

    • 2 March - 8 March

      SYNTAX ANALYSIS

    • 9 March - 15 March

      ABSTRACT SYNTAX

    • 16 March - 22 March

      SEMANTIC ANALYSIS

    • 23 March - 29 March

      SEMANTIC ANALYSIS

    • 30 March - 5 April

      ACTIVATION RECORDS

    • 6 April - 12 April

      INTERMEDIATE CODE GENERATION

    • 13 April - 19 April

      BASIC BLOCKS AND TRACES

    • 20 April - 26 April

      INSTRUCTION SELECTION

    • 18 May - 24 May

      PUTTING IT ALL TOGETHER