Languages
typically don’t develop in a vacuum. Instead, new languages are designed based
on their designer’s delights and frustrations with other languages they’ve
used. Because of this, some appreciation for those languages that have had
significant impact over time is useful in understanding language design. In
addition, examining collecting information about different languages together
in one spot provides an easy way to contrast the kind of features various
languages provide and to see the various ways in which languages provide
similar kinds of data and control structures.
There have been two large conferences on the History of Programming Languages, the first in 1978 and the second in 1993. Each conference featured papers about significant languages, written by the principle designer of each language. The Proceedings also include transcripts of question-answer sessions and summaries of the language features.
Each
group of three or four students will be assigned one language covered in one of
the Proceedings. They are to read the material on this language in the
Proceedings, seek out other sources of information about the language. Each
group should publish a report about their language on a web page. These reports
should be as complete as you have time for, but at the very least must include
information related to the four sets of points presented below. The reports
should also include links to on-line resources about the language (if they
exist) and a sample program written in the language to give readers a feel for
the language.
1.
What
year was the language created? What other languages influenced it most? What
were the most significant objectives to be achieved by the language? Was the
language based mostly on one language or many? Is the language compatible with
other existing languages? Was the language created for commercial, research, or
educational purposes? What other languages have been influenced by it?
2.
To
what paradigm does the language belong? Was the choice of paradigm an important
consideration in development of the language? How is the language typically
implemented?
3.
What
are the biggest problems encountered during design, implementation, and use of
the language?
4.
Describe
some of the features of the language (much as Sebesta has done for the various
concepts covered in the text), such as operations; control structures;
primitive, aggregate, and user-defined data structures; and program structuring
mechanisms.
Resources
The
Proceedings of the two History of Programming Languages conferences have been
placed on reserve in the library. Note that there are language summaries for
each language that should probably be read first. The papers are relatively
long (80 – 100 pages), so be sure to allow time to read them. You can start
looking for Web resources at Yahoo’s programming languages directory (http://dir.yahoo.com/Computers_and_Internet/Programming_Languages/).
Advice
The
Web pages don’t have to be fancy. I suggest writing in a word processor or
other medium that allows you to export HTML documents. This is also a good
chance to take advantage of the hierarchical nature of Web documents. Don’t put
up 15 pages of text in a single document. Structure the document so that
following various links takes you through a high-level overview or draws you
down into more detailed discussion of various features. Please make any links
within the documents you create relative, so that we can later move these pages
to a single location to provide a resource useful to other students.