Comparative Programming Languages: Third Edition
|
Welcome to the support pages
for the new third edition of Comparative Programming Languages
by L.B. Wilson
and R.G. Clark, updated by R.G. Clark. The book is published by
Addison-Wesley (2001, ISBN 0-201-71012-9).
Information (
USA
,
Europe, Middle
East, Africa
) from Addison Wesley Longman and Pearson Education is available.
|
This page is being developed incrementally.
So, do return to see what additions have been made.
There are links to supplementary information from the
Table of Contents.
Summary
This book considers the principal programming language concepts and how
they are dealt with in object-oriented languages such as Java and Delphi,
in traditional procedural languages such as Pascal, C and Fortran,
in hybrid object-oriented or object-based languages such as C++ and
Ada 95, in functional languages such as ML and in logic languages like Prolog.
The approach is to find common ground between languages and to
identify the underlying principles.
Although the top-level organisation of a program written in an
object-oriented language is different from that of one
written in a procedural language, their underlying principles are the same.
Similarly, although the approach of logic languages and functional
languages is different from that of procedural and object-oriented
languages, there are many areas of similarity, and seeing these
helps us to understand the differences better.
There have been major developments in programming languages and their
use since the second edition was published in 1993 and the changes
in the new edition reflect this.
Although object orientation was a major paradigm in 1993, object-oriented
languages had not achieved the central position that they enjoy today.
Secondly, features to support Graphical User Interfaces (GUIs)
have only recently become an integral part of language design.
This has meant that topics such as event-driven programming have
moved from being advanced to being taught in introductory courses.
Key features of the third edition include:
- Java joins Pascal and C++ as one of the central languages
used in the book.
- The object-oriented approach plays a central role.
- Discussion of language support for graphical user interfaces
and event-driven programs.
- Scripting languages such as Perl.
- The discussion of concurrency is centred on Ada 95 tasks and Java
threads.
- Internet programming, including applets, CGI programs and CORBA.
- Concise end-of-chapter summaries, numerous exercises and many
practical examples as well as detailed language references.
- This web site which will provide course support and executable program
examples.
Origins of the Book
The book was developed from a course given at the University of Stirling.
The course syllabus and related information from the
Spring 2004
presentation of the course is available.
The second assessed assignment for this course requires a student to
write a report on one of a list of topics.
Chapters 1 to 6 introduce the basic concepts and are best read in the
given order. Chapters 7 onwards build on earlier material and,
as they are largely self-contained, can be taken in any order.
Each chapter contains a synopsis, outlining the major topics to be
covered, a concise end-of-chapter summary, exercises and an
annotated bibliography.
Solutions to selected exercises are given at the back of the book.
-
Introduction
- The diversity of languages
- The software development process
-
Language design
- Languages or systems?
- The lexical elements
-
Historical Survey
- Early machines
- Fortran
- Algol
- Business data processing languages
- General or multipurpose languages
- Developing programs interactively
-
Special-purpose languages
- Systems programming languages
-
Modules, classes and abstract data types
- Functional and logic languages
- Conclusions
-
Types, values and declarations
- Names
- Declarations and binding
- Type definitions
- Numeric data types
- Logical types
- Character types
- Enumeration types
- Reference and pointer variables
-
Expressions and statements
- Expressions
- Statements
- Sequencing and control
-
Iterative statements
- goto statement
- Exception handling
-
Program structure
- Introduction
-
Procedural and object-oriented architecture
-
Alternative program architectures
- Separate Compilation
- Larger units
-
Procedures, functions and methods
- Introduction
- Parameters
- Functions
- Storage management
- Recursion
- Forward references
- Subprograms as parameters
-
Structured data
- Introduction
-
Arrays
- Records and classes
- Dynamic data structures
- Parameterized types
- Strings
- Sets
- Files
-
Inheritance and dynamic binding
- Introduction
- Inheritance
- Polymorphism and dynamic binding
- Comparing the procedural and object-oriented approach
- Abstract methods and classes
-
Multiple inheritance
- Problems with inheritance
- Behavioural inheritance
- Conclusion
-
Functional languages
- Introduction
- Lisp
- FP Systems
- Modern functional languages
- Concluding remarks
-
Logic programming
- The Prolog approach
- The basics of Prolog
- Data objects
- Efficiency in Prolog
- A Prolog example
- Concluding remarks
-
Concurrency and networking
- Introduction
-
Process synchronization and communication
-
Internet programming
- Real-time programming
-
Syntax and semantics
- Syntax
- Semantics
-
Input, output and GUIs
- Introduction
- Input and output of text
-
Graphical user interfaces
- Binary and direct access files
- Multimedia
-
The future
- Introduction
- Procedural and object-oriented languages
- Declarative languages
- Language design
- Implementation considerations
- Development methods
- Conclusions
-
Appendix 1 Language summaries
-
Appendix 2 Language texts
-
Solutions to selected exercises
Page created: December 5, 2000 by
Robert Clark. Last revised:
February, 2004.
Please send any comments, feedback or error reports
by email.
|