Define a Prolog syntax for your DSL using Prolog's infix
operators.
Load a representive sample of your DSL into Prolog with no syntax errors.
Generate a dependancy network on terms in your DSL using
graphviz
Display the above on web pages with hyper-links connecting where a term is defined and where is it used.
(Extra marks: if you can auto-generate a dot display that is a html-clickable map
that is inside a frame set such that if you click on part of the picture,
you get details on the clicked thing in another frame).
Assignment 2
Build a DSL interpreter.
Assignment 3
Build a DSL compiler.
Generate graphs benchmarking the compiler vs the interpreter.
Note, for extra marks,
build a generator of random programs in your DSL and show how the run times change as the program size grows
using the interpreter and the compiler.
Assignment 4
Use treatment learning to find controllers for a DSL.
Report on the language you have developed in an 8-page (or less) two-column
10 point Latex document using article.sty. Your report should include at least:
An introduction introducing DSLs and their costs and benefits.
A section describing the problem domain for your DSL.
A section describing your DSL language, with a BNF- and
with samples.
A section showing run times of programs in your DSL with the interpreter and the compiler.
A section describing future research- this will include your wish list of what the language can't do
now but might do in the future.
A section with references
Your report should stress what is different, interesting, exciting, and limiting about your DSL.
Like all good papers, it should have a thesis and a conclusion.