« iTunes + OS X < iTunes + XP | Main | Eliminating wordiness »

January 08, 2004

collapsing states

[Model Checking Programs by Willem Visser] Its a very interesting paper from a conference in 2000 (its the 9th entry on the page above). I am most interested in state collapsing.

"The philosophy behind the collapsing scheme is that although many states can be visited by a program the underlying components of many of these states will be the same." (page 4, second column). An example is given for collapsing the rest of a state except the stack frame for a method invocation due to a local variable update.

In our context, the problem is where to draw the boundaries for the "components" in our memory structure.


collapsing-memory.gif


So I've got just the data segment, code segment and stack collapsed in my little drawing above. The JPF apparently uses components of the program itself. So we'd get into the call stack, variable locations etc and collapse to a finer level of detail. I doesn't make sense to store the ROM, since its, well, read only. I doesn't make sense to collapse the register set or the program counter or the stack pointer. Since they change so often. But it might make sense to collapse the register set. I think empty memory can be collapsed too. Our components are going to be defined at the OS level. So that means we'll know where the data and code segments are, but we won't see into the structure of either of those segments.

See also "State Compression in Spin" by G. Holzmann in SPIN 1997

Posted by jones at January 8, 2004 02:10 PM

Comments

Post a comment

Thanks for signing in, . Now you can comment. (sign out)

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)


Remember me?