COP 5555 - PRINCIPLES OF PROGRAMMING LANGUAGES
Spring 2013
Instructor: Dr. Manuel E. Bermudez
Schedule: M,W,F: 9th period NEB 102
Office: E574 CSE
E-mail: manuel@cise.ufl.edu
Phone: 352-505-1549
Office Hours: M,W,F: 8 periods
Website: http://www.cise.ufl.edu/~manuel/
Text: Programming Language Pragmatics 3rd Edition,
Michael Scott, Morgan Kaufman, 2009.
(second edition is OK)
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.
PROJECTS: There will a class project, involving the implementation
of a programming language. Projects are to be done individually,
and the implementation language must be in either Java or
C++.
GRADING: Project (2 reports) 30% Averages: A 92-100
Homeworks 10% A- 90-91
Midterm 25% B+ 87-89
Final 35% B 83-86
B- 80-82
C+ 77-79
C 73-76
C- 70-72
D+ 67-69
D 63-66
D- 60-62
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 minimal pun-
ishment being a grade of 'E' in the course.