PROGRAMMING
History of programming
During a nine-month period in 1840-1843, Ada Lovelace translated the memoir of Italian mathematician Luigi Menabrea about Charles Babbage's newest proposed machine, the Analytical Engine. With the article she appended a set of notes which specified in complete detail a method for calculating Bernoulli numbers with the Analytical Engine, recognized by some historians as the world's first computer program.
Herman Hollerith realized that he could encode information on punch cards when he observed that train conductors
encode the appearance of the ticket holders on the train tickets using
the position of punched holes on the tickets. Hollerith then encoded the
1890 census data on punch cards.
The first computer codes were specialized for their applications. In the
first decades of the 20th century, numerical calculations were based on
decimal numbers. Eventually it was realized that logic could be
represented with numbers, not only with words. For example, Alonzo Church was able to express the lambda calculus in a formulaic way. The Turing machine
was an abstraction of the operation of a tape-marking machine, for
example, in use at the telephone companies. Turing machines set the
basis for storage of programs as data in the von Neumann architecture
of computers by representing a machine through a finite number.
However, unlike the lambda calculus, Turing's code does not serve well
as a basis for higher-level languages—its principal use is in rigorous
analyses of algorithmic complexity.
Like many "firsts" in history, the first modern programming language is
hard to identify. From the start, the restrictions of the hardware
defined the language. Punch cards allowed 80 columns, but some of the
columns had to be used for a sorting number on each card. FORTRAN
included some keywords which were the same as English words, such as
"IF", "GOTO" (go to) and "CONTINUE". The use of a magnetic drum
for memory meant that computer programs also had to be interleaved with
the rotations of the drum. Thus the programs were more
hardware-dependent.
To some people, what was the first modern programming language depends
on how much power and human-readability is required before the status of
"programming language" is granted. Jacquard looms and Charles Babbage's
Difference Engine
both had simple, extremely limited languages for describing the actions
that these machines should perform. One can even regard the punch holes
on a player piano scroll as a limited domain-specific language, albeit not designed for human consumption.
No comments:
Post a Comment