Syllabus
- Instructor:
- Dr. Garo Bournoutian
- Office EBU3B 4124
- Office Hours: Mon/Wed 7:50-8:30p (immediately after class in Galbriath Hall 242) or by appt
- garo@ucsd.edu
- Homepage
- Tutors:
- Head Tutors: Victor Alor [ valor@ucsd.edu ] and Eduardo Ramirez [ eduardo@ucsd.edu ]
- See the Lab Hours for schedule of when all the tutors are available in the CSE lab.
- Lectures:
- Mondays & Wednesdays 6:30 - 7:50pm
- Galbriath Hall 242
- Discussion Sections:
- Fridays 4:00 - 4:50pm
- York Hall 2622
- Lab:
- EBU3B B240 -- 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 a 50% average in the Programming Projects category in order to receive a grade of C- or higher.
- 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.
- 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/]