Comparative Study of Programming Language

Topics: Programming language, C, Functional programming Pages: 95 (31229 words) Published: March 18, 2013
The Evolution of Programming Languages
Course Notes for COMP 348 and COMP 6411

These notes may be copied for students who are taking either COMP 348 Principles of Programming Languages or COMP 6411 Comparative Study of Programming Languages.

First draft: Revised:

August 1999 August 2002

c Peter Grogono 1999, 2002
Department of Computer Science Concordia University Montreal, Quebec

CONTENTS

ii

Contents
1 Introduction 1.1 1.2 How important are programming languages? . . . . . . . . . . . . . . . . . . . . . . Features of the Course . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 7 7 7 8 8 9

2 Anomalies 3 Theoretical Issues 3.1 3.2 3.3 3.4 Syntactic and Lexical Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Type Theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Regular Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4.1 3.4.2 3.4.3 3.4.4 Tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Context Free Grammars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Control Structures and Data Structures . . . . . . . . . . . . . . . . . . . . . 10 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 12

4 The Procedural Paradigm 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9

Early Days . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 FORTRAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Algol 60 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 COBOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 PL/I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Algol 68 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Pascal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Modula–2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.10 Ada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 5 The Functional Paradigm 5.1 5.2 5.3 5.4 5.5 25

LISP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Scheme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 SASL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 SML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Other Functional Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

CONTENTS 6 The Object Oriented Paradigm 6.1 6.2 6.3 6.4 6.5

iii 36

Simula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Smalltalk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 CLU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Eiffel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.5.1 6.5.2 6.5.3 Programming by Contract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Repeated Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Exception Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Portability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Interfaces . . . . . . . . . . . . . . ....
Continue Reading

Please join StudyMode to read the full document

You May Also Find These Documents Helpful

  • Programming Language Essay
  • Programming Language Essay
  • Programming Languages Essay
  • It Programming Essay
  • Comparative Languages Essay
  • Learning the Programming Language, Python Essay
  • A Comparison Programming Languages Essay
  • Exploring Programming Languages Essay

Become a StudyMode Member

Sign Up - It's Free