See INSTALL.md for installation instructions.
Something in detail about K framework and C semantics is on http://www.kframework.org/ .
KupC embeds an extension of KCC as a component working with other five additional components. We extend KCC by introducing other new preserved words to point out the update point and the transaction range. The keyword indicates a possible place in program where updating can take effect and the lexical scope where maintains the version consistency. The extension of KCC is capable of compiling an updatable C program to the code executable on K Framework.
Once kcc
has been run on C source files, it should produce an executable
script (a.out
by default).
Running UPSEARCH=1 ./a.out
will exhaustively search the state space resulting
from considering all possible expression sequencings (as allowed by the
standard).
This is the only way to check all possible evaluation orders of a program to
find undefined behavior.
We also support LTL model checking of the possible executions resulting from considering different expression sequencings. When execute the script generated by the command "kcc" with the option "LTLMC=1", the KupC will search and print all possible computation path about the non-deterministic of the update occurence.
The examples about the State Space Search and LTL Model Checking can be viewed in examples.
The demo video is available at https://pan.baidu.com/s/1MPASGh4jPHWKeBvag3foUg password:628g or https://youtu.be/ijTOMLd6z1s