A BRIEF HISTORY OF PROGRAMMING LANGUAGES

Slides:



Advertisements
Similar presentations
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Advertisements

A Quick Overview of Languages. FORTRAN Designed in 1955 First release of the compiler in 1957 Algebraic in nature Scientific (numeric not string oriented)
1 Copyright © 1995 by Addison-Wesley Publishing Co. 1. Plankalkül Never implemented - Advanced data structures - floating point, arrays, records.
Programming Languages Structure
ISBN Chapter 2 Evolution of the Major Programming Languages.
ISBN Chapter 2 Evolution of the Major Programming Languages.
CS 355 – Programming Languages
ISBN Chapter 2 Evolution of the Major Programming Languages.
CS 403 Programming Language Theory Class 2 - August 29, 2000.
1 Programming Language History and Evolution In Text: Chapter 2.
CS 403 Programming Language Theory Class 3 - August 31, 2000.
ISBN Chapter 2 Evolution of the Major Programming Languages.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
ISBN Chapter 2 Evolution of the Major Programming Languages.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Chapter 2: Evolution of the Major Programming Languages The IBM 704 and Fortran Functional Programming:
1 Chapter 2 © 1998 by Addison Wesley Longman, Inc. 2.1 Plankalkül Never implemented - Advanced data structures - floating point, arrays, records.
Evolution of the Major Programming Languages Chapter 2: Evolution of the Major Programming Languages Lectures # 5.
Evolution of the Major Programming Languages SANGJI University Kwangman Ko
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
Programming Language History and Evolution
The language focusses on ease of use
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Concepts of Programming Languages
Chapter 1 Preliminaries.
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
Basic 1964 PC general purpose Imperative Small Easy to use.
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Chapter 1 Preliminaries.
PROGRAMMING LANGUAGES
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Chapter 1 Preliminaries.
Programming Language History and Evolution
Chapter 1 Preliminaries.
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Chapter 2 Plankalkül – Never implemented
Evolution of the Major Programming Languages
Ada – 1983 History’s largest design effort
Chapter 1 Preliminaries.
Chapter 1 Preliminary. Chapter 1 Preliminary 1.1 Reasons for Studying Concepts of Programming Languages Increased capacity to express ideas Improved.
Evolution of the Major Programming Languages
Programming Languages 2nd edition Tucker and Noonan
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Chapter 1 Preliminaries.
High Level Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Cobol Design goals: Problems
Principles of Programming Languages
Evolution of the Major Programming Languages
Chapter 1 Preliminaries.
Evolution of the Major Programming Languages
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Chapter 1 Preliminaries.
Chapter 1 Topics Reasons for Studying Concepts of Programming Languages Programming Domains Language Evaluation Criteria Influences on Language Design.
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Evolution of the Major Programming Languages
Chapter 1 Preliminaries.
Chapter 1 Preliminaries.
2.1 Plankalkül Pseudocodes Never implemented
Programming Languages
Presentation transcript:

A BRIEF HISTORY OF PROGRAMMING LANGUAGES

high-level programming languages Figure 2.1 Genealogy of common high-level programming languages

TIOBE

Pseudocodes (1949) - Short code; 1949; BINAC; Mauchly - Expressions were coded, left to right - Speedcoding; 1954; IBM 701, Backus - Pseudo ops for arithmetic and math functions - Conditional and unconditional branching - Autoincrement registers for array access - Slow! - Only 700 words left for user program

Dramatically changed forever the way computers are used FORTRAN (mid-late 1950’s) Emphasis on scientific programming FORTRAN 0 1954(not implemented) FORTRAN I 1957 FORTRAN II 1958 FORTRAN IV 1960-62 FORTRAN 77 1978 FORTRAN 90 1990 FORTRAN 95 1995 Dramatically changed forever the way computers are used

FORTRAN in depth FORTRAN II – 1958 Independent compilation FORTRAN IV – 1960-62 Improved data typing ANSI standard in 1966 FORTRAN 77 – 1978 Better logical statements FORTRAN 90 – 1990 Allows recursion Syntactic changes FORTRAN 95 – 1995 Deletes some deprecated features Deprecates more features

LISP (1959) Designed at MIT by McCarthy Still the dominant language for AI Pioneered functional programming Syntax is based on lambda calculus Contemporary dialects: COMMON LISP, Scheme Object-oriented versions: Flavors, LOOPS, CLOS Related languages: ML, Miranda, Haskell

Scheme Developed at MIT in mid 1970s Small Extensive use of static scoping Functions as first-class entities Simple syntax (and small size) make it ideal for educational applications

COMMON LISP An effort to combine features of several dialects of LISP into a single language Large, complex

