COP 5555 - PRINCIPLES OF PROGRAMMING LANGUAGES Summer 2006 Instructor: Dr. Manuel E. Bermudez Schedule: Tu: 5-6, Th 6 CSE 107 Office: E362 CSE Phone: (352)-392-1534 (desk) E-mail: manuel@cise.ufl.edu Office Hours: See my home page: http://www.cise.ufl.edu/~manuel/ Text: Programming Language Pragmatics, Michael Scott, second edition, Morgan Kaufman, 2000. Class Notes: available on my home page. COURSE DESCRIPTION: This course will cover the central principles of designing and implementing programming languages. The four main paradigms of programming will becovered: imperative, object- oriented, functional, and logic programming. Programming language specification (syntax and semantics) is emphasized, and special attention is given to the functional paradigm because of its usefulness in specifying the semantics of imperative languages. There will be a class project, in which students will implement portions of a programming anguage. At the end of this course, students should be able to: 1. Understand the central issues and principles governing the design of modern programming languages. 2. Understand the fundamental differences between the four major programming language paradigms. 3. Understand the value of operational and denotational semantic specifications of programming languages. 4. Implement a syntax analyzer for any programming language. 5. Understand the process of translation of a program in a high-level language to a low-level language. PREREQUISITES: COP 3530 Data and Program Structures, graduate standing and/or consent of instructor. Further, you should be a pro- ficient programmer, capable of understanding and implement- ing sophisticated data structures modularly, quickly and efficiently. Familiarity with several high-level program- ming languages is useful but not necessary. ATTENDANCE: Strongly recommended: class notes describe each of the major components of the class project, and they will be discussed in class. Attendance is mandatory for all tests. GRADING: Project (2 reports) 30% Averages: A 90-100 Homeworks 10% B+ 86-89 Midterm 25% B 80-85 Final 35% C+ 76-79 C 70-75 D+ 66-69 D 60-65 E 0-59 WORKLOAD: Students who take this course often comment that the course material is fundamental and important. They also comment that the course project can be quite demanding, and that the amount of material covered is quite extensive.