Skip to content

Formal specification of DIF #23

@dstolfa

Description

@dstolfa

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).

[1] http://isabelle.in.tum.de
[2] https://coq.inria.fr

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions