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

Questions? Send mail or post to the bboard.


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.

[ Home | Schedule | Assignments | Software | Resources ]