EECE 571F= Domain-Specific Languages  
This is a page from yet
another great ECE, UBC subject.
[ Home | Assignments | Lectures |
DSL rules | Articles | Resources ]


[Structure | Assignment 1 | Assignment 2 | Assignment 3 | Assignment 4 ]


Four assignments due Friday week 4,7, 10,and 13:

Assignment 1

  1. Define a Prolog syntax for your DSL using Prolog's infix operators.
  2. Load a representive sample of your DSL into Prolog with no syntax errors.
  3. Generate a dependancy network on terms in your DSL using graphviz
  4. 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

  1. Build a DSL interpreter.

Assignment 3

  1. Build a DSL compiler.
  2. 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

  1. Use treatment learning to find controllers for a DSL.
  2. 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.

Not © Tim Menzies, 2001
Share and enjoy- information wants to be free.
But if you take anything from this site,
please credit