A Big Test Result - Knowledge Systems Institute

Download Report

Transcript A Big Test Result - Knowledge Systems Institute

Programming Languages
History
This lecture introduces the history of
programming languages.
The Ties
• Programming languages describe computation for
use by computers, particularly electronic digital
computers with stored program capability.
• The history of programming languages is therefore
tied to the evolution of these kinds of machines,
which began in the 1940s.
• However, there is also a history of "programming
languages" that developed independently of the
existence of appropriate machines.
• It is also tied to the development of mathematics
and mathematical notation.
Early History: The First Programmer
• The first computers with stored programs and a
central processor that executed instructions
provided by users were built in the late 1940s by a
team led by John von Neumann.
• Yet there were many previous machines that could
be "programmed" in the sense that data could be
supplied, usually in the form of cards or paper
tape, that would affect what the machine did.
• Several examples of the computations it could
perform were developed by Ada Augusta. For this
reason, she is considered to be the first
programmer.
The 1950s: The First Programming
Languages
• With the advent of general-purpose digital
computers of stored programs in the early 1950s,
the task of programming became a significant
challenge.
• Early programs were written directly in machine
codes or sequences of bit patterns.
• This soon gave way to assembly languages, which
use symbols and mnemonics to express the
underlying machine codes, and are called “lowlevel” languages.
High-level Language
• The first high-level language was FORTRAN,
developed between 1954 and 1957 by a team at
IBM led by John Backus.
• It was designed primarily for scientific and
computational programming, as its name implies
(FORmula TRANslation)
• However, it has also been used for generalpurpose programming, and many new features
taken from other languages have been added
through the years.
COBOL
• COBOL (COmmon Business-Oriented Language)
was developed by the U.S. Department of Defense
(1959 – 1960) by a team led by Grace Hopper of
the Navy.
• This language was quickly adopted by banks and
corporations for large-scale record-keeping and
other business applications.
• It is perhaps still the most widely used
programming language but has been largely
ignored by the academic community.
COBOL (2)
• Features that COBOL did pioneer were:
• (1) the record structure for organizing data,
• (2) the separation of data structures from the
execution section of a program, and
• (3) versatile formatting for output using "pictures
• COBOL is extremely wordy. Complex algorithms are
also extremely difficult to program.
Algol60
• Algol60 (ALGOrithmic Language) was developed by
a committee (1958–1960) to provide a general,
expressive language for describing algorithms,
both in research and in practical applications.
• Most of the current imperative languages are
derivatives of Algol.
• Algol introduced many concepts into programming,
including free-format, structured statements,
begin-end blocks, type declarations for variables,
recursion, and call-by-value parameters.
• And it was the first to use Backus-Naur forms (BNF)
notation to define syntax.
LISP
• LISP (LISt Processor) was designed at MIT in the
late 1950s by John McCarthy, based on general list
structures and function application.
• It and its many variants are still in use today in
many artificial intelligence applications.
• It was based on a uniform data structure, the Sexpression, and function application as the
fundamental notion of computation.
• It is based on a computational principle that is
very different from the usual von Neumann
APL
• APL (A Programming Language) was designed by
K. Iverson at Harvard University in the late 1950s
and at IBM in the early 1960s as a language for
programming mathematical computations.
• In the 1960s a version of APL was used as the
basis for one of the first time-sharing systems, on
an IBM 360.
• APL has no structuring and that it uses a Greek
symbol set that requires the use of a special
terminal. Programs written in APL are also
extremely difficult to read.
The 1960s: An Explosion in
Programming languages
• After the tremendous success of the first few
programming languages, "everyone" tried to get
into the act.
• Most of these languages have now vanished, and
only a few had a significant effect on the
development of programming languages.
• BASIC (Beginners All-purpose Symbolic Instruction
Code), initially designed by John Kemeny, was as a
simple language for the new time-sharing systems
of the time.
The 1970s: Simplicity, Abstraction,
Study
• After the turmoil of the 1960s, language designers
returned to the "drawing boards" chastened and
with a new appreciation for simplicity and
consistency of language design.
• In 1972 another outgrowth of Algol was being
designed by Dennis Ritchie at Bell Labs that was to
become tremendously successful as well: the C
programming language.
• The success of C has been due to the popularity of
the Unix operating system with which it is
associated
The C programming language
• C tries for simplicity in different ways from Pascal:
• by retaining and restricting the expression
orientation, by reducing the complexity of the type
system and runtime environment,
• and by providing more access to the underlying
machine.
• For this latter reason, C is sometimes called a
"middle-level" programming language, as opposed
to a high-level language.
The 1980s: Consolidation and new
Directions
• Perhaps the single most important programming
language event of the early 1980s was the advent
of Ada.
• Ada’s design was fixed in 1980 after a lengthy
design effort by the Department of Defense
• Ada has a number of interesting features,
including an abstract data type mechanism (the
package), a concurrency or parallel programming
facility (the task), and exception handling.
Prolog
• One major change in the 1980s over the 1970s
was the renewed interest in functional
programming and alternative language paradigms.
• Many attempts to use mathematical logic more or
less directly as a programming language have
been made over the years, but the language
Prolog has become the main practical example of
logic programming.
• It now has a number of good implementations and
is being increasingly used in artificial intelligence
and as a prototyping language.
Object-oriented Programming
• The object-oriented view of programming, based on
the class concept of Simula67, has also recently
undergone a tremendous increase in popularity.
• The language, C++ was designed to apply the
object-oriented approach in a completely
consistent way and are the purest example of an
object-oriented language.
The 1990's: Visual Basic of Visual
Programming
• VB is a high-level programming language evolved
from the earlier DOS version called BASIC.
• The single largest effect on coding that VB
introduced was the concept of an event-driven
programming model.
• In VB, programming is done in a graphical
environment. Because users may click on a certain
object randomly, so each object has to be
programmed independently to be able to response
to those actions (events).
Visual Basic of Visual Programming
• One of the many significant improvements is that
VB provides massive support for easily creating the
user interface to your applications.
• This is accomplished within the VB Integrated
Development Environment (IDE), in which you use a
mouse to "draw" your application and use the
keyboard to type in the code that is to be executed.
• The other major concept that VB has incorporated
is the concept of objects. VB forms are objects,
menus are objects, and so are the intrinsic VB
visual user interface controls (GUI).