BASIC

From Maze

(Difference between revisions)
Jump to: navigation, search
(→Programs in Human Memory)
(Smoothed out a bit in response to Michael's comments)
Line 13:Line 13:
== A Brief History of Programming ==
== A Brief History of Programming ==
−
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. This earliest concept was of an algorithm specified in mathematical notation.
−
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 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 familiar symbols. The ENIAC, a fully electronic computer which was built at the University of Pennsylvania from 1943 to 1945, was programmed initially 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. Each possible operation corresponded to a number, while the operands, if there were any, were provided as similar numbers.
−
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] Although cryptic compared to a high-level language such as BASIC, an assembler program is nevertheless much more comprehensible than a machine language program, which is just 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. Programming in assembly 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.
+
The first step toward more legible code was seen in so-called "second generation programming langauges," which are assembly languages. 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. The first assembler ran on Cambridge University's EDSAC, the first stored-program computer, in 1949. [http://liveforsinging.com/categoryA/language_history/assembly_language_history.html] Although cryptic compared to a high-level language such as BASIC, an assembler program is nevertheless much more comprehensible than a machine language program, which is just a sequence of numbers. While assembly is still used today in, for instance, programming firmware and in the demoscene, there are usually significant disadvantages to programming at this level. Programming in assembly 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 -- particularly, for IBM's 1928 punched cards that had 80 columns, the same number of columns that standard printers and terminals had. (The Commodore 64's 80-column logical line, which appears as two 40-column lines on the screen, is one legacy of this early material medium for computing.) Programs written in early versions of COBOL and FORTRAN were specific to the punched card in certain ways: COBOL reserved columns 1-6 for the line number and column 7 for a continuation mark if the card's code ran on from the previous one. FORTRAN was similar, with columns 1-5 indicating the statement number. "Comments" (usually the program name) went in columns 73-80 in both languages; a "C" in the first column indicated that the whole FORTRAN card was to be considered a comment. Unless one wrote a one-liner, a COBOL or FORTRAN program would manifest itself as a stack, often a massive one, of punched cards, which had to be punched on a keypunch machine and fed into a card reader by an operator. Line numbers were of great importance if someone dropped the stack of cards, since they would have to be sorted into order.
+
During the first decade of electronic computing, programming was still crawling toward the ideal of Lovelace's "programs" that specified algorithms in high-level, human-readable form. To reach a level of programming more appropriate for mathematical and scientific tasks, FORTRAN (Formula Translation) was specified in 1954 and first implemented in 1957. This language, and particularly FORTRAN II from 1958, would be a very strong influence on BASIC. Programming languages were developed for other purposes as well. To address the business side, COBOL was specified in 1959 and implemented in 1960. FORTRAN and COBOL both allowed for more intelligible code, improving on assembly, but both were also developed for the context of batch processing, for use with stacks of punched cards. Specifically, they were developed for what became known as simply "the IBM card," IBM's 1928 punched card that had 80 columns. (The Commodore 64's 80-column logical line, which appears as two 40-column lines on the screen, is one legacy of this early material medium for computing.) Programs written in early versions of COBOL and FORTRAN were specific to the punched card in certain ways: COBOL reserved columns 1-6 for the line number and column 7 for a continuation mark if the card's code ran on from the previous one. FORTRAN was similar, with columns 1-5 indicating the statement number. "Comments" (usually the program name) went in columns 73-80 in both languages; a "C" in the first column indicated that the whole FORTRAN card was to be considered a comment. Unless one wrote a one-liner, a COBOL or FORTRAN program would manifest itself as a stack, often a massive one, of punched cards, which had to be punched on a keypunch machine and fed into a card reader by an operator. Line numbers were of great importance if someone dropped the stack of cards, since they would have to be sorted into order.
The creators of BASIC aimed to develop a programming language for the next computing revolution, one that would allow numerous users interactive access to a system simultaneously: Time-sharing.
The creators of BASIC aimed to develop a programming language for the next computing revolution, one that would allow numerous users interactive access to a system simultaneously: Time-sharing.

Revision as of 11:24, 7 July 2011

View this revision of BASIC.

Personal tools