A brief history of programming languages

• Read the textbook (Chapter 2—all of it!) for a thorough discussion of this fascinating subject.  In class we will only discuss the milestones.

CSI 3125, History, page 1

Pioneers of programming
• Charles Babbage: Invented the Analytical Engine. His companion, Ada Augusta Lovelace, is considered the first programmer in history.

• Konrad Zuse:
Designed Plankalkül. This notation (never implemented) has features than can be found in many existing programming languages.

CSI 3125, History, page 2

There is one native machine language. and usually one assembly language per processor model. Upward compatibility can be a nightmare.Very low-level languages Those are machine languages and assembly languages. and then symbolic. machine-dependent coding systems. page 3 . History. They were initially fully binary. Was moving from 386 to 486 painless? From 486 to Pentium?  CSI 3125.

has converged toward other popular programming languages. later kept along for compatibility. History. Fortran 90. page 4 . It is still widely used in engineering applications that require much array manipulation. procedures. CSI 3125. statement labels and much more. The earliest versions of Fortran had many unique features.Fortran Fortran was the first effectively implemented highlevel language that introduced variables as we know them now. The newest version. loops. often awkward.

but it is the ancestor of most contemporary languages. Algol 60 was without doubt the most important innovation in the history of programming languages (so far ).Algol 60 • It was the first to have block structure. and a formal definition. recursion. History. page 5 . It is not used now. CSI 3125. • As far as design goes.

Cobol • Business-oriented computations – very strict program organization – poor control structures – elaborate data structures. Used to be very popular in business and government. History. record type introduced for the first time. page 6 . • Revived for a while during the Y2K scare—why? CSI 3125. much less at universities.

CSI 3125. • An interesting feature introduced in PL/I: event handling. page 7 . Algol 60. History. – the first language designed to be completely general. good for all possible applications (what applications did not exist then?) – actively promoted by IBM – not used much today.PL/I • A combination of features believed (at the time) best in Fortran. Cobol.

History. page 8 . • Very simple. • The first programming language for many programmers: designed to be easy to learn. though still generalpurpose. and not easy to learn any more.Basic • The first in history language of personal computing. • Present-day versions of Basic are full-fledged languages—not "basic". CSI 3125. limited.

• Now unused. • Predecessor of Smalltalk and C++. • Introduced the central concepts of object orientation: classes and encapsulation.Simula 67 • An extension of Algol 60 designed for simulation of concurrent processes. History. CSI 3125. page 9 .

History. unfortunately hard to understand for most potential users. • Full orthogonality. • Extremely difficult to implement. CSI 3125. • A very clever formal description. page 10 .Algol 68 • A very elegant design. • Completely unused. unmatched till today.

• A great language for teaching structured programming. • Its later extensions (for example. Delphi) are fullfledged systems programming packages. • An excellent first language to learn: teaches good programming habits. as powerful as any Java kit. History.Pascal • A conceptually simplified and cleaned-up successor of Algol 60. CSI 3125. page 11 .

• Not used as much as it deserves. conceptually uniform successor of Pascal. • Mechanisms to program concurrency (many processes running in parallel).) CSI 3125. page 12 .Modula-2 • A better. practically useful— and almost not used at all. • Its successors. Modula-3 and Oberon. are even more conceptually appealing. History. (They lost the popularity contest with C++.

page 13 .. and Ada 95. multi-stage design process.Ada • The result of an elaborate. • There are. CSI 3125. except that Microsoft.). • Completely standard: there can be no dialects (like Java. systematic way.. however. History. • Ada has been designed to support concurrency in a very neat. two standards: Ada 83 (the original). and a more successful attempt at generality than PL/I.

• A great tool for systems programming and a software development language on personal computers. • Dangerous if not used properly: not recommended to novice programmers. page 14 . still in use. but usually superseded by C++. • Once fashionable.C • The implementation language of Unix. • Relatively low-level. CSI 3125. History.

ML.Lisp • One of the earliest programming languages. the only language for Artificial Intelligence work.) • Many dialects. • Lisp's successors are very elegant (Miranda. • Based on the concept of computing by evaluating functions. (Prolog is 12 years younger. page 15 . Common Lisp). Very good for symbolic computing. • For years. CSI 3125. History. Haskell) but not nearly as widely used. two standards (Scheme. Nice programming environments.

CSI 3125. – Elaborate. • Very powerful: – Non-deterministic (built-in backtracking). with proofs interpreted as computation. • In skilled hands. based on a subset of logic. – Pattern-directed procedure invocation. – Associative memory. page 16 . History. it is a very strong tool.Prolog • A very high-level programming language. flexible pattern matching. • Declarative.

• Comes complete with a graphical interface and an integrated programming environment. • In skilled hands.Smalltalk • It is the purest object-oriented language ever designed (till now). cleaner than Java. a powerful tool. History. much cleaner than C++. page 17 . CSI 3125.

with object orientation added to a completely different base language. CSI 3125. page 18 . very much in demand. • Very fashionable. • Complicated syntax.C++ • An object-oriented extension of the imperative language C. difficult semantics. • This is a hybrid design. – Java did not (yet?) push it out. History.

cleaned up. • New fashion: maybe the next de-facto standard? CSI 3125. but generalpurpose. • Full object orientation (though not as consistent as Smalltalk) • Designed for Internet programming. • It is said (not quite correctly) to be slow. History. sized-down reworking of C++. page 19 .Java • A neat.

page 20 . History.Scripting languages • Text processing: – Perl – Python • Web programming – JavaScript – PHP CSI 3125.

Languages that merge programming paradigms • Object-oriented extensions: not only C++. CSI 3125. but dialects of Lisp (CLOS) or of Prolog (XPCE/Prolog. one process. Ada is a language designed to support concurrency: many processes running in parallel. • Logic programming combined with functional programming (very clever. but only experimental). Prolog++). page 21 . • Most languages are sequential: one processor. History.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.