Algoma University College
Computer Science 3127
Programming Languages
Fall 1996/97
(Wednesday: 7:00 - 9:45 pm)
Instructor:
Dr. Pawan J. Lingras
Description:
This course is designed to introduce the student to the key concepts
which underlie the design, implementation and run-time behaviour of
modern programming languages.
Formal methods of programming language definition will be introduced and
utilized throughout the course to clarify the difference between the
syntax ("look" or grammar) of a language and its semantics (meaning or
behaviour).
Run-time considerations such as dynamic storage allocation, parameter
passing techniques, variable binding and control of recursion will be
studied.
Comparative study of distinct paradigms of programming languages -
imperative, functional and logical - will be used to give the student
fresh perspectives on the tools all programmers take for granted - the
languages themselves. This will lay a foundation for considering just what
"all the fuss is" about object-oriented programming.
Programming examples in languages as diverse as Scheme, Prolog, FORTRAN,
C, C++, Smalltalk, Java, and Pascal will provide the student with insight
into the strengths and limitations of current programming tools.
Motivation
There is much more to programming language design than meets the eye.
Designers are faced with different, often conflicting, objectives and
purposes. Practice and theory are not always easy to match. Many
theoretical issues remain unsolved. Many bright ideas have been tried. A
few have succeeded so well that they have bred complacency.
Consider the following statement:
No computer program of any significant size and complexity has ever been
delivered which was simultaneously on time, within budget, and correct.
To what extent is this deplorable situation the fault of our not yet
having, or using, the right tools (languages) for the job? Where is the
"Science" in Computer Science?
Brief Class Outline:
READ TOPIC
1) Ch.1 & 10 Introduction and formal syntax definition
2) Ch.2 Programming language elements
3) Ch.3 structured programming
4) Ch 4 Data representation
5) Ch 5 Procedure Activation
7) Ch 6 Data abstraction/encapsulation
8) Ch 6 Inheritance and polymorphism
9) Ch.7 Functional programming
10) Ch.8 Logic programming
- Text:
-
Sethi, R.
1996.
Programming Languages: Concepts & Constructs,
Second Edition,
Addison Wesley,
Don Mills, Ontario.