Laboratory exercises: Difference between revisions

From Programming Languages
Jump to navigation Jump to search
No edit summary
 
Line 1: Line 1:
{{Proglan}}
{{Proglan}}
''Solutions for tutors and demonstrators are on a [[Tutors:Laboratory exercises (Programming Languages)|separate page]].''
''Solutions for tutors and demonstrators are on a [[Tutors:Laboratory exercises|separate page]].''


There are three laboratory exercises for the course:
There are three laboratory exercises for the course:

Latest revision as of 07:56, 7 October 2020

Solutions for tutors and demonstrators are on a separate page.

There are three laboratory exercises for the course:

  1. An exercise asking you to write a functional program for flattening nested lists, transform it into iterative form using an explicit stack, and then rewrite it using assignable variables and a loop. All this will be done in the Fun language that we will be studying in the course.
  2. An exercise where you will write a monadic interpreter for a language that combines call-by-name with assignable variables. This combination leads to a language with some strange features that are interesting to exploit.
  3. An exercise in exploring the semantics of a loop-with-exit construct that extends one present in Oberon.

I suggest that you attempt all three exercises, omitting the first one if it does not seem helpful.

Materials

Instructions for the labs are contained in a laboratory manual.

The supporting materials are accessible in a Mercurial repository that can be cloned with the command

hg clone http://spivey.oriel.ox.ac.uk/hg/proglan

For safety's sake, I've also provided the materials here, packed into a single archive.