
A computer must be given instructions in a language that it understands-that is, a particular pattern of binary digital information. On the earliest computers, programming was a difficult, laborious task, because vacuum-tube ON-OFF switches had to be set by hand. Teams of programmers often took days to program simple tasks such as sorting a list of names. Since that time a number of computer languages have been devised, some with particular kinds of functioning in mind and others aimed more at ease of use-the user-friendly approach.
Machine Language.
Unfortunately, the computer’s own binary-based language, or machine language, is difficult for humans to use. The programmer must input every command and all data in binary form, and a basic operation such as comparing the contents of a register to the data in a memory-chip location might look like this: 11001010 00010111 11110101 00101011. Machine-language programming is such a tedious, time consuming, task that the time saved in running the program rarely justifies the days or weeks needed to write the program.
Assembly Language.
One method programmers devised to shorten and simplify the process is called assembly-language programming. By assigning a short (usually three-letter) mnemonic code to each machine-language command, assembly-language programs could be written and debugged-cleaned of logic and data errors-in a fraction of the time needed by machine-language programmers. In assembly language, each mnemonic command and its symbolic operands equals one machine instruction. An assembler program translates the mnemonic opcodes (operation codes) and symbolic operands into binary language and executes the program.
Assembly language, however, can be used only with one type of CPU chip or microprocessor. Programmers who expended much time and effort to learn how to program one computer had to learn a new programming style each time they worked on another machine. What was needed was a shorthand method by which one symbolic statement could represent a sequence of many machine-language instructions, and a way that would allow the same program to run on several types of machines. These needs led to the development of so-called high-level languages.
High-Level Languages.
The first commercial programmer was probably Grace Hopper (1906-92), an American. After programming an experimental computer at Harvard University, she worked on the UNIVAC I and II computers and developed a commercially usable high-level programming language called FLOWMATIC. To facilitate computer use in scientific applications, IBM then developed a language that would simplify work involving complicated mathematical formulas. Begun in 1954 and completed in 1957, FORTRAN (FORmula TRANslator) was the first comprehensive high-level programming language that was widely used.
In 1957, the Association for Computing Machinery set out to develop a universal language that would correct some of FORTRAN’s perceived faults. A year later they released ALGOL (ALGOrithmic Language), another scientifically oriented language; widely used in Europe in the 1960s and 1970s, it has since been superseded by newer languages, while FORTRAN continues to be used because of the huge investment in existing programs. COBOL (COmmon Business Oriented Language), a commercial and business programming language, concentrated on data organization and file handling and is widely used today in business.
BASIC (Beginner’s All-purpose Symbolic Instruction Code) was developed at Dartmouth College in the early 1960s for use by nonprofessional computer users. The language came into almost universal use with the microcomputer explosion of the 1970s and 1980s. Condemned as slow, inefficient, and inelegant by its detractors, BASIC is nevertheless simple to learn and easy to use. Because many early microcomputers were sold with BASIC built into the hardware (in ROM memory) the language rapidly came into widespread use. As a very simple example of a BASIC program, consider the addition of the numbers 1 and 2, and the display of the result. This is written as follows (the numerals 10-40 are line numbers):
10 A=1
20 B=2
30 C=A+B
40 Print C
Computers and Internet