ALGOL Goals of the language Close to mathematical notation Good for describing algorithms Must be translatable to machine code Not meant to be implemented, but variations of it were MAD, JOVIAL IBM initially enthusiastic, but all support dropped by mid-1959

ALGOL 58 (1958) Formalized the concept of the data type Compound statements (begin ... end) Parameters were separated by mode (in & out) Names could have any length Arrays could have any number of subscripts Subscripts were placed in brackets Semicolon as a statement separator Assignment operator was := if had an else-if clause no i/o - “would make it machine dependent”

ALGOL 60 (1960) New Features: Block structure; multiple scopes Better parameter passing Recursion Stack-dynamic arrays Successes: Standard for publishing algorithms for over 20 years All subsequent imperative languages are based on it First machine-independent language First formally defined syntax Failures: Programs non-portable Hard to implement Intrenchment of FORTRAN Formal syntax description Lack of support of IBM

COBOL (1960) Based on FLOW-MATIC, which had: Names up to 12 characters, with embedded hyphens English names for arithmetic operators Data and code kept completely separate Verbs as the first word in every statement COBOL Design Problems: Arithmetic expressions? Subscripts? Fights among manufacturers Contributions: Macros Hierarchical data structures Nested selection statements Long names with hyphens Separate data division

BASIC (1964) Intended for teaching how to program Interactive interpreted environment Designed by Kemeny & Kurtz at Dartmouth First widely used language with time sharing Current popular dialect: Visual BASIC

PL/I (1965) Contributions: First unit-level concurrency First exception handling Switch-selectable recursion First pointer data type First array cross sections Comments: Many new features were poorly designed Too large and too complex Was (and still is) actually used for both scientific and business applications

APL (1962) Array and matrix processing Dynamic typing and dynamic storage allocation Designed as a hardware description language Highly expressive Programs are very difficult to read

SIMULA 67 (1967) Introduced classes data and operations together Designed primarily for system simulation Based on ALGOL 60 and SIMULA I Primary Contribution: Classes, objects, and inheritance

ALGOL 68 (1968) Primary design goal: orthogonality Based on ALGOL 60, but not a superset

Pascal (1971) Designed for teaching structured programming Small, simple, nothing really new Many subsequent languages based on Pascal Delphi Occam

C (1972) Designed for systems programming Powerful set of operators Poor type checking Initially spread through UNIX Flexible, but unsafe

Prolog (1972) Logic language, non-procedural Programs are sets of facts and rules Not proven to be widely applicable

Ada (1983 - began in mid-1970s) Contributions: Packages; Exception handling; Generic program units; Concurrency Comments: Competitive design Included all that was then known about software engineering and language design First compilers were very difficult: Five years to develop the first really usable compiler Ada 95 (began in 1988) Support for OOP through type derivation New concurrency features More flexible libraries

Smalltalk (1972-1980) Object-oriented programming language Really a graphical environment Developed at Xerox PARC First full implementation of an object-oriented language Pioneered the GUI everyone now uses

C++ (1985) Design goal: no performance penalty, relative to C Features: Parameterized types (templates) Exception handling Operator overloading Facilities for object-oriented programming added to C Large and complex Rapidly grew in popularity, along with OOP ANSI standard approved in November, 1997!!

Java (early 1990’s) Developed at Sun Microsystems Smaller, simpler, more reliable C++ Significantly simplified All code must be encapsulated in classes Concurrency support (threads) Garbage collected JavaScript (1995) Began as LiveScript at Netscape Client-side HTML-resident scripting language Used for designing client-side dynamic documents Purely interpreted

Scripting Languages Earliest scripts were files which stored a sequence of OS commands interpreted by simple OS facility UNIX had a profound influence sh ksh awk Not all are Turing Complete

Perl (1987) Related to ALGOL only through C A scripting language A script (file) contains instructions to be executed Other examples: sh, awk, tcl/tk Developed by Larry Wall Perl variables are statically typed and implicitly declared Three distinctive namespaces, denoted by the first character of a variable’s name Powerful but somewhat dangerous Widely used as a general purpose language

Scripting Languages for the Web JavaScript Used in Web programming (client side) to create dynamic HTML documents PHP (1994) Server-side HTML-resident scripting language Purely interpreted Python An OO interpreted scripting language

C# (2000) Microsoft The primary language of the .NET platform A successor to both Java and C++ Includes most of the features of Java, with some modifications, as well as some of the features of C++ that were left out of Java Can be used for both .NET applications for the Web, as well as a general-purpose programming language

Markup/Programming Hybrid Languages XML : eXtensible Markup Language a metamarkup language eXtensible Stylesheet Language Transformation (XSTL) transforms XML documents for display JSP : Java Server Pages a collection of technologies to support dynamic Web documents

Summary Development, development environment, and evaluation of a number of important programming languages Perspective into current issues in language design