HISTORY OF PROGRAMMING LANGUAGES
ADA FORTRAN COBOL ALGOL PROLOG LOGO LISP SQL SMALL TALK
The next step in computer languages came in 1957 with the introduction of FORTRAN, which stands for Mathematical FORmula TRANslating System. One of the first sites to use this language was the Westinghouse-Bettis Atomic Power Laboratory. They loaded up the compiler, ran a simple test program written in FORTRAN and the machine promptly spit out an error message on the printer. Behold, the first of many programming errors. After correcting the card, they ran the test program again which remarkably spit out… the right answers!
The main man behind the language called FORTRAN? John Backus. Backus, after serving in World War II, enrolled in a school for radio technicians. An instructor at the school noticed John’s mathematical prowess and told him to continue his learning at Columbia University. After graduating with a master’s in mathematics, at the ripe young age of 25, Backus went to work for IBM. He lead a team that developed an interpreter called Speedcoding for the IBM 701 machine. But programming was not all Backus could do, after that project, he aided in the development with the 701’s successor, the 704.
In late 1953, Backus talked to his boss about making a computer language to aide in the speed of development in programs. The idea was that his compiler would allow users to write programs in algebraic notation and the compiler would convert the language into machine code automatically. It was the correct time for such an idea. IBM was pushing it’s computer sales. The language would not only bring down the high cost of programming (because only a small percentage of people write in machine code), but it would also make programming appear more friendly. The green light given, Backus went to work.
The computer language was easy to make, the compiler on the other hand, was not. The team was inundated with problems: solving input, output, loops, and the conversion to machine code all at once. What was originally a 6 month project turned into a 4 year one. To make sure they were not disturbed, towards the end of the project, the team slept during the day and worked at night, alone with the IBM 704. Westinghouse-Bettis received the compiler in punch card form with no instructions in an attempt to see how blindly FORTRAN would work. Later, other firms got their compilers on different media including magnetic tape and it came with a nice manual.
What was originally intended for mathematical use, FORTRAN was soon used for many diverse programs. Being the first of higher level languages, FORTRAN was widely used and soon became the standard in programming. As such, FORTRAN is still one of the most used programming languages today.
Mathematicians had a language, businessmen wanted theirs. In 1959, the Defense Department requested a special conference on computer languages. This conference became known as CODASYL, which stands for, the Conference on Data Systems Languages. The conference noted there was a need for such a business oriented language. The formed three task groups, a long-range, intermediate-range, and short-range. The short-range task group immediately began to work on this new language despite IBM’s firm stand that any development on a new language was beyond the group’s mandate. Later that year, the language was already forming, and a name was given to it, the Common Business Oriented Language, COBOL.
The intermediate-range group was quite upset over this. They hurriedly met and approved a new language called FACT (Fully Automatic Compiling Technique). FACT was quietly being developed and had some interesting features. It allowed data entry via cards and a report writer. CODASYL was asked to embrace FACT and not COBOL. There was a civil war between the short-range group and the intermediate, but in 1960, a resolution to use COBOL was passed.
COBOL was embraced by the business world immediately. The specifications were published in 1960 and by the end of the year already two COBOL compilers hit the markets. In 1962, COBOL received an upgrade, which made it even more useable. It fitted the business world perfectly. COBOL could do simple mathematical functions to very large amounts of data. COBOL was also not machine specific. It was ported to many different computers and was universal. A program written in COBOL worked on numerous machines without problems.
Even better, was the near English quality of the coding. Statements were made like this: IF TIME IS GREATER THAN 1800, PERFORM IST-CLASS-ROUTINE. Readability was improved, debugging was easier, and changing features was faster. Because of this, some programs outlived the machines they were made for.
Before COBOL was invented, there was a third language being researched. Algorithmic Language or ALGOL was algebraic based like FORTRAN. Like COBOL, ALGOL was being designed by a committee. European firms did not like the support FORTRAN was receiving and feared domination by IBM. In 1958, there was a meeting in Zurich on the development of a universal language for scientific computing. ALGOL 58 was born. Among the members present was John Backus and Joe Wegstein who was to be a chairman of the COBOL short-range committee.
There was trouble from the start. On the second day of the meeting, talks became a tempest of furry over the decimal point. The Europeans wanted the comma, Americans wanted the period. After resolving not to tackle that problem for a while, the language began to take shape. ALGOL took much of it’s form from FORTRAN. It took the ideas FORTAN had and turned them into a more logical and aesthetically pleasing structure. Unfortunately, because of ALGOL’s rush to completion, many features were omitted. Absent was the procedure for input and output of data. The idea was that those who chose to use the language would write up their own machine specific programs.
Backus, one of ALGOL’s staunch supporters, kept working with the development despite lack of interest from his employer. Backus began to think about syntax and devised a system to define terms in a logical way. He developed the Backus Normal Form which later, thanks to refinement by a Danish astronomer, became known as Backus Naur Form or BNF. ALGOL takes on significant importance as the impetus to the creation of BNF.
ADA
Ada was designed for the United States Department of
Defense (DOD) as a common language for real-time systems. Ada is a strongly
typed algorithmic language with common control structures for iteration,
recursion, branching, procedures, and functions. It also provides for
modularity. Modularity is when data
types and procedures are packaged and compiled separately. To facilitate
real-time programming, Ada provides for modeling parallel tasks and handling
exceptions without stopping program execution.
DOD was concerned about program portability and supported the development
of a standard language definition of Ada 83, which was followed by Ada 95.
Ada was written with three concerns: program reliability and maintenance,
programming as a human activity, and efficiency.
In the 1970’s, DOD was spending $3 billion a year on software. We’re
all used to seeing such large amounts of money going to the military, but in
this case the cost was a too high. Something had to be done to lower prices.
A major part of the problem was that more than 450 different programming
languages were being used by the military. This produced many problems of
limited portability from machine to machine and limited reusability of
procedures in subsequent programs. It was time to find a standard language in
which all programs for the department
would be written.
About
56 percent of the software purchased was used for embedded or mission-critical
computer applications, it was decided that the standard language should be
geared toward those applications. Much of the computer programming done by the
military is used for controlling military hardware, like tanks and airplanes.

