Compiler and Language Processing Tools
Organisational Issues
Dr.-Ing. Ina Schaefer
Software Technology Group TU Kaiserslautern
General Information
Contact Information:
• Lecture: Dr.-Ing Ina Schaefer Office 32/430 Phone 39 58
Email:inschaef@cs.uni-kl.de Office Hours: Tuesdays 9 - 10 am
• Classes: Dipl.-Inf. Jean-Marie Gaillourdet Office 34/406
Phone 32 72
Email:jmg+clpt@cs.uni-kl.de
• Website for Lecture:
http://softech.informatik.uni-kl.de/Homepage/CLP_SS09
Compiler and Language Processing Tools
• Master Course, 8 ECTS Credits, Lectures and Classes (3+3)
• Consecutive Master Course Computer Science
with Specialization in Software Engineering or Verification
• Consecutive Master Course Applied Computer Science with Specialization in Embedded Systems
• Non-consecutive Master Course Applied Computer Science with Specialization in Software Engineering
• Oral Exam
Content and Educational Objectives
Content of Lecture
1. Introduction: Overview and Motivation 2. Syntax- and Type Analysis
2.1 Lexical Analysis
2.2 Context-free Syntax Analysis 2.3 Context-sensitive Syntax Analysis 3. Translation to Target Language
3.1 Translation of Imperative Language Constructs 3.2 Translation of Object-Oriented Language Constructs 4. Selected Aspects of Compilers
4.1 Intermediate Languages 4.2 Optimization
4.3 Command Selection 4.4 Register Allocation 4.5 Code Generation 5. Garbage Collection
6. XML Processing (DOM, SAX, XSLT)
Content and Educational Objectives
Educational Objectives
• Knowledge on how to implement Programming Languages in particular on Construction of Compilers
• Deeper Knowledge about Programming Languages
• Detailled Knowledge of Program Execution
• Application of Multi-Purpose Methods and Tools
• Interaction between Theory, Algorithms and Engineering Techniques
(can be transferred to Other Areas of Computer Science)
Lectures
Lectures
• Mondays and Wednesdays, 1000h - 1130h, 48/462
• Slides are made available on our website.
• But take your own notes!
• New:Exam Questions
• New:Short Presentations
Lectures
Exam Questions
• After each lecture, each student formulates an exam question with the associated answer for the content of the lecture.
• The question has to be sent via Email toinschaef@cs.uni-kl.de andjmg+clpt@cs.uni-kl.deon the day of the lecture.
• Questions are discussed in the lecture and in the classes and (partially) used for the oral exam.
• Objectives:
I Questions help you to revise the content of the lecture and to identify important concepts.
I Questions help us to get immediate feedback about what you think is important.
Lectures
Short Presentations
• In the second lecture, each student is assigned a topic for a short presentation.
• Topics are related to history of programming languages and compilers, practical applications of compiler technology, theoretical foundations, ....
• Students prepare the short presentation using literature and internet research. Presentation is supposed to take 5 Minutes, maximum 3 slides.
Lectures
Short Presentations (2)
• Students give their short presentations in the lecture if the topic matches the content of the lecture.
(Notification: Lecture before Presentation)
• Short Presentations help you to improve your skills in literature research and presentation.
• Short Presentations provide content extending the standard curriculum.
Lectures
Literature
Lecture provides guidelines for your own literature studies and gives explicit references to literature. Use literature studies as opportunity to deepen your knowledge!
Recommended Reading:
• R. Wilhelm, D. Maurer: Übersetzerbau (Compiler Design), Springer-Verlag, 1992
• A. Appel: Modern Compiler Implementation in Java, Cambridge University Press, 1999
• Many other books on compiler design are available in the computer science library!
Classes
Classes
• Tuesdays, 1715 - 1845, or Thursdays, 815 - 945, in 32/439 Decide on Time!
• First Class on April, 28 or April, 30
• Organisation: Dipl.-Inf. Jean-Marie Gaillourdet
• Problem Sheets and Practical Assignments
• New:Tool Labs
Classes
Problem Sheets and Practical Assignments
• Mix of Theoretical Questions and Practical Implementation
• Objective:Implementation a compiler in all its phases!
• Problem Sheets:
I Given out in the Monday Lecture (and on the Web)
I Work on Problems in 2-Person-Teams
I Solutions to be handed in during following Monday Lecture
I Discussed in the class of that week.
• First Problem Sheet:
I Given out: Today (April, 20)
I Hand in: Next Week Monday (April, 27)
I Discussion in classes next week (April, 28, or April, 30)
Classes
Tool Labs
Detailed Hands-On Introduction to Technologies required for Practical Assignments
• Katja Lab: May, 11, or May, 13
• MIPS Lab: End of May
• XML Lab: Beginning of July
Exam
Oral Exam
• Dates: Beginning of August 2009
• Prerequists:
I 2/3 of the Problem Sheets have to be completed reasonably.
I Exam Questions
I Short Presentation in Lecture