CSci 658: Software Language Engineering

Fall 2013
Assignment #2
Due 4:00 p.m., Tuesday, 29 October


  1. Select one of the following programming projects. Develop appropriate Lua packages in the groups assigned by Dr. Cunningham. Each group needs to choose a different project. The goal is to produce a case study that can be used in a future version of a Lua-based class on programming languages or software engineering.

    1. Similar to the case study of the Picture Language given in subsection 2.2.4 of SICP.. The Pictures running example from Simon Thompson's Haskell: The Craft of Programming, Third Edition, is similar. Some kind of graphical display of the pictures is needed.
    2. Similar to the case study given in "Systems with Generic Operations" subsection 2.5.1 and 2.5.2 of SICP. This example extends either the data-directed programming or object-oriented programming modules discussed in class. (If you do the OO version, also look at the Movable and Named Objects example from class.)
    3. Similar to the case study given in "A Simulator for Digital Circuits" in section 3.3.4 of SICP.
    4. Similar to the case study given in "Propagation of Constraints" in section 3.3.5 of SICP.
    5. Similar to the Rock-Paper-Scissors running example in Simon Thompson's Haskell: The Craft of Programming, Third Edition. Some kind of graphical display of the pictures is needed.
    6. Similar to Dr. Cunningham's "State Machine Model" case studies given as item 8 of the 2011 Scala version of this class. (These are Cunningham's versions of a running case study from Martin Fowler's book on Domain Specific Languages.)
    7. Similar to Dr. Cunningham's "Domain Specific Language for Surveys" case study given as item 2 of the 2011 Scala version of this class.
    8. Similar to the music examples in Paul Hudak's Haskell School of Music. (I have not looked at this book much.)
    9. Something similar that you suggest and get approval from Dr. Cunningham.
  2. Design appropriate tests for your program and test the program thoroughly.

  3. Document your program appropriately for use as a class case study.
  4. Submit the source code and documentation for your program and test driver, any needed instructions on how to run the program, and appropriate test output to Blackboard. Be sure to identify yourself in the materials turned in.
  5. Be prepared to make a 20-minute presentation of your project on the due date.


UP to CSci 658 assignments document?


Copyright © 2013, H. Conrad Cunningham
Last modified: Tue Oct 8 19:41:04 CDT 2013