To
control such hardware, a computer program must operate in real-time.
Real-time is like when a tank is rolling or the plane is flying. A
fighter pilot can’t wait for information to be returned from the computer
center the next day. Embedded real-time systems are embedded within a larger
mechanical system, such as a robot.
In
1975, the DOD set up the Higher-Order Language Working Group (HOLWG) to find a
standard language for embedded computer applications.
One of HOLWG’s first step was to develop a set of requirements for the
language with input from the Army, Navy, Air Force, and universities. From 1975
to 1979, as the set of requirements evolved, the name given to the set changed
from Strawman, to Woodenman, to Tinman, to Ironman, to Steelman. This final
Steelman set contains about 100 requirements. These constrained the language to
have language constructs with specified characteristics in areas such as data
types, control structures, modules, tasks, and exceptions.
Also included are simplicity, and verifiability.
The
next step was to study other languages to see if any met the requirements. After
studying 26 existing languages, it was determined that none filled all the
requirements, and that a new language would have to be developed. HOLWG
recommended that one of ALGOL 68, Pascal, or PL/I should be used as a base for
the design.
A language design competition was held. Seventeen groups sent proposals,
but only four were chosen for further development. These were funded for six
months to produce a preliminary language design. Each group was given the name
of a color to preserve anonymity and insure fair evaluations. These groups were
CII Honeywell Bull (green), Intermetrics (red), Softech (blue), and SRI International
(yellow). All the groups chose Pascal as a base for their language design. At
the end of six months, the Intermetrics and the CII Honeywell Bull groups were
chosen as finalists and given an additional year for further development.
In 1979, the CII Honeywell Bull team was the winner. This team, led by
Jean Ichbiah, renamed the CII Honeywell Bull language to Ada. The name honors
Augusta Ada Byron www.math.twsu.edu/history/Women/ada.html,
the Countess of Lovelace and daughter of the English poet, Lord Byron.

