Programming Language Translation

advertisement

UNIZG-FER 86504 Programming Language Translation

Programming Language Translation

Guide for ERASMUS and other English-speaking students

The course "Programming Language Translation" is an English Level 1 course. That means that all teaching activities are held in Croatian. However, foreign students in mixed groups have the opportunity to attend additional office hours with the lecturers and teaching assistants in

English to help master the course materials. Additionally, the lecturers will refer foreign students to the literature in English, as well as give them the possibility of taking the exams in English.

Forms of Teaching

Independent study of recommended reading

Laboratory exercises

Individual office hours with the lecturers and teaching assistants (on-demand)

Recommended Reading

[1] Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman: Compilers: Principles,

Techniques, and Tools (2nd Edition) , Addison Wesley, 2006

Exams

Exams are conducted through two written tests. The midterm exam in the middle of the semester covers the topics related to the lexical analysis, syntax analysis, and semantic analysis. The final exam at the end of the semester covers the entire course topic.

Midterm Exam

Selected topics from [1]

1.

Introduction

2.

A Simple Syntax-Directed Translator

3.

Lexical Analysis o excluding sections:

3.9 Optimization of DFA-Based Pattern Matchers

UNIZG-FER 86504 Programming Language Translation

4.

Syntax Analysis o excluding sections:

4.7.5 Efficient Construction of LALR Parsing Tables

5.

Syntax-Directed Translation o excluding sections:

5.2.3 S-Attributed Definitions

5.5.4 Bottom-Up Parsing of L-Attributed SDD's

Final Exam

All topics included in the midterm exam +

6.

Intermediate-Code Generation o excluding sections:

6.1.2 The Value-Number Method for Constructing DAG's

6.3.6 Fields in Records and Classes

6.5.3 Overloading of Functions and Operators

6.5.4 Type Inference and Polymorphic Functions

6.8 Switch Statements

7.

Run-Time Environments (sections 7.1, 7.2, 7.3 only) o excluding sections:

7.2.4 Variable-Length Data on the Stack

8.

Code Generation o excluding sections:

8.5.5 Representation of Array References

8.5.6 Pointer Assignments and Procedure Calls

8.8.2 Usage Counts

8.8.3 Register Assignment for Outer Loops

8.9.3 Pattern Matching by Parsing

8.9.4 Routines for Semantic Checking

8.9.5 General Tree Matching

8.10 Optimal Code Generation for Expressions

8.11 Dynamic Programming Code-Generation

Laboratory Exercises

Exchange students can choose between two options for doing laboratory exercises. One option is to do a lab in a team as other non-exchange students do. Another option is to work individually on a separate project. Please, choose the option that fits better for you and let us know as soon as possible.

UNIZG-FER 86504 Programming Language Translation

Option 1: Team Work

Labs are organized as group projects. Students grouped into teams of up to 6 members (one of them being the team leader) build their own compiler. It is the exchange student’s responsibility to find a group of other students to work with.

We recommend our exchange students to find a group as soon as possible. This is either possible by visiting lecture hours to socialize and to find a group to join or to contact team leaders via email. Contact information of team leaders will be either announced on the course web site during the first week of the semester or sent by email on request.

Important notice: Since the lab instructions are not available in English, this option might require some additional effort from group leader and other members to explain exchange students what to do.

Option 2: Individual Work

Exchange students work individually on a separate project, using Lex/Yacc parser generators.

Depending on the number of exchange students enrolled, this option can also be conducted as a team project.

Assessments

Midterm exam + final exam o

Minimum to pass: 50 % (no additional assessments on particular exams) o

Ratio in overall grade: 75 %

Laboratory exercises: o

Minimum to pass: 50 % o

Ratio in overall grade: 25 %

Grading

Acceptable (2)

Good (3)

Very Good (4)

Excellent (5)

50 %

63 %

75 %

88 %

Download