GDSL: a universal toolkit for giving semantics to machine language. The static analysis of executable programs has gained importance due to the need to audit larger and larger programs for security vulnerabilities or safety violations. The basis for analyzing executables is the decoding of byte sequences into assembler instructions and giving a semantics to them. We illustrate how our domain specific language GDSL facilitates this task by specifying Intel x86 semantics. In particular, we show how simple optimizations of the generated code can drastically reduce its size. Since these optimizations are also written in GDSL they can be re-used with other processor front-ends. Hence, analyses based on our toolkit can be adapted to several architectures with little change.

This software is also peer reviewed by journal TOMS.