She
was the assistant and supporter of Charles Babbage http://ei.cs.vt.edu/~history/Babbage.html,
the mathematician and inventor of a calculating machine called the Analytical
Engine http://www.fourmilab.ch/babbage/contents.html.

With
the help of Babbage, she wrote a nearly complete program to compute the
Bernoulli numbers, called circa 1830.
Jean Ichbiah’s team completed the design of Ada in September 1980, only
after considering 7000 comments and suggestions from language experts in more
than 15 nations. In January 1983, Ada became a military and American national
standard. Beginning in 1984, all embedded military software had to be programmed
in Ada.
After Ada was developed, the problem of too many languages was not
solved. The DOD realized that if subsets and supersets of Ada developed and were
allowed to retain the Ada name, the portability problem would return. To make
sure that this wouldn’t happen, the DOD took the unprecedented action of
registering the name ‘Ada’ as a trademark. This provided the ability to
control the use of the name and to guarantee that anything called ‘Ada’ was
the standard language. That is, subsets and supersets of Ada could not legally
be called ‘Ada”. Also, DOD set up the Ada Compiler Validation project to
develop a set of tests to determine if a compiler does in fact implement the
standard language. This process includes over 2500 tests.
Although designed for embedded processes, Ada is not restricted to these
applications. Ada can be also used in both business and education. Ada has rich general-purpose features that helped it become
more popular, and in doing so is being used as the beginning programming
language at a number of colleges and universities.
Although Ada is based on the small language Pascal, Ada is very large.
It is three times the size of Pascal. This size is Ada’s biggest flaw.
A real-time language should be close to 100 percent reliable.
The updated version of the Ada 83 is Ada 95. It was initially named Ada
9X because it was due in the 1990s, though the last digit of the year was
unknown at the time of development. Aside from correcting minor errors,
several improvements are included, mainly in the areas of object -oriented
programming and in parallel and distributed processing. It was considered
important to maintain upward compatibility so that other tools and software
wouldn’t become obsolete. The needs of information systems software are
different from those of real-time systems. It is hoped that various additions to
the language may provide for the specific needs of different users.
Declarative languages are languages in which a program specifies a relation or a function.
The declarative languages we will be broken down into two categories logic based languages/ Artificial Intelligence, Functional Based Languages, and Database Languages.
Logic based languages/ Artificial
Intelligence
Prolog
is a programming languages for Artificial Intelligence. It owes much of its
popularity to the Japanese "Fifth-Generation Computer Systems"
project.
Prolog
syntax is simple and similar to first order predicate logic. It is a declarative
programming language that differs in many ways from more widespread procedural
languages. Languages following this paradigm have their commands executed in the
order necessary to achieve the solution, not the order that can be easily
followed from the source code. Prolog consists of a set of facts (predicates),
which are information about objects in the real world, and (inference) rules,
which are relations among these objects. Predicates and constants must start by
lower-case letters, while variables must be capitalized. Predicate looks like
likes(john, ann).
On the other hand, rules have the form of
conclusion :- premises
where the :- sign means "if" and the
commas between premises mean "and". There is also a special predicate,
not, that can be used to negate predicates. For example:
grandparent_of(X, Z) :-
parent_of(X,
Y),
parent_of(Y,
Z).
parent_of(X, Y) :-
mother_of(X,
Y).
parent_of(X, Y) :-
father_of(X,
Y).
"Logo means "word", "idea", and the LOGO programming language is a language of words. Words in Logo are used as names for procedures and for data, in properties & relationships".
A team from MIT developed logo, and it was originally designed to introduce children to programming. The though behind LOGO was it would help develop better thinking skills that could be transferred to other subjects. Logo was supposed to be a language for the teaching of mathematical ideas to children through computer programming. It was intended to be easy to learn, easy to use, easy to read, but a powerful enough to solve complex problems. Eventually it was discovered that Logo extended far beyond mathematical teaching. Seymour Paper. Became the spoke person for LOGO. The slogan he used was "A language for learning." This logo actually had two meanings. One Logo is a language for learning how to program a computer. This is known as Logo Thinking. This means Logo helps the user in learning how to program by first writing a program in Pseudocode, and translating into a working program.
"Second Logo also means "Learning with Logo which means LOGO is designed to learn and understand the power of computing for making abstract ideas more concrete and more modifiable."
"Significant Language Features
· Extensible - . Logo comes with basic operations called "primitives". Words that you define, act & look just like primitives.
· Working Definitions - A logo procedure gives the definition of some new word or concept. It is also a definition that works or computes.
Definitions Have an Inside and an Outside - Outside, or title line, tells the user what the word does. The inside defines how it is done."
Functional Based Languages
Lisp stands for LISt Processing language, and it was first developed in the late 1950s
at MIT. One of the more famous LISP programs is Maclisp, which was written in the 1960’s at MIT’s project MAC. MACLISP set the groundwork for which other LISP programs based their model on. Years later the descendents of MACLISP programmers got together and developed a standard for Lisp systems called Common Lisp. Common LISP was intended to be portable, thus eliminating features that cannot be implemented on a large number of machines. Efforts were made to make it consistent, powerful, and stable. The LISP programming language major achievement was at one time the Department of Defense used LISP as the basis for a very high level language in developing prototypes.
Database Languages
The Structured Query Language (SQL) is a language for accessing data in a relational database, and it was originally created by IBM.
SQL has been through several versions and continues to evolve..
· Version Features SQL/86 Mostly IBM's SQL dialect.
· SQL/89 Added referential integrity.
· Embedded SQL (C, ADA, etc.) was adopted as a separate standard in 1989.
· SQL2 Includes embedded SQL, system catalogs and 'schemas', domains, more data types, and conversions between types called 'casts'.
· SQL3 Includes enhanced relational capabilities, such as active rules or 'triggers', and support for object features, such as user-defined data types and inheritance.
The SQL3 standard was important because, among a variety of new features, it allowed defining new data types. "Historically, database vendors have invested the most product development cycles towards meeting the needs of the business community".
Imperative Languages
Imperative languages are those which facilitate computational by means of
state changes. State, in this context means the condition of the computer's
random access memory.
One of the main features of Imperative Languages is block structure. Block
structure refers to having blocks nested within other blocks. In a
block-structured language, the procedure is the principal building block of
programs. Some of the more popular block structure programming languages are
ALGOL, Pascal, ADA and C.
Another concept of the Imperative Languages is Object Oriented
programming.
Examples of object oriented programming languages are SMALLTALK, JAVA, and
C++
Object Oriented Programming
An OO program consists of classes that model the real world objects that we
are simulating in our application. Object-oriented (OO) programming has many
advantages. The most important ones are:
1. Easy to understand: OO programs are akin to
the way our mind thinks in terms of real world objects.
2. Improved reliability: OO programs are modular and therefore
changes to different parts of the program can be made independent of each other.
This minimizes the risk of programmer error.
3. Ease of maintenance: Again the modularity of OO
programs facilitates ease of implementing changes i.e. the concerned module only
needs to be changed instead of modifying and rebuilding a gargantuan application
to make a few changes to one particular aspect of it.
4. Faster development cycles: Development cycles are
much more efficient because of the inherent code reuse that is made possible in
OO programming.
There are almost two dozen major object-oriented programming languages in use today. But the leading commercial o-o languages are
C++
Smalltalk
Java
Smalltalk can be traced back to Europe in 1960. The first "object-like" system developed was B1000 in 1961 followed by Sketchpad in 1962, with Clones and Instances. In 1965, Simula was designed and built at the Norwegian Computing Center by Nygaad and Dahl for system description and simulation. In 1967, Simula 67 was designed and later introduced in 1970 to become the first programming language with Objects and Classes.
In 1972, Alan Kay (who had designed and built the first OOP-based personal computer called FLEX in 1967-68) and others at XEROX PARC created Smalltalk 72, whose roots were tied to Simula 67. Smalltalk 76, a completely object-oriented programming language, later followed this.
In 1980, Smalltalk 80, a uniformly object-oriented programming environment became available as the first commercial release of the Smalltalk language
In 1981, the out-of-print August issue of Byte magazine was the first publication to present the language to the programming community publicly.
Smalltalk language has influenced other languages such as C++ and Java.
Java is the latest, flashiest object-oriented language. It has taken the software world by storm due to its close ties with the Internet and Web browsers. It is designed as a portable language that can run on any web-enabled computer via that computer's Web browser. As such, it offers great promise as the standard Internet and Intranet programming language.
Java is a curious mixture of C++ and Smalltalk. It has the syntax of C++, making it easy (or difficult) to learn, depending on your experience. But it has improved on C++ in some important areas. For one thing, it has no pointers, low-level programming constructs that make for error-prone programs. Like Smalltalk, it has garbage collection, a feature that frees the programmer from explicitly allocating and de-allocating memory. And it runs on a Smalltalk-style virtual machine, software built into your web browser which executes the same standard compiled Java bytecodes no matter what type of computer you have.
Java development tools are being rapidly deployed, and are available from such major software companies as IBM, Microsoft, and
Symantec.

