Notes on Cyclone Extended Static Checking. Greg Morrisett Harvard University. Static Extended Checking: SEX-C. Similar approach to ESC-M3/Java: Calculate a 1st-order predicate describing the machine state at each program point.
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
Run-time checks are inserted to ensure that s and d are not NULL and in bounds.
6 words passed in instead of 2.
This ought to have no run-time checksbeyond the assert.
No fat pointers or dynamic checks.
But caller must statically satisfy the pre-condition.
If caller can establish pre-condition, no check.
Otherwise, an implicit check is inserted.
Clearly, checks are a limited class of assertions.
SP[if (e) S1else S2]A=
SP[S1](A e0) SP[S2](A e=0)
Duplicate
result of 1st conditional
which duplicatesthe original
assertion.
SP[if (a) x:=3 elsex:= y;
if (b) x:=5 elseskip;]{x=e1 y=e2}B
{x=vy=e2}
b=0 v=t
b0 v=5
a0 t=3
B
a=0 t=e2
A 0 i < numelts(x)
where A describes the state of the machine at that program point.
0 i < numelts(p)?
ix from loop guard, but this isan unsigned comparison. That is,
we are comparing i against 0xffffffffwhich always succeeds.
http://cyclone.thelanguage.org