-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Given that DIF is an intermediate representation that DTrace currently uses and compilers will have to map their language into DIF, it would be useful to have a formal specification of DIF in Isabelle/HOL [1] or Coq [2] as a long term goal. This would allow for a clear specification of DIF without a reference implementation and would resolve potential ambiguity in the text.
Furthermore, writing it this way would allow for proofs about DIF to be constructed under certain agreed on assumptions (such as builtin variables returning an arbitrary value of a certain type, following pointers results in a valid memory location etc) various properties such as termination and certain types of safety. This also allows one to expose information from a concrete implementation of a DIF interpreter/JIT compiler and assert that it adheres to the specification (given that the assumptions hold). This would also make it easier to understand the implications of changes to DIF (such as addition of instructions or change of semantics).