JAVA Time Line
January 15, 1991
"Stealth
Project" (as named by Scott McNealy) brainstorming meeting in Aspen with
Bill Joy, Andy Bechtolsheim, Wayne Rosing, Mike Sheridan, James Gosling and
Patrick Naughton.
February 1, 1991
Gosling, Sheridan,
and Naughton begin work in earnest. Naughton focuses on "Aspen"
graphics system, Gosling on programming language ideas, Sheridan on business
development.
June 1991
Gosling starts
working on the "Oak" interpreter, which, several years later
(following a trademark search), is renamed "Java." August 19,
1991
Green team
demonstrates basic user interface ideas and graphics system to Sun co-founders
Scott McNealy and Bill Joy.
Summer 1992
Massive amounts of
hacking on Oak, and related components.
October 1, 1992
Wayne Rosing joins
from SunLabs (which had formed in July 1990) and assumes management of the team.
March 15, 1993
The development
team, now incorporated as FirstPerson, focuses on interactive television after
learning about Time Warner's RFP for its interactive cable TV trial in Orlando,
FL.
April, 1993
NCSA Mosaic 1.0, the
first graphical browser for the Internet, is released.
June 14, 1993
Time Warner goes
with SGI for its interactive cable TV trial, despite acknowledged superiority of
Sun technology and assurances in mid-April that Sun won the deal.
Summer, 1993
Naughton flies
300,000 miles selling Oak to anyone involved in consumer electronics and
interactive television; meanwhile, the rate at which people are gaining access
to the Internet reaches breakneck speed.
August, 1993
After months of
promising negotiations with 3DO to provide set-top box OS, 3DO president Trip
Hawkins offers to buy the technology outright. McNealy refuses, and deal falls
through.
September, 1993
Arthur Van Hoff
joins team, originally to do application development environment aimed at
interactive television; ends up doing mostly language design.
February 17, 1994
Alternative
FirstPerson business plan for doing CD-ROM/online multimedia platform based on
Oak presented to Sun executives to very mixed reviews.
April 25, 1994
Sun Interactive
created, half of FirstPerson employees leave to join it.
June, 1994
"Liveoak"
project started. Designed by Bill Joy to use Oak for a big small
operating system project.
July, 1994
Naughton reduces the
"Liveoak" project's scope to simply retargeting Oak at the Internet
after writing a throwaway implementation of a Web browser in a long weekend
hack.
September 16, 1994
Jonathon Payne and
Naughton start writing "WebRunner," a Mosaic-like browser later
renamed "HotJava"
September 29, 1994
HotJava prototype is
first demonstrated to Sun executives.
Autumn, 1994
Van Hoff implements
Java compiler in Java. (Gosling had previously implemented it in C.)
May 23, 1995
Sun formally
announces Java and HotJava at SunWorld '95.
May 23, 1995
Netscape announces
its intention to license Java for use in Netscape browser.
September 21, 1995
Sun-sponsored Java
development conference held in New York City.
September 25, 1995
Sun announces
expanded alliance with Toshiba and a joint project to develop remote information
retrieval products which incorporate Java.
September 26, 1995
Sunsoft announces
suite of business-oriented development products incorporating Java.
October 30, 1995
Oracle announces its
WebSystem suite of WWW software which includes a Java-compatible browser.
October 30, 1995
At the Internet
World Conference in Boston, Lotus Development Corp., Intuit Inc., Borland
International Inc., Macromedia Inc.,and Spyglass Inc. announce plans to license
Java.
December 4, 1995
Sun and Netscape
announce Javascript, a scripting language based on the Java language which is
designed to be accessible to non-programmers.
December 4, 1995
Sun, Netscape and
Silicon Graphics announce new software alliance to develop Internet
interactivity tools.
December 4, 1995
Borland, Mitsubishi
Electronics, Sybase and Symatec annouce plans to license Java.
December 6, 1995
IBM and Adobe
announce licensing agreement with Sun for use of Java.
December 7, 1995
Microsoft announces
plans to license Java during announcement of suite of new Internet products,
including Visual Basic Script.

