CS 2135 Homework 6: Looking at Languages

Due: Feburary 26 (Thursday) at 11:59pm via turnin (assignment name hwk6).

Assignment Goals

The Assignment

  1. Paul Graham wrote the original software for setting up on-line stores that Yahoo! currently uses. He wrote it in Lisp, which is a close cousin to Scheme (very similar syntax, constructs, and features). Graham's article, Beating the Averages, discusses why he believes Lisp gave his million-dollar startup a competitive advantage. Read the article.

  2. In another article, Graham provides a surface-level critique of Java. Read the article. In your own words, state three questions that Graham's article teaches you to ask when approaching a new language.

  3. Languages are everywhere once you get used to looking for them. In general, a language is the repository of knowledge and goals that emerge from a domain of human activity. Computer science is replete with such examples (optimization problems led to OPL, database query optimization gave rise to SQL, scripting needs brought forth Awk and Perl, and so on). But humans have done this for much longer than computers have been around.

    Your task is to find a non computer science ``language'' used for some activity by some subset of humans. Explain the community of people and what they share. Now, evaluate this language as you would a programming language.

    Example: Consider (Western) musical score. The community is that of musicians, and the activity is capturing the music. I won't bother elaborating on the data and control elements here (but you should for the language you choose). A sample ``interpreter'' is a pianist who ``runs'' the score on a piano; the score's ``value'' is the sound we hear. Computer programs that read score and produce the music exist (and can therefore be written).

    Be creative and brief. You will either nail it or be all at sea. It doesn't take much to tell one from the other. Don't pick a human spoken language (English, Esperanto, etc) -- the goal is for you to see language-like structures in the world around you. Creativity counts. In terms of write-up, a few paragraphs, at most a page, will suffice.

[Side Note: if you enjoy Graham's writing, his article Taste for Makers is a lovely piece on the role of taste in design. You don't have to read this article for this assignment, but it's worth reading when you have the time.]


For the essay responses, satisfy the criteria in the questions, and make sure you provide explanations where I asked for them.

For the language-identification, your grade will reflect whether you chose a language that has all the elements mentioned above (data, operations, control, etc) and whether you identified those elements appropriately.

We will also grade for writing. Spelling and grammar errors and sloppy writing will cost you points.

What to Turn In

Turn in a single TEXT file hwk5.txt containing your answers (no MS word, PDF, etc, please -- we want to be able to view these easily within a command shell in Unix). Make sure that both students' names are in a comment at the top of the file.

Back to the Assignments page