|
CLASSIFICATION OF PROGRAM LANGUAGES
* [[Array programming language]]*
* [[Concatenate programming language]]*
* [[Concurrent programming language]]*
* [[Declarative programming language]]*
* [[Domain-specific programming language]]*
* [[Dynamic programming language]]*
* [[Educational programming language]]*
* [[Esoteric programming language]]*
* [[Functional programming language]]*
* [[General-purpose programming language]]*
* [[Logical programming|Logic programming language]]*
* [[Object-oriented programming language]]*
* [[Procedural programming|Procedural programming language]]*
* [[Scripting programming language]]*
Each language takes units of these well-behaved statements
and combines them using some ordering system. Depending on the language,
differing methods of grouping these elementary statements exist. This allows one
to write programs that are able to cover a variety of input, instead of being
limited to a small number of cases. Furthermore, beyond the data manipulation
instructions, other typical instructions in a language are those used for
control flow (branches, definitions by cases, loops, backtracking, functional
composition).
DESIGN
PHILOSOPHIES
For the above-mentioned purposes, each language has been developed using a
special design or philosophy. Some aspect or another is particularly stressed by
the way the language uses data structures, or by which its special notation
encourages certain ways of solving problems or expressing their structure.
Since programming languages are artificial languages, they require a high degree
of discipline to accurately specify which operations are desired. Programming
languages are not error tolerant; however, the burden of recognizing and using
the special vocabulary is reduced by help messages generated by the programming
language implementation. There are a few languages which offer a high degree of
freedom in allowing self-modification in which a program re-writes parts of
itself to handle new cases. Typically, only machine language, Prolog,
PostScript, and the members of the Lisp family (Common Lisp, Scheme) provide
this capability. In MUMPS language this technique is called dynamic
recompilation; emulators and other virtual machines exploit this technique for
greater performance.
There are a variety of ways to classify programming languages. The distinctions
are not clear-cut; a particular language standard may be implemented in multiple
classifications. For example, a language may have both compiled and interpreted
implementations.
In addition, most compiled languages contain some run-time interpreted features.
The most notable example is the familiar I/O format string, which is written in
a specialized, little language and which is used to describe how to convert
program data to or from an external representation. This string is typically
interpreted at run time by a specialized format-language interpreter program
included in the run-time support libraries. Many programmers have found the
flexibility of this arrangement to be very valuable.
HISTORY
OF PROGRAM LANGUAGES
The development of programming languages, unsurprisingly, follows closely the
development of the physical and electronic processes used in today's computers.
Charles Babbage is often credited with designing the first computer-like
machines, which had several programs written for them (in the equivalent of
assembly language) by Ada Lovelace.
In the 1940s the first recognizably modern, electrically powered computers were
created. Some military calculation needs were a driving force in early computer
development, such as encryption, decryption, trajectory calculation and massive
number crunching needed in the development of atomic bombs. At that time,
computers were extremely large, slow and expensive: advances in electronic
technology in the post-war years led to the construction of more practical
electronic computers. At that time only Konrad Zuse imagined the use of a
programming language (developed eventually as Plankalkül) like those of today
for solving problems.
Subsequent breakthroughs in electronic technology (transistors, integrated
circuits, and chips) drove the development of increasingly reliable and more
usable computers. The first widely used high level programming language was
Fortran, developed during 1954–57 by an IBM team led by John W. Backus. It is
still widely used for numerical work, with the latest international standard
released in 2004. A Computer Languages History graphic shows a timeline from
Fortran in 1954.
Dennis Ritchie and Brian Kerninghan developed the C programming language,
initially for DEC PDP-11 in 1970. Later with lead of Bjorn Stroustrup
programming language C++ appear starting from 1985 as the Object oriented
language vertically compatible with C. Sun Microsystems developed Java in 1995
which became very popular as the initial programming language taught at
universities. Microsoft presented the C# programming language, which is similar
to Java, in 2001 to fight Java's popularity. |