Labs

Lorem ipsum dolor sit amet.

This is what the tool I use for editing websites always says when I start a new page. Incredibly appropriate, I think.

Basics Lab

The "basics lab" has you working through a sequence of basic exercises in Scheme. 

Structure Lab

This lab explores the  definition of record-based structures as well as the self-referential structure most commonly known as a list

XML (Tree) Lab

cassette-tape-breakdown

You've seen lots of lists in the last week. This exercise takes a step back from the heavy-hitting practice you've been doing these last two weeks, and hopefully will let you see the forest for the trees

"Forest for the Trees" was one of the tracks on the chart-topping 1986 hit album Fore! by Huey Lewis & The News. It was the first cassette tape that I owned.

A compact cassette tape is pictured…

The Rudimentary Interpreter

  1. Write a parser and interpreter for the WAE language discussed in the text. (This is an extension of the AE language seen in class.) The textbook can be of great assistance in this part of the assignment; it provides an abstract syntax datatype and the beginnings of a parser and an interpreter.

  2. Once you've written and tested the parser and interpreter for WAE, extend it with the features…

The Extended Interpreter

lego-bricks

In this laboratory, you'll be extending your interpreter to handle some new language constructs. In particular, we'll add an if statement (called if0  so we don't confuse the if in our programming language with the if in Scheme), and we'll add the ability to use functions.

Now, functions will require you to think and learn. In particular, we have to be careful about how we do (deferred)…

Models of Views

Model-View-Controller is a common object-oriented pattern. You will find it in every well-written GUI application you ever see, and any reasonable web-based application. And application in these spaces that fails to implement Model-View-Controller is probably going to be an unmanageable mess, impossible to extend reliably, and something you should consider walking away from or rewriting.

In this…

Objects in Space

As we all know, Firefly is one of the examples of episodic sci-fi writing ever. When I say "As we all know," it's kinda like "so say we all," except that's some other sci-fi show. No, you just have to agree. Best not to argue.

firefly_objects_in_spaceThe last episode in the series was called Objects in Space. There are a number of entertaining (and maddeningly unresolved) aspects to the episode. Here, the only thing…

MiniLab: Scheme

The Scheme minilab is available in HTML or PDF form.

This was written in a sleep-deprived state, at the end of a long day. There are no warranties, expressed or implied.

(PLT Scheme has had many logos, BTW. I'm stealing them from here...)

MiniLab: occam

occam is a reasonably old language, with occam1 first appearing on the scene in 1981. Grounded in the CSP algebra, it provides constructs for writing SEQuential code, PARallel code, and for ALTernating over inputs from other processes. While the language has evolved (into what is now called occam-pi), the extensions are poorly documented and their semantics largely undefined. As a result, we will…