Bjarne Stroustrop
C++ originated with Bjarne Stroustrop, and although it is not an entirely new language, C++ represents a significant extension of C abilities. We might then consider C to be a subset of C++. C++ supports essentially every desirable behavior and most of the undesirable ones of its predecessor, but provides general language improvements as well as adding OOP capability. Note that using C++ does not imply that your are doing OOP. C++ does not force you to use its OOP features. You can simply create structured code that uses only C++'s non-OOP features.
The designers of C++ wanted to add object-oriented mechanisms without compromising the efficiency and simplicity that made C so popular. One of the driving principles for the language designers was to hide complexity from the programmer, allowing her to concentrate on the problem at hand. Because C++ retains C as a subset, it gains many of the attractive features of the C language, such as efficiency, closeness to the machine, and a variety of built-in types. A number of new features were added to C++ to make the language even more robust, many of which are not used by novice programmers
Two important features are that C++ has a strong compiler type checking and a user-extensible language. By enforcing stricter type-checking, the C++ compiler makes us acutely aware of data types in our expressions. Stronger type checking is provided through several mechanisms, including: function argument type checking, conversions, and a few other features we will examine below. C++ also enables programmers to incorporate new types into the language, through the use of classes. A class is a user-defined type. The compiler can treat new types as if they are one of the built-in types. This is a very powerful feature. In addition, the class provides the mechanism for data abstraction and encapsulation, which are key to object-oriented programming.
Another type of Imperative language is referred to as Parallel Processing, which refers to the simultaneous use of more than one CPU to execute a program. It is possible with single-CPU computers, to perform parallel processing. This is done by connecting the computers in a network. However, this type of parallel processing requires very
sophisticated software called distributed processing software. Parallel processing differs from multitasking, in which a single CPU executes several programs at once. One example of the parallel processing language is Occam
Occam is a parallel computing language based on the Communicating Sequential Processes programming model designed by Tony Hoare. The CSP model is based on the idea of several 'regular' sequential processes that are running in parallel to each other. There were two versions of the Occam language Occam and occam2.
.