CISC 670 Programming Languages (Fall 2002)
Time and Place
Lectures: Tuesday and Thursday 9:30 - 10:45am; Smith Hall 204
Web page: http://www.cis.udel.edu/~lliao/cis670
Course Catalog Description
Selection, use and implementation of appropriate language(s)
for given problems.
Syntax, semantics, pragmatics, parameter passing and abstract data types.
Detailed Description
Programming languages are central to computer science.
They lie between the algorithms and the hardware to get computation done.
This role determines that a programming langauge has to strike
a balance between the intricacies of both sides; A programming language
need to be expressive to easily
formulate understandable program and at the same time
to be able to compile efficient executable code.
This course is not meant to teach any specific language
(although we will mention many of them), nor is meant
to teach you how to craft a compiler (although you should know how to
build a simple compiler after this course).
This course is more about teaching you the general principles,
concepts and pragmatics in designing and implementing
a programming language. You will encounter many terms and concepts; some
are obvious, some are not. You may find it helpful to approach
the concept from different perspectives:
is the concept dictated by hard science, engineering purpose, or human factors?
For example:
Is it possible for compilers to detect all bugs of our programs up front?
Which garbage collection algorithm is more efficient?
Why do not we all agree to use just ONE programming language?
Specifically, you will learn:
- Programming Language Specification: Syntax and Semantics
- Overview of compilers, interpreters, programming environments, and tools
- Naming, Scoping, and Binding
- Type systems, data structures, data abstraction, and storage management
- Control Flow, subroutines, exception handling, and concurrency
- Imperative, object-oriented, functional, logic-based programming paradigms
Prerequisites
Programming skill in a general purpose language; an understanding of
basic data structures (e.g., CISC 220) and computer hardware at assembly level (e.g.,
CISC 260) is assumed.
Required Textbook
Programming Language Pragmatics,
by Michael Scott, (Morgan Kaufmann Publishers, 2000)
is the only required book for the course.
As Standard ML is the required language for all assignments, you may find
the following books on ML useful.
-
ML for the working programmer, by Lawrence Paulson, Combridge University Press, 1997.
-
Elements of ML Programming (ML97 Edition), by Jeffrey D. Ullman, Prentice Hall, 1998.
There are plenty of materials about ML free on-line, including
Assignments and Grading
There will be 5 homework assignments. Each homework is mainly a programming assignment using some toy languages that
let you practice with the important concepts and/or techniques
of language design and implementation.
Standard ML is the required language for all assignments
unless otherwise stated. The programs handed in should be well-documented,
so that the logic can be understood and thus credited properly even if
the programs may not run 100% correctly.
All late assignments are subject to 20% penalty for the first 24 hours
past the due time, 10% per 24 hours thereafter
(Saturdays and Sundays do not count).
Assignments are not accepted one week past due time (e.g., if it is
due at 9:30AM of Tuesday, it is not accepted after 9:30AM of next Tuesday).
Homeworks 40%, Mid-term 25%, and Final 35%
Policy on Academic Dishonesty
The assignments in this class should be performed individually.
You are permitted to discuss with other students on any conceptual problems
but not for concrete code and implementation on any programming assignments.
The work handed in must be entirely your own.
Any evidence of academic dishonesty will be handled as stated
in the Official Student
Handbook
of the University of Delaware.
If you are in doubt regarding the requirements, please consult with me
before you complete any requirement of this course.
Course Staff and Contact
Staff |
Name |
Office |
Email |
Phone |
Office Hours |
Instructor |
Li Liao |
Rm 204, 77 E. Delaware Ave. |
lliao@cis.udel.edu |
831-3500 |
1:30-3:00pm Tuesdays and Thursdays, or by appointment |
TA |
Ilknur Aydin |
051 East Main Street, Room 005 |
aydin@cis.udel.edu |
|
12:00-2:00pm Wednesdays |