CS 538
Lecture 2
1-26-2000

History of Computer Languages
The first computer programs were programmed with wires. These wire programs were similar in appearance to a big telephone switchboard that might be seen in an old movie. There were plugs attached to these wires that fit into plugholes on a panel. The first programs used relays (the switch that turns a television on is a relay). Relays were later replaced with vacuum tubes, which in turn were replaced with transistors. In 1946, John von Neumann introduced an idea to store programs in the computers memory as numbers -- ones and zeros. This was early machine code. Nowadays there are hundreds if not thousands of languages. Many of them are ancient and no one can figure them out anymore.

Evolution of Computer Languages
There have been major programming languages since the 1950s, even though Machine language is still the only language a machine understands.

Major steps:

  1. Machine languge. This was just digits.

  2. Assembly language. Most modern achines have an assembler, and it is still possible to program with it. Assembly language has a very fundamental difference from machine language in that it is symbolic. For example, the code:

    ADD %R11, %R12, %R13
    could be a typical assemblly instruction to add the contents of registers 12 and 13 and put the answer into register 11. Most people don't, because it is tedious and bad for productivity. However, sometimes it is necessary to use assembly language for experimental reasons where one needs to be close to the machine, or at a "low level."

  3. Fortran (mid 1950s) = "Formula Translator." This was the first language that could be used by people other than computer scientists. It was intended to be used by engineers and scientists. Fortran introduced things like: Operators in Fortran became explicit rather than implicit to avoid ambiguity.

  4. COBOL (late 1950s to early 1960s) = "Common Business OrientedLanguage." COBOL was first created initially for financial institutions and government agencies like the IRS. It targets business people not familiar with equations, so it isn't very mathematical; instead, it is very wordy. For example:

    MOVE PRICE TO PRICE-OUT
    for an assignment. *Note that the minus sign is not expressed as a subtraction operater. Also, an equation like X + Y = Z can be expressed like:

    ADD X,Y GIVING Z
    COBOL lost popularity but eventually came back about 4-5 years to remedy the Y2K crisis. Despite its simple looking syntax, there are still a lot of hidden rules, so it became necessary for COBOL to be standardized. Standardization is when a programming language is regulated over would it should not do despite the vendor. Often, a regulating body consists of a group of people. However, some of the most successful programming just have one person.

  5. Algol 60 (circa 1960) = "Algorithmic Language." This language never became very popular. But Algol 60 is very important in the evolution of programming languages because it introduced many new ideas: Algol 60 failed for a number of reasons. One, it was designed in Europe, and the U.S. didn't like the competition. The biggest reason is that Algol 60 didn't standardize I/O.

  6. Lisp = "List Processor." Lisp was developed as a functional language, and was very different from other programming languages at the time. Lisp was created for symbolic (non-numeric) programming as opposed to other programming languages, which were generally used for number-crunching. With Lisp, there isn't a distinction between program and data, so a program can actually build more program. Essentially it can learn, but it can be difficult to read/modify the programs built. Lisp isn't very strict about the method it uses to compute values. Other programming languages have a very strict step-by-step method. Lisp has a lot of parentheses. An example of adding A and B can be expressed as:

    (+ A B)