Personen | Personen nieuwe site | Google | Route | Contact Login 
Course details 2012-2013  
    
Compilers
Course Code :2001WETCOP
Study domain:Computer Science
Semester:Semester: 1st/2nd semester
Contact hours:60
Credits:6
Study load (hours):168
Contract restrictions: No contract restriction
Language of instruction :English
Exam period:exam in the 1st and/or 2nd semester
Lecturer(s)Dirk Janssens

 


1. Prerequisites

At the start of this course the student should have acquired the following competences:
Specific prerequisites for this course:
You need some experience in writing and testing moderately complex programs (say a few hundred lines)  in an imperative or object-oriented language. Basic knowledge about context-free grammars and finite automata is also required.


2. Learning outcomes

The aim is to get an insight into the functionality and the design of a compiler, including the role played by the various formal techniques developed this purpose. The students are expected to build a functioning compiler for a given sublanguage of C.


3. Course contents

This course discusses the structure of a typical compiler for an imperative language. First we focus on a precise specification of the task to be carried out by a compiler: for the various syntactical constructs of the source language a translation is given in terms of code for a (virtual) target machine, and we specify how these pieces of code are combined into a complete target program. Then the different phases of the translation process are discussed in more detail, including the formal techniques that support them: automata and contextfree grammars, LL and LR parsing, attribute grammars.




4. Teaching method

Class contact teaching:
  • Lectures

  • Project-based work:
  • In group



  • 5. Assessment method and criteria

    Examination:
  • Written without oral presentation

  • Continuous assessment:
  • Assignments

  • Presentation

    6. Study material

    Required reading

    (Slides of the lectures)





    Optional reading

    The following study material can be studied on a voluntary basis:

    First part of the course is based on:

    Reinhard Wilhelm, Helmut Seidl, Compiler Design, Springer, ISBN-13: 9873642149092


    Second part is based on:

    Charles N. Fischer, Ron K. Cytron, Richard J. LeBlanc, Crafting a Compiler, Pearson, ISBN-13: 9780138017859



    As the material is quite standard for an introductory course in compilers, background information can be found in a number of handbooks; the presentation may differ somewhat, however. Such handbooks are, e.g.


    Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools,

    Addison-Wesley, ISBN-13: 9780321493453


    Aho, Alfred V.; Sethi, Ravi; Ullman, Jeffrey D; Compilers: principles, techniques and tools

    ISBN 0-201-10194-7 Addison-Wesley, Reading, Mass., 1986 (this is an older version of the previous one)


    Terry, Pat; Compiling with C# and Java, ISBN 0-321-26360-X, Pearson, Harlow, 2005





    7. Contact information
    Lecturer: D. Janssens (Dirk.Janssens@ua.ac.be)
    Assistant: J. Buys (Jonas.Buys@ua.ac.be)

    (+)last update: 22/08/2013 10:37 dirk.janssens