Next: References Up: Class Note 1 Previous: Outline

Motivation

Before we get into the nuts and bolts, we ask questions about the philosophy of the course. You will find Gunter's answer to why the subject is important in p.1-16 of his book. (I endorse everything he says and give you additional reasons why CAML(ight) is a French version. Its name is perhaps due to the cigarette - I think the subject is important.)

Gunter says that one of the objectives of the subject is to blur the distinction between programs as instructions and as descriptions of answers. Historically, the first languages were machine oriented assembly languages. The next generation of languages Algol, Fortran and Lisp were problem oriented. The most recent version of Fortran, Fortran 90, is quite similar to the what it originally was. As you go along the course, ask yourself if you can give better examples of the advantages of high level languages than Gunter does. However you should not imagine that there is a universal consensus in favor of high level languages. The National Security Agency, for example, believes in using machine languages. What could the reasons be? The answers are interesting. Apart from their obsession with security (who can read machine code?) and speed, they claim it is a matter of trust. They do not trust the correctness of any high level language compiler. We at Cornell do believe in high level languages. We quote Nuprl and SPL as two examples.

In Gunter's introduction he also talks about natural languages. One reason is that they can be thought of as very high level languages. This claim is debatable. Do both machines and humans follow instructions? Some people think so; at the level of quantum confusion with funnily aligned molecules and atoms, we are just a very complex computer. Other people think that we understand and compute. This notion of a built-in logic prior to computing has been examined by AI researchers like Terry Winograd. One of their objectives is to extract the procedural component of understanding.

There is another reason why we study natural languages. The programming languages have a syntactic part and a semantic part. Chomsky's ideas about the syntax of natural languages turned out to be quite usefull in programming languages . So there is a chance that linguists may have something to say about the semantics of programming languages as well.



Next: References Up: Class Note 1 Previous: Outline


cs611@
Wed Oct 5 13:42:30 EDT 1994