Problem Set 3
Purpose The goal of this problem set is to demonstrate additional competence in programming. In addition, the problem set requires some first Redex modeling skills.

Problem 1 Fix your memo from problem set 1 in response to the editorial criticism.
Problem 2 Develop a Redex model of DADL’s grammar.
Design the metafunction traverse, which mimics a traversal of a DADL specification. See problem set 1 for a specification of a traversal.
Problem 3 Most programming languages, including DSLs, impose conditions on programs that go beyond those of the context-free grammars. Checking these conditions is often called type checking, even if the properties checked do not look like regular types.
- all rooms have unique names 
- no room specifies an exit to itself 
- no room specifies two exits in the same direction going to the same room 
- the player’s location specifies an actual room 
- the rooms are properly connected to each other, that is, if room x specifies a south-bound door to room y, the latter room must come with a north-bound door going to x. 
| <configuration name="matthias" at="living-room"> | 
| <room name="living" description="piano"> | 
| <exit direction="east" to="sitting" /> | 
| </room> | 
| <room name="master" description="bed"> | 
| <exit direction="east" to="master" /> | 
| <exit direction="west" to="master" /> | 
| </room> | 
| <room name="sitting" description="piano"> | 
| <exit direction="east" to="dining" /> | 
| <exit direction="north" to="living" /> | 
| <exit direction="east" to="dining" /> | 
| </room> | 
| <room name="dining" description="piano"> | 
| <exit direction="west" to="sitting" /> | 
| </room> | 
| <room name="living" description="pillows"> | 
| <exit direction="south" to="kitchen" /> | 
| </room> | 
| </configuration> | 
| type error! | 
Deliverable Email a tar.gz bundle to my CCS email address whose name
combines the last names of the pair in alphabetical order. The tar bundle
must contain a single directory—
| ;; NameOfPartner1, NameOfPartner2 | 
| ;; email@of.partner1.com, email@of.partner2.org | 
| $ ./3.xyz < 3-example1.xml | diff - 3-output1.txt | 
