BASIC
From Maze
(Difference between revisions)
(→Dartmouth BASIC and Time-Sharing Minicomputers) | (→A Brief History of Programming) | ||
| Line 15: | Line 15: | ||
There is plenty of dispute about who the first computer programmer is, but many have awarded this designation to Ada Byron, Lady Lovelace. She was brought up by her mother and educated extensively in mathematics and logic so that she might avoid becoming a poet like her father, Lord Byron. Her contributions as an early "programmer" are found in her translation of and notes to an Italian article about Charles Babbage's analytical Engine by Louis Menebrea. In this work, completed in 1843, she envisioned the Analytical Engine as a general-purpose computer and described an algorithm that could be used to output Bernoulli numbers. Although the "computer" which Lovelace programmed was never built, and there is evidence that the algorithm in question was originally written by Babbage, Lovelace's project was instrumental in developing the modern idea of the computer program. | There is plenty of dispute about who the first computer programmer is, but many have awarded this designation to Ada Byron, Lady Lovelace. She was brought up by her mother and educated extensively in mathematics and logic so that she might avoid becoming a poet like her father, Lord Byron. Her contributions as an early "programmer" are found in her translation of and notes to an Italian article about Charles Babbage's analytical Engine by Louis Menebrea. In this work, completed in 1843, she envisioned the Analytical Engine as a general-purpose computer and described an algorithm that could be used to output Bernoulli numbers. Although the "computer" which Lovelace programmed was never built, and there is evidence that the algorithm in question was originally written by Babbage, Lovelace's project was instrumental in developing the modern idea of the computer program. | ||
| − | The computer programs that followed in the electromechanical and early electronic age of computing were quite a bit less intelligible to humans. | + | The computer programs that followed in the electromechanical and early electronic age of computing were quite a bit less intelligible, with a much less direct relationship to mathematical notation. The ENIAC, a fully electronic comptuer which was built at the University of Pennsylvania from 1943 to 1945, was programmed by plugging in an elaborate set of cables. [http://www.columbia.edu/acis/history/eniac.html] To run particular calculations, constants were then set using dials. The next step in programming was the use of machine language. A program in machine language was simply a sequence of numbers. On the ENIAC, these were decimal (base 10) numbers, but different bases were used on other significant early systems. The EDVAC used binary; the ORDVAC, octal; and the BRLESC, sexadecimal. [Fifty years of Army computing by U.S. Army Research Laboratory, p. 62] In all of these cases, programmers needed to arduously determine the sequence of numbers that would constitute a program, writing something that did not look remotely human language at all. |
| + | |||
| + | The step was seen in so-called "second generation programming langauges," which are assembly languages, still used in rare cases today. Assembly allows the use of mnemonics for operators such as LDA ("load accumulator"), JMP ("jump"), and INC ("increment memory") to stand in for the less easily read underlying numbers. EDSAC sported the first assembler in 1949. [http://liveforsinging.com/categoryA/language_history/assembly_language_history.html] An assembler program is much more comprehensible than a sequence of numbers. While assembly is still used today in embedded systems, low-level programming, and the demoscene, there are usually significant disadvantages to programming at this level. It highlights technical details of platforms and the transfer of values between memory locations and registers. Higher-level languages allow the programmer to concentrate on other matters, such as solving mathematical and scientific problems or mapping the program to business processes. | ||
| + | |||
| + | To reach a level of programming more appropriate for these tasks, particularly the mathematical and scientific ones, FORTRAN (Formula Translation) was specified in 1954 and first implemented in 1957. To address the business side, COBOL was specified in 1959 and implemented in 1960. Both of these languages allowed even more intelligible code. But both were also developed for the context of batch processing, for use with stacks of punched cards. | ||
== Dartmouth BASIC and Time-Sharing Minicomputers == | == Dartmouth BASIC and Time-Sharing Minicomputers == | ||
