CSci 658-01: Software Language Engineering
Spring 2018 Assignment #2

H. Conrad Cunningham

8 March 2018

Revised Deadline Tuesday, 20 March, 2018, 11:59 p.m.

Original deadline Monday, 5 March, 2018, 11:59 p.m.

General Instructions

All homework and programming exercises must be prepared in accordance with the instructions given in the Syllabus. Each assignment must be submitted to your instructor by its stated deadline.

Assignment #2 Description

  1. Using an approved language (see below), redesign and implement one of the external Domain-Specific Language (DSL) parsing techniques for the State Machine DSL case study. You may use any techniques discussed in the Fowler DSL book or by your instructor. The DSL should work with your semantic model from Assignment #1.

    Discuss your choice of parser with the instructor. In some circumstances, you may choose an alternative approach.

  2. When complete, submit your source code, test DSL input, test program, etc. files to the course Blackboard site.

    Be sure to describe your DSL’s syntax and give instructions on how to build your program from the source code.

    Remember that the instructor prefers to compile and execute your solution on his MacOS systems. Make it easy for him!

  3. This is an individual assignment. Be sure to document what resources you used in constructing your solution.

  4. Do not use Java or Scala because there are readily available solutions in the course materials. You may use Python (preferably Python 3) or any other interesting language. Talk to your instructor if you have questions about the language choice.

  5. Alternative: If you chose an alternative to the State Machine in Assignment #1, you must use the same problem and language for this assignment and develop an external DSL for the problem.