Contents
Home
UMKC Curriculum
FS '96
CS 101
SS '01
CS 201
FS '01
CS 191
CS 281
WS '02
CS 291
EN 304wi
SS '02
CS 352
CS 481
FS '02
CS 431
CS 441
WS '03
CS 423
CS 451
SICE Survival Guide
Personal Experience
contact me @umkc:
tehqnf@umkc.edu
|
CS441 - Homework #3
Implementing
Different Tasks on General-purpose Machines |
1800 –
1850 |
No particular language |
‘Jacquard Loom’ and Charles
Babbage |
These
developers saw the need for separating the ‘description of the
task’ from the machine that performed that task. By changing a
small part (such as a card or gears) of the whole machine, the
user could change the function of the machine. |
Sources:
2 & 5 |
Conditional
Control Transfer |
1945 |
Machine Instructions |
John von Neumann |
While von
Neumann’s architecture of shared data and instruction memory
still remains in today’s hardware design, the concept of
transfer control allowed for block-based coding and
organization of code into reusable libraries. |
Sources:
2 & 4 |
Language for
Expressing Computations |
1946 |
Plankalkül |
Konrad Zuse |
Zuse’s
work is widely regarded as the first to create a more human
expressive form of mathematical computations. |
Sources:
3, 4 & 5 |
Pseudocodes
and Compilers |
circa
1950 |
Assembly languages |
Grace Hopper, et al. |
Pseudocodes were born out of the need to make machine code
more readable. They allowed the programmers to use human
language words to express a particular machine instruction. Of
course, interpretation of these codes would slow the machine
to unacceptable levels. Thus, reliable compilers were needed
to create directly-executable machine code out of pseudocode. |
Sources:
1 & 5 |
‘High-level’
Programming Languages |
1957 |
FORTRAN/FORTRAN II |
IBM Team lead by John Backus |
Higher
level languages - along with efficient translator/compilers -
significantly reduce the overall cost of writing a program by
increasing the speed of code development. FORTRAN II added the
ability to handle subroutines. These have become the standard
for all following languages. |
Sources:
1, 3 & 5 |
Business
Applications of Computing |
1959 |
COBOL |
DoD team lead by Grace Hopper |
Although
not appropriate for complex algorithms, COBOL was adopted by
banks and corporations for its applications in record keeping
and readability. It was the first to use record structures to
organize data and separate the data definitions from program
execution. Also, programming language developers now had a new
source of funding – corporations. |
Sources:
1, 3 & 5 |
Symbolic
Computing and Functional Programming Paradigm |
1959 |
LISP |
John McCarthy |
Designed
to aid in programming for artificial intelligence, LISP
significantly broke from the von Neumann architecture. It also
was the first to introduce automatic garbage collection and
originated the use of recursive function calls. |
Sources:
1, 3 & 5 |
International
Standardized Language Definition |
1960 |
Algol60 |
International Committee |
Just the
existence of Algol60 actually could be considered this major
development because of its influence on so many imperative
languages that followed – Pascal, C, Modula-2, and Ada. It
incorporated many of the best features of many other existing
languages, and included new features. These features include
structured statements, recursion, type declarations,
call-by-value, and a stack-based runtime environment. Also, it
was the first syntax to be defined using BNF notation. |
Sources:
1, 3, 4 & 5 |
So Many
Languages – So Little Time… |
Early-Mid
1960s |
Various Languages |
Various Developers |
Although
not necessarily a positive advancement in programming
languages, the explosion of languages that appeared in the
early 1960s – in my opinion – did have an effect on the
development on programming languages. While some came about to
pinpoint a special niche market, others, such as PL/I, were
designed to be ‘THE ONE’ language that would combine the best
features of all languages, but may have ended up incorporating
too many features to be useful in one environment. |
Sources:
3 & 5 |
Object-Oriented Languages |
1967 (and
into the 1970s) |
Simula67 |
Nygaard and Dahl |
Simula67
took data abstraction to new levels by introducing the concept
of a class which included both data constructs and the methods
to manipulate those data members in order to hide the
complexity of the underlying data. Unfortunately, it took
until the mid-to-late 1970s for OOP to truly catch on. |
Sources:
3 & 5 |
Sorting Out
the Details |
1970s,
1980s, 1990s |
Various Languages |
Various Developers |
In my
opinion, 1970 marks the time when actual major developments
in programming languages come to an end. Since then, there
have been many new languages come about that have either
incorporated more features in order to become an all-around,
good choice in programming languages (i.e. – Ada, C++ &
Smalltalk), or have stripped out extraneous language features
in order to make it easier to understand the language set
(i.e. – Pascal & Algol-W).
Other
notable happenings include:
-
The design of
Pascal as a simple language useful for teaching programming.
-
The popularity
of C for its greater access to hardware and embedding in the
UNIX O/S.
-
The resurgence
in popularity of functional programming languages (Scheme,
Prolog & Common LISP)
-
Incorporation of
exception handling and concurrency into programming languages.
-
Application of
programming languages to the Internet and Virtual Machines
(i.e. - Java)
Although
the above selections are fine examples in programming
languages, they do not rise to the level of major
developments. They seem to fall into a cycle with ‘GP language
with all features’ at one end and ‘Targeted languages that are
less complex’ at the other. And, industry taste determines
which language becomes popular at the time. |
Sources:
3 & 5 |
Sources:
1. “A Brief History of Programming
Languages.” Sep. 1995.
http://www.byte.com/art/9509/se7/artl9.htm. (13 Sep. 2002).
2. Meyers, Jeremy. “A Short History of the
Computer.” c.1993.
http://www.softlord.com/comp/. (13 Sep. 2002).
3. Louden, Kenneth C. Programming
Languages Principles and Practice. Boston: PWS Publishing
Company, 1993.
4. Ferguson, Andrew. “The History of
Programming Languages.” 3 Aug. 2000.
http://www.princeton.edu/~ferguson/adw/programming_languages.shtml.
(13 Sep. 2002).
5. Sebesta, Robert. Concepts of
Programming Languages, Fourth Edition. Reading, Massachusetts:
Addison Wesley, 1999.
|