Code Optmi in Design
Code Optmi in Design
Department of Computer Science • Type setting systems like Latex, Nroff, Troff, Equation
• Where ever input has a structure one can think of
and Engineering, IIT Kanpur editors, M4 language processing
[email protected] • VLSI design and testing, • Why study compilers?
Compilers use the whole spectrum of language
• Software quality assurance and software testing processing technology
1 2 3
1
Organization of the course Class Notes Required Background and self
• Approximately 40 lectures of one hour each reading
• One large programming project to be done in group of four students. • Groups of three students to be formed by the instructor in
The project will have 4-5 parts and will be evaluated every 2-3 weeks round robin fashion • This is a 5 unit course and, therefore, will have about 25%
during the semester. It is important to start early. (25% credit) more load than other professional courses. You should be
– Copying old code is cheating. Do not Cheat. prepared for more work and long hours of programming
• Each group will be responsible for preparing notes (both
– Late submissions will be increasingly penalized. writing and editing) for two consecutive lectures
– Submissions must happen by noon on the due day • Courses in data structures, computer organization, operating
systems
• Some small programming assignments and home work (10% credit) • Notes should be related to slides or a group of slides
– Do not copy. However, you are free to discuss • Proficiency in C/C++/Java programming languages
– Late submissions will be increasingly penalized. • Notes should be added to the power point slides of the
– Submissions must happen by noon on the due day lectures
• Knowledge of at least one assembly language, assembler,
• Two mid semester examinations (15% + 15% credit) linker & loader, symbolic debugger
• Slides and notes will be made available to the students
• One end semester examination (30% credit) • You are expected to read the complete book (except the
• Deadline for notes: Seven days from the second lecture chapter on code optimization) on Compiler Design by Aho,
• Participation in the discussions in the class + class notes (5% credit) Sethi and Ullman. All the material will not be covered in the
lectures
7 8 9
2
Fortran I References • Compiler Design by Wilhelm and Maurer
• The first compiler had a huge impact on the • Compilers: Principles, Tools and Techniques by Aho, Sethi • A Retargetable Compiler: Design and Implementation by Fraser and
programming languages and computer science. The and Ullman Hanson
whole new field of compiler design was started soon to be replaced by “21st Century Compilers” by Aho,
Sethi, Ullman, and Lam • Compiler Construction by Wirth
• More than half the programmers were using • Crafting a Compiler in C by Fischer and LeBlanc • The Theory of Parsing, Translation and Compiling (vol 1 & 2) by Aho and
Fortran by 1958 soon to be replaced by “Crafting a Compiler” by Fischer Ullman (old classic)
• Programming Language Pragmatics by Scott • Compiler Design and Construction: Tools and Techniques by Pyster
• Led to enormous amount of theoretical work
(lexical analysis, parsing, optimization, structured • Engineering a Compiler by Anklam and Cutler
programming, code generation, error recovery • Engineering a Compiler by Cooper and Torczon
etc.) • Object Oriented Compiler Construction by Holmes
• Modern Compiler Implementation (in C and in Java) by Appel
• The Compiler Design Handbook edited by Srikant and Shankar
• Modern compilers preserve the basic structure of • Writing Compilers and Interpreters by Mak
the Fortran I compiler !!!
13 14 15