PROGRAMMING LANGUAGE PRINCIPLES


Catalog Description
3 credits
An introduction to programming language principles, including the
history of programming languages, formal models for specifying
languages,
design goals, run-time structures, and implementation techniques,
along
with a survey of the principal programming language paradigms.
Textbook(s)
Programming Language Pragmatics, Michael L. Scott, Morgan
Kaufman Publishers,
2000, ISBN 1-55860-442-1 (hardback) or ISBN 1-55860-578-9 (paperback)
Formal Syntax and Semantics of Programming Languages,
Kenneth Slonneger
and Barry L. Kurz. Addison Wesley, 1995. (Selected
chapters) This book
is currently out of print but is available on the web at URL
www.cs.uiowa.edu/~slonnegr/plf/Book
Reference(s)
ML for the Working Programmer, Lawrence C. Paulson, 1996.
Concurrent Programming, Principles and Practice, Gregory
Andrews, 1991.
Concepts of Programming Languages, Robert Sebesta, 1996, 3rd
edition,
Benjamin-Cummings.
Essentials of Programming Languages, Friedman, Wand and Haynes,
1992.
McGraw-Hill.
Professor
Beverly A. Sanders, Associate Professor
Ph.D., 1985, Harvard University
Address: PO Box 116120
Office: CSE 322
Phone: (352) 392-1528
e-mail: sanders@cise.ufl.edu
www.cise.ufl.edu/~sanders
Prerequisites by Topic
COP 3530 - Data Structures or equivalent.
Goals
To introduce the student to the principles of programming languages,
including their specification, design, implementation, and
classification
into paradigms. Additionally, to give the student a survey of
the
principal programming language paradigms.
Topics
I. Specification of programming languages
A. Syntax
B. Semantics
1. Operational
semantics
2. Axiomatic
semantics
3. Attribute
grammars
4. Denotational
semantics
II. Issues in language design
A. Names, scope and bindings
B. Types
C. Control flow
D. Subroutines and control
abstractions
III. The principal programming language paradigms
A. Data abstraction and object
oriented programming
(Examples: Java, Smalltalk, C++)
B. Nonimperative paradigms
1. The
functional paradigm (Examples: Scheme, ML)
2. The
logic paradigm (Example: Prolog)
C. Concurrent programming
(Examples: Java, SR)
Project(s)
Course projects are at instructor's discretion. Traditionally,
however,
students implement a complete language processor.
Computer Support Required
Implementations of Java, and ML
will be required.