3.13 Language Analysis the First

This page count is based on roughly 66 lines per page and was arrived at by running a2ps -1 on a text file. If you are having trouble sticking to 80-character lines in a text file, it is easy to use auto-fill-mode in Emacs or just press Meta-q periodically while you are typing in Emacs.

In about 7 pages (approximately 455 80-character lines or 3,850 words), write a survey paper about an existing programming language, of your choice.

You should analyze it using the critical tools, terminology and ideas used in this class. You should discuss what makes it unique or interesting. You could talk about what you believe is particularly good or bad about it. You could talk about how to improve it.

I find that students have a hard time getting beyond description and going into discussion and analysis. Try very hard.

You should limit your discussion of the history of the language, but it may be interesting to spend a little time on it (not more than a page, probably.)

You should be judicious in your discussion of implementations of the language or implementation techniques. But, in some cases, there may be something particularly important about an implementational matter that would be worth discussing.

You should /severely/ limit your use of code samples. It is much better to explain the language with words.

You must properly cite the sources for your information.

You should not pad your writing or include bologna.

I strongly advise you to choose a language that you are not already familiar with, so that you will learn more. In addition, it is probable that the more "mainstream" a language is, the less unique or interesting it is, so it will be more difficult to actually write the paper.

When I am grading, I will take off 5% for every flaw. If you hit zero before the essay is over, I’ll stop reading. You should follow this same algorithm when grading yourself or others. (Examples of flaws: typos, missing citations, poor grammar, poor arguments, pandering, padding, bad style, etc.)