Sunteți pe pagina 1din 3

Programming Languages and Compilers

CPSC 905 Summer 2003


Syllabus
Class Meeting: WR 6:00pm 9:30pm, E 202

Instructor: Chang-Hyun Jo
Office: CS 524, (714) 278-7255, jo@ecs.fullerton.edu
Office Hours: WR 9:30pm 10:00pm
(after classes or by appointment)

Teaching Assistant: Not available

Text:
Thomas W. Parsons, Introduction to Compiler Construction, W.H.
Freeman and Company, 1992. (ISBN: 0-7167-8261-8)
Sebesta, Robert W. Concepts of Programming Languages, 5th Edition,
Addison Wesley, 2002. (ISBN: 0-201-75295-6)

References:
V. Aho, R. Sethi, and J. D. Ullman, Compilers: Principles, Techniques, and Tools,
Addison-Wesley, 1986, (ISBN: 0-201-10088-6).
Levine, John, Mason, Tony and Brown, Doug. lex & yacc, 2nd Ed., OReilly, 1992,
(ISBN: 1-56592-000-7).
Siber Systems. BtYacc, http://www.siber.com/btyacc/, (1999).
Sethi, Ravi. Programming Languages: Concepts and Constructs, (2nd Ed.), Addison-
Wesley, (1997). (ISBN: 0-201-59065-4)
Ghezzi, C. and M. Jazayeri, Programming Language Concepts, 3rd Ed., John Wiley &
Sons, 1998. (ISBN: 0-471-10426-4)
MacLennan, Bruce J. Principles of Programming Languages: Design, Evaluation, and
Implementation, 3rd Ed., Oxford Press, 1999. (ISBN: 0-19-511306-3)
Mitchell, John C. Foundations for Programming Languages, MIT Press, 1996. (ISBN: 0-
262-13321-0)
Pratt, T. W. and M. V. Zelkowitz, Programming Languages: Design and Implementation,
3rd Ed., Prentice-Hall, 1996. (ISBN: 0-13-678012-1)
Other related books, papers, handouts and web sites.

Goals of the course:


This course is designed for graduate students who do not have B.S. degree in Computer
Science. This course combines the major topics extracted from two undergraduate
prerequisite courses, CPSC 321 High-Level Language Concepts and CPSC 423
Language Processor Techniques. In this course, students will learn fundamental concepts
of the programming languages and compiler writing techniques.

CSU Fullerton Computer Science 1/3 Summer 2003


Prerequisite: CPSC 904

Recommended:
CPSC 131, CPSC 223A, CPSC 223J, CPSC 223V, CPSC 240, CPSC 253U, CPSC 331,
CPSC 351, or equivalent.
Study of the basic concepts in data structures, algorithms, computer organization,
assembly language, high-level programming languages, formal languages, and operating
systems is recommended.

Grading: Mid-term Exam (30%), Final Exam (30%), Term-Project (40%).


A: 90%+, B: 80%+, C: 70%+, D: 50%+, F: 49%- (tentative)

Important Dates:
June 2 Instruction begins (Mon.)
July 7-11 Final Exams (July 10, Thursday)

Policies:
1. Homeworks should be submitted just before the class of the due date. Late
homeworks or missed exams will be excused only for unforeseen or unavoidable
circumstances. Some homeworks need to be handed in electronically. Unexcused
late assignments receive no credit.
2. Copying someone elses work and passing it off as your own is considered as
academic dishonesty, which is not allowed.
3. You may find it is very useful for you to use the e-mail to have an asynchronous
meeting with me for any questions about the class. Some e-mails will be replied to
the class students in public if the question/answer seems to be helpful to all based on
the instructors judgement.
4. You may also schedule a meeting by phone or e-mail if the office hours are not
available for you.

Attendance:
Regular attendance is expected. Students need to answer for any question from instructor
in the class. The questions are usually related to the lectures and text. These
questions/answers may be covered on the exams.

Accounts:
You may use any computer/operating systems for programming assignments. If you do
not already have a CSUF account, you can apply for one through your department.

On-Line Information:
Class notes, announcements, homework and helpful information will be usually available
on the World Wide Web and/or by e-mails. Our class homepage is accessible at
"http://www.ecs.fullerton.edu/~jo".

Homework: Homework will be announced by on-line or handouts in class.

CSU Fullerton Computer Science 2/3 Summer 2003


Course outlines:
Weeks Dates Contents
1 June 4 Introduction to Class, Homework and Exams
Introduction to Compilation (Parsons Ch.1)
5 Lexical Analysis (Parsons Ch.2) (Sebesta Ch.3, Ch.4)
LEX (Parsons Appendix B)
2 11 Syntax Analysis (Parsons Ch.3) (Sebesta Ch.3, Ch.4)
12 Bottom-Up Parsing (Parsons Ch.4)
YACC (Parsons Appendix B)
3 18 Intermediate Code Generation (Parsons Ch.5)
19 Programming Languages History (Sebesta Ch.1, Ch.2)
Imperative Programming (Sebesta Ch.5 10)
Concurrent Programming Languages (Sebesta Ch.13)
4 25 (Conference, June. 24-26, Tues.-Thurs.)
26
5 July 2 Mid-Term Exam (July 2, Wed.); Term-Project Front-End Due
3 Functional Programming Languages (Sebesta Ch.15)
Logic Programming Languages (Sebesta Ch.16)
6 9 Object-Oriented Programming (Sebesta Ch.12)
10 Final Exams (July 10, Thursday); Term-Project Due and Demonstration

Disclaimer: This syllabus is intended to suggest the outline of the course; it is not absolute.

CSU Fullerton Computer Science 3/3 Summer 2003

S-ar putea să vă placă și