Monday, March 31, 2008

Programming Languages : ALGOL Paper
William Easton: 03/30/2008

ALGOL’s Incredible Impact on Computing Languages

ALGOL known as ALGOrithmic Language is a computer language used for expressing specific algorithms. ALGOL presents many new aspects that the world of computing had not ever seen before such as code blocks, reserved words and even a compiler. Backus-Naur form is one of the most important things to come from the production of ALGOL. Looking at the influence that ALGOL has had over languages we can point out several languages that are still used today based heavily off of ALGOL like Ada, PASCAL, and eventually even C.

FORTRAN was one of the biggest reasons for the drive to build ALGOL since FORTRAN could only be used on IBM machines. The makers of ALGOL wanted to make “one universal, machine-independent algorithmic language to be used by all, rather than to devise several in competition,” (Rutishauser 5). At a meeting held in Zurich, Switzerland shortly before ALGOL was built, a foundation was laid for the language. The GAMM (subcommittee for programming languages) and the ACM came together to form a committee and decided:

  1. The notation of the new language should be completely mathematical.

  2. It should be used to describe numerical processes (algorithms).

  3. The new language should be able to translate readily into machine code.

ALGOL 58 was completed in 1958 and took the computing world by surprise, “but it was so complex and different than any other language that had come before it that it was difficult to understand.” (Barrett 119) This is where John Backus presented his paper on the grammar of ALGOL. He presented ALGOL's grammar to a committee but the mathematical format it used contained symbols that could not be realized by current keyboards.

Peter Naur had the job of writing the notes for the conference where ALGOL's grammar was presented. He simplified the symbols into ones he could type into a computer, thus creating Backus-Naur Form. ALGOL 60 was expressed using the meta-language that Backus and Naur created and every subsequent language after ALGOL has been expressed in the same way. John Backus’s creation of Backus Normal Form was so groundbreaking that he was awarded the Turing Prize for what he had accomplished among many other things. ALGOL turned into quite a monolithic language by ALGOL 68. By the time ALGOL 68 came out it was so robust with features that it became too complicated to use because the writers wished to put every facet of programming into it. The amount of features and uses of ALGOL remain unsurpassed to this day.

The creation of ALGOL 68 was so complex that Niklaus Wirth condensed ALGOL to build his own language he called PASCAL. PASCAL was built to “encourage good programming practices,” (PASCAL Wiki) and to reduce the complexity of ALGOL which had grown into almost an infinitely flexible language. PASCAL and ALGOL then came together to form Ada, a military language used in missile, flight and air traffic control systems. Ada is a strong typed language that does runtime checking for anomalies or defects which could result in the injury or death of its users.

One of ALGOL’s most important descendants is the creation of CPL (Combined Programming Language). CPL included many of ALGOL’s unique features like block structure and strong typing but also CPL could control the hardware of the computer directly, something that was not seen before in combination. A programmer using CPL could go from using a very high level of abstraction to a low level hardware manipulation in one program. Sadly due to its complexity, like ALGOL 68, it was not widely adopted by programmers because of the immense complexity that it involved. Almost like clockwork a condensed version of CPL was created called simply, Basic Controlled Programming Language.

BCPL led into yet another language created by Ken Thomson from Bell Laboratories in 1969 named “B”. B was further developed and soon came the most widely used language in the world called “C”. So as you can see C can be traced all the way back to the humble beginnings of ALGOL 58 with just three goals to build a programming language.

The spread of computer languages is greatly influenced by ALGOL which has spawned a repertoire of descendants. Even Object-Oriented programming can be traced back to ALGOL and also the Virtual Machine seen in Java. The ALGOL dynasty is vast but its influence is still seen today by many of the modern languages that we use like block programming and reserved words. Backus-Naur Form is the most important creation to come from the creation of the ALGOL grammar. BNF is so important in fact that every single subsequent programming language has used BNF to describe their lexicon and syntax.


Works Cited

Barrett, Niel. The Binary Revolution. 1st ed. Vol. 1. New York: Sterling Pub Co Inc, 2006. 1-320.

McCracken, Daneil D. A Guide to ALGOL Programming. 4th ed. Vol. 1. New York, London: John Wiley and Sons, 1964. 1-106.

Rutishauser, Hienz. Description of ALGOL 60. 1st ed. Vol. 1a. Hiedlelberg: Springer-Verlag Berlin, 1967. 1-320.



0 comments: