Toward the Joint Course on
Compiler Construction
Mirjana Ivanović, PMF Novi Sad
Dragan Bojić ETF Belgrade
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Toward the JCCC
•
•
•
•
Where we started
The Current State
JCCC Syllabus Proposal
Agenda for Future work
Where we started…
Summary of Answers to the Initial Inquiry (2004):
• BERLIN (Klaus Bothe)
• NOVI SAD (Mirjana Ivanović)
• BELGRADE (Dragan Bojić)
Lecturer’s availability and willingness:
• to CREATE joint teaching materials
– 2 very good
– 1 fair
• to USE joint teaching materials
– 3 very good
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Summary of Answers...
• Place of the course in the curriculum
BERLIN: 3rd semester, 60 + 30 hours, ~150
students
NOVI SAD: 7th&8th semester, 60 + 30 + 30
Hours ~ 50 students
BEOGRAD: 7th&8th semester, 70 + 56 hours,
~90 students (this year, 150, expected even
more)
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Summary of Answers...
• Methodology, exams, and grade (2004)
BER: students required to finish a practical project
NS: before: written & oral exam
now: practical work & oral exam
BG: obligatory practical homework (one time) +
written & oral exam
This year: 4x practical homework during lecture
period + written exam (40/60)
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Summary…Improvements
BER:
• New topics: translation of OO constructs, optimizations
• New case study (input language should not be Pascal)
NS:
• To add more theory
• New case study (Java as an implementation language)
• To make course more interesting to students
BG:
• To add a complete case study
• To omit some topics, to add new about OO constructs
• To make course more interesting to students (“pure
theoretical” approach not very attractive)
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Desirable attributes of a new
Case Study
Real life input languages and educational
languages
• Object-orientation in the input language,
and/or OO in compiler implementation
• Contemporary implementation language
• microJava: prof. Mössenböck, Univ. of Linz,
subset of java, VM, written in java
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Toward the JCCC
•
•
•
•
Where we started
The Current State
JCCC Syllabus Proposal
Agenda for Future work
The Current State of the CC
Course in Belgrade
• 4th year, two semestral, 2+2+1
(lec+exerc+lab)
• In the reformed curriculum (next school
year) two 1-semestral courses (4th year),
first mandatory, second elective
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
The Current State of the CC
Course in Belgrade (...)
• Changes from the previous school year:
• Lecturer changed
• Introduction of the case study (there was no case
study in the old course):
– microJava (mJ) [Mössenböck]
– 4 mandatory projects for mJ: lexical analyzer, parser,
symbol table, code generator
– With modifications to the orig. concept of mJ: bottomup parsing, both java and c++ implementation, objectoriented mJ planned in future
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
The Current State of the CC
Course in Belgrade (...)
• Changes in the syllabis:
• Several Topics reduced or completely left out
(criterion: usage in practice and obsolence):
– Some kinds of gramatical classes and transformations,
Operator precendence parsing, multi state pushdown
automata, fortran symbol management and run time
issues, etc.
• Added topics related to:
– Several overview topics on design of microJava
compiler (details on exercises), type checking,
compiling object-oriented constructs, virtual machines
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
The Current State of the CC
Course in Belgrade (...)
•
Sources and Literature:
–
–
•
Lecture material of prof. Mössenböck concering
microJava (no book yet)
Appel, Modern Compiler Implementation in Java,
Second Ed, 2002.
Legacy but still useful:
–
–
A. R. Sethi, J.D. Ullman, Compilers/Principles, Techniques and
Tools, Addison-Wesley, 1986
C. Fischer, R. LeBlanc, Crafting a Compiler, BenjamingCummings 1988
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
The Current State of the CC
Course in Novi Sad (...)
• New courses
• 7th& semester, Compiler Construction I,
obligatory
• 8th semester, Compiler Construction II, elective
• Lectures + Exercises + Lab = 30+30+15
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
The Current State of the CC
Course in Novi Sad (...)
• Compiler Construction I
– Complete material of prof. Mössenböck course
concerning microJava
– Advantages of new course:
• Concepts of compiler construction are shown on more
formal way
• Modern and object-oriented language is used (Java and
Java byte code)
• Students autonomously write (almost) whole compiler
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
The Current State of the CC
Course in Novi Sad (...)
• Compiler Construction II
– More theoretical, Automata theory, Formal
languages theory
– Other parsing methods (LR, LALR)
– Detailed presentation of code generation
– Different techniques of code optimization
– Exercises and practical work – Real-world (more
serious project)
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
The Current State of the CC
Course in Novi Sad (...)
• Literature
– Teaching material of prof. Mössenböck
– Appel, Modern Compiler Implementation in Java, Second
Ed, 2002
– A. V. Aho, R. Sethi, J. D. Ullman "Compilers, Principles,
Techniques and Tools, Addison-Wesley, 1985
– J. P. Trembley, P. G. Sorenson, "The Theory and Practice
of Compiler Writing", McGraw Hill, 1985
– M. Ivanović: Compiler Construction, Draft version of
teaching material, (one of sources for book in Serbian)
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Toward the JCCC
•
•
•
•
Where we started
The Current State
JCCC Syllabus Proposal
Agenda for Future work
JCCC Syllabus Proposal
• JCCC_Syllabus.doc
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Toward the JCCC
•
•
•
•
Where we started
The Current State
JCCC Syllabus Proposal
Agenda for Future work
Agenda for Future work
• To adopt a joint syllabus
• To produce teaching material in English in
appropriate form (ppt)
– Basic topics (mostly for Compiler Construction I
course)
– Advanced topics (mostly for Compiler Construction II
course)
• To write a book in Serbian
5th Workshop “Software Engineering Education and Reverse Engineering”
Baile Herculanum 28.8. – 3.9.2005
Descargar

About the structure of compiler construction course