In this lab you'll start learning your selected languages.
For each of your languages, you and your partner should make a single
top level wiki page. On the top level page, put a brief description of
the language and make links to each of your projects for that
language. You are free to label the links with the meaning of the
project, rather than 'Project 3'.
If you prefer to make a standard web page instead of a wiki page for your language, that is fine. We can set you up with space on a department server where you can do your work.
- For each of your two languages, develop a language resource wiki page or web page. Spend some time searching for useful resources, documentation, and formal descriptions of the language. Organize the page in a useful way. Think of it as your reference manual for the rest of the semester, so make it useful for you.
- Write an example program in each language that demonstrates the rules for identifier naming, variable declarations and identifier scoping. Focus on any special rules or capabilities of your language. Make a wiki page with the code and a brief explanation how the scoping rules apply to the code.
- Write an example program in each language that executes a binary seach on a list or array of numbers. Make it a function/method, if possible. Make a wiki page that explains the basic syntax of the language, using the binary search program as an example.
- Write an example program in each language that demonstrates all of the basic built-in types and how to construct aggregate types (e.g., records, classes or structures). The program should demonstrate which of the standard suite of operators (+-/*%) manipulate which types and what the resulting type of each operation is. Use it to explain the type system in your language.
- A perfectly acceptable extension for any assignment going forward is to do a third language.
- Write other example programs that show unique features of the syntax, naming, or scoping in the language.
- If the language has a built-in capability for binary search, include an example of using it.
- Come up with an example of just how horribly you can write the binary search program, making it as difficult as possible to understand what is going on. Use this as an example of how syntactic or semantic rules permit obfuscation.
- Make a compilable and runnable haiku in the language. Less strict forms of poetry are also acceptable.
- Demonstrate whether functions are a basic data type in your language. Can a variable hold an arbitrary function?
The writeup for this week is the assignment itself. Once you have written up your assignment, give your main page for each language the label: