A brief history of programming languages

Slides:



Advertisements
Similar presentations
Programming Paradigms Introduction. 6/15/2005 Copyright 2005, by the authors of these slides, and Ateneo de Manila University. All rights reserved. L1:
Advertisements

Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
0 Some History and Perspective. 1 An overview Throughout the semester, we’ve seen several different languages and paradigms. However, it is useful to.
CSI 3125, Preliminaries, page 1 Programming languages and the process of programming –Programming means more than coding. –Why study programming languages?
Computers Are Your Future
History of Object Orientation. What is Object-Orientation? Programming is one of the most complicated and difficult of human activities. It helps a great.
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
1 ) Definition 2) Note on structured and modular programming, and information hiding 3) Example imperative languages 4) Features of imperative languages.
High-Level Programming Languages
A Quick Overview of Languages. FORTRAN Designed in 1955 First release of the compiler in 1957 Algebraic in nature Scientific (numeric not string oriented)
Programming Languages Structure
Programming Language Concepts
1 Programming Languages Marjan Sirjani 2 1- The Study of Programming Languages The purpose of language is simply that it must convey meaning. (Confucius)
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
PROGRAMMING LANGUAGES The Study of Programming Languages.
History of Programming Languages
BIT Presentation 6. Contents GENERATIONS OF LANGUAGES COMPILERS AND INTERPRETERS VIRTUAL MACHINES OBJECT-ORIENTED PROGRAMMING SCRIPTING LANGUAGES.
1 Programming Language Concepts Ethics Why study concepts of programming languages (PLs)? PL categories Influences on PL design Problem areas & needs that.
CSE 425: Intro to Programming Languages and their Design A Few Key Ideas No particular language is a prerequisite for this course –However you should be.
Programming Languages
Chapter 8 High-Level Programming Languages (modified by Erin Chambers)
G Programming Languages T he main themes of programming language design and use: –Model of computation –Expressiveness types and their operations.
(1.1) COEN 171 Programming Languages Winter 2000 Ron Danielson.
Chapter 1. Introduction.
CS 363 Comparative Programming Languages
©Xiaoying Gao, Peter Andreae First Java Program COMP 102 #2 2014T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
COMPUTER PROGRAMMING I SUMMER 2011 Programming Languages.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Programming Languages 1.07a.  A computer program is a series of instructions that direct a computer to perform a certain task.  A programming language.
Chapter 1 - Introduction
First Java Program COMP 102 #2 2015T2 Xiaoying Sharon Gao Computer Science Victoria University of Wellington.
By Neng-Fa Zhou1 Evolution of programming languages –Machine language –Assembly language –Sub-routines and loop (Fortran) –Procedures and recursion (Algol,
Programming History. Who was the first programmer?
1 Programming Languages Marjan Sirjani Course web site:
1 Programming Language History and Evolution In Text: Chapter 2.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
National Diploma Unit 4 Introduction to Software Development Introduction to Programming Languages.
Programming Languages What is a programming language? –systematic notation by which we describe computational processes to others –notation for description.
Programming Language 1. Programming language A programming language is a machine-readable artificial language designed to express computations that can.
Syntax and Semantics CIS 331 Syntax: the form or structure of the expressions, statements, and program units. Semantics: the meaning of the expressions,
Engr. Isabelo Jun D. Paat, ME-CoE Lecturer 1 Programming Languages.
int k = Integer.MAX_VALUE; k++; int k = Integer.MAX_VALUE; k++; What happens when the following code executes? byte b = someFile.readByte(); b = (byte)(b.
1-1 1 Introduction  Programming linguistics: concepts and paradigms syntax, semantics, and pragmatics language processors.  Historical development of.
Evolution of the Major Programming Languages Chapter 2: Evolution of the Major Programming Languages Lectures # 5.
Programming Language Paradigms ITSK2314 Lecture 3.
a medium allowing humans and computers to communicate an abstraction of the real world a notation for expressing algorithms the set of all syntactically.
History. Development Driven by Function Functions of a Programming Language –To describe computation for use by computers –To describe computation and.
First appeared Features Popular uses Basic This language emphasises on ease of use, allowing general purpose programming to those with a small amount of.
CPS120 Introduction to Computer Science High Level Language: Paradigms.
0 Programming Languages: Some History and Perspective.
Programming Language History and Evolution
An overview Throughout the semester, we’ve seen several different languages and paradigms. However, it is useful to take a step back and look over the.
A BRIEF HISTORY OF PROGRAMMING LANGUAGES
The language focusses on ease of use
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Concepts of Programming Languages
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.
Why study programming languages?
Basic 1964 PC general purpose Imperative Small Easy to use.
CSCI-235 Micro-Computer Applications
Programming Language Design Concepts
Programming Language History and Evolution
Developing Applications
Ada – 1983 History’s largest design effort
Programming Language Design
Programming Languages 2nd edition Tucker and Noonan
and Program Development
Principles of Programming Languages
Overview of Programming Paradigms
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Presentation transcript:

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.

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.

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

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

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

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

PL/I A combination of features believed (at the time) best in Fortran, Algol 60, Cobol. 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. An interesting feature introduced in PL/I: event handling.

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

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

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

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

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

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

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

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

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

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

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

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

Scripting languages Text processing: Perl Python Ruby Web programming JavaScript PHP Ruby on Rails

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