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 ]
Taylor Fah
Jared Arnold
Dustin Yu
Vera Xia
Wilson Lu
Chris Ngo
Raymond Qiu
Sean Rowan
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/]