Syllabus


Instructor:
Dr. Garo Bournoutian
Office EBU3B 4124
Office Hours: Mon/Wed 6:20-7:00p (immediately after class in Center Hall 113) or by appt
garo@ucsd.edu
Tutors:
Head Tutor: Ren Lee [ yhl012@ucsd.edu ]
See the Lab Hours for schedule of when TAs and Tutors are available in the CSE lab.
Lectures:
Mondays & Wednesdays 5:00 - 6:20pm
Center Hall 113
Discussion Sections:
Fridays 3:00 - 3:50pm
Pepper Canyon Hall 106
Lab:
EBU3B B220 -- where Tutors will be on duty
All files, turnin, linking and execution of generated code will be run on ieng9.ucsd.edu Sun SPARC architecture
References:
• Aho, Lam, Sethi, and Ullman, Compilers: Principles, Techniques, and Tools, 2nd Edition, Addison Wesley, 2007.
• Keith Cooper and Linda Torczon, Engineering a Compiler, Elsevier/Morgan Kaugmann, 2004.
• Michael L. Scott, Programming Language Pragmatics, 2nd Edition, Morgan Kaufmann Publishers, 2005.
• Dick Grune, Henri Bal, Ceriel Jacobs, Koen Langendoen, Modern Compiler Design, Wiley, 2000.
• Andrew W. Appel, Modern Compiler Implementation in Java, 2nd Edition, Cambridge University Press, 2002.
• Richard P. Paul, SPARC Architecture, Assembly Language Programming & C, 2nd Edition, Prentice Hall, 1999.
SPARC Assembly Language Reference Manual (Ignore SPARC-V9 Instruction Set)
Grading:
5 Quizzes 10%
2 Programming Projects 45%
1 Midterm 15%
1 Final 30%
          
A- / A / A+ 90-100%
B- / B / B+ 80-90%
C- / C / C+ 70-80%
D 60-70%
F < 60%
You must earn at least 50% of the possible points on the Programming Projects to receive a passing grade (C- or better).
Major Course Concepts:
Semantic Analysis -- Ch. 1-6 (C:PTT); Ch. 4 (EAC); Ch. 1-4, 7 (PLP)
Emphasis on Type Checking
Runtime Environment -- Ch. 7 (C:PTT); Ch. 5-7 (EAC); Ch. 3, 7-10 (PLP)
Emphasis on C/C++ and Java/C# runtime architectures and memory management
Code Generation -- Ch. 8-9 (C:PTT); Ch. 7, 11-13 (EAC); Ch. 5-6, 14 (PLP)
Code shape issues. Procedure call abstraction. OOP/polymorphism implementation.
Project target code is Sun SPARC assembly. Hence the subtitle: More Assembly Required.
Code Optimization/Improvement -- Ch. 9-10 (C:PTT); Ch. 8-10 (EAC); Ch. 15 (PLP)
Machine independent and machine dependent code improvements.
Local and global code improvements.
Programming Projects:
Reduced-C translator (defined subset of the C++ Programming Language)
Project 1 -- Static Semantic Analysis with emphasis on Static Type Checking/Error Reporting
Project 2 -- Code Generation (to SPARC Assembly) with some dynamic runtime checks
Most project details covered in Discussion Sections including starter code
We do run MOSS (Measure Of Software Similarity) - cheating will not be tolerated

CSE 131 Home Page
[http://cseweb.ucsd.edu/~gbournou/CSE131/]