COP 5555, Programming Language Principles
Course Description and Administration
COP 5555 - PRINCIPLES OF PROGRAMMING LANGUAGES
Summer 2008
Instructor: Dr. Manuel E. Bermudez
Schedule: M, W, F: 7th period, 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 2nd Edition,
Michael Scott, Morgan Kaufman, 2006.
Class Notes: available on this site.
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.
PROJECTS: There will a class project, involving the implementation
of a programming language. Groups of maximum size two are
allowed, and the implementation language must be Java or C++.
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
DISHONESTY:
Electronic copying of source code is strictly prohib-
ited. Students are encouraged to exchange advice and infor-
mation about programming projects, but working together,
especially at the computer, is not allowed unless explicitly
permitted by the instructor. Source code in this class is
collected by the instructor, and compared against source
code from other students, and code from previous semesters,
with great effectiveness in detecting similarities. Inci-
dents of students copying the work of other students will be
referred to the Student Honor Court, with the minimum pun-
ishment being a grade of 'E' in the course.
COURSE CALENDAR: Powerpoint Exam/Project
Lectures Dates
------------------------------------------------------------
May 2008
Su Mo Tu We Th Fr Sa
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17 Week 1 1,2,3
18 19 20 21 22 23 24 Week 2 4,5,6
25 26 27 28 29 30 31 Week 3 7,8,9
June 2008
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 Week 4 10,11
8 9 10 11 12 13 14 Week 5 12,13,14
15 16 17 18 19 20 21 Week 6 15,16 MIDTERM: JUNE 20
22 23 24 25 26 27 28 BREAK
29 30 Project 1 DUE 6/30
July 2008
Su Mo Tu We Th Fr Sa
1 2 3 4 5 Week 7 17,18,19
6 7 8 9 10 11 12 Week 8 20,21,22
13 14 15 16 17 18 19 Week 9 23,24,25
20 21 22 23 24 25 26 Week 10 26,27
27 28 29 30 31
August 2008
Su Mo Tu We Th Fr Sa
1 2 Week 11 28,29
3 4 5 6 7 8 9 Week 12 30,31,32 FINAL: AUGUST 8
10 11 12 13 14 15 16 PROJECT 2 DUE 8/8
17 18 19 20 21 22 23