Problem Set 7
Purpose This problem set has two distinct goals. First, you will work on a comparison of a program with a model. Second, you will do a proof of type soundness.
Problem 1 The solutions to the first six problem sets constitute both an implementation of DADL as well as a model. You are now in a position to compare the two to find out whether they are in sync.
cmp.bash, a Unix bash script that compares the two for more than a dozen test files located in a local Tests/ directory;
3.rkt and 3-parser.rkt, the Racket solution to Problem Set 3, including an XML-to-S-expression (term) parser;
6.rkt, my Redex solution to Problem Set 6;
7-script.rkt, a Racket file that turns a Redex solution into a Unix script.
$ ./cmp.bash ./3.rkt ./7-script.rkt |
When the comparison process discovers a discrepancy between your implementation and your model, investigate and fix either the implementation or the model to eliminate the discrepancy. Then describe the discrepancy in a paragraph of at most 30 words in your README file. You may add a five-line sample XML configuration to a paragraph if you wish to illustrate your point.
Problem 2 First, read Chapters 8 and 9 of Types and Programming Languages (TAPL). Make sure you understand the details of proving type soundness for Arith and STLC via progress and preservation.
Next, see here. Solutions to this problem should be submitted on paper at my office by 1pm on March 20th.
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—
To grade problem 1, I will use your solutions to Problem Set 3 and Problem Set 6 as turned it with the latter. This gives me a chance to check on the discrepancies you discovered or those that you didn’t discover.
;; NameOfPartner1, NameOfPartner2 |
;; email@of.partner1.com, email@of.partner2.org |