# 15-312 Foundations of Programming Languages Assignment 6: Storage Management

Questions? Send mail or post to the bboard.

## Corrections

The revised starting code (Zip) contains one correction to gc.sml and one modification to memory.sml
• There is a typo in line 126 of gc.sml.
• In order to allow you to properly complete Task 3 of the assignment, I have extended the signature (and its implementation) found in memory.sml. In particular, I have renamed the function that clears all of memory and added a function that clears one specific cell.

All other code files in the distribution remain the same. You may download a new archive or a patch.

The revised handout incorporates two corrections to the original.
• At the top of page 5 there are two inference rules. The rule on the right was missing the text "U FLSV(v)" as it appears below and in the updated handout.
   (H, FLS(k) U FLE(E) U FLSV(v), 0) |--g*> (H'', 0, H')
-----------------------------------------------------
H | k | E < v |--a-> H' | k | E < v

• In order to maintain the invariants I've designed for the incremental collector in Task 7, you will need to implement a slight variation of the Copy rule as shown below and in the (second) revised handout.
                        l \not \in dom(H_t)
------------------------------------------------------------------- Copy'
(H_f[l=V],S U {l},H_t) |--g-> (H_f[l=V],S U FLLV(V),H_t[l=V])

Both revisions are noted in footnotes in the new handout.