isla
isla copied to clipboard
[FEATURE] Language Extension: Higher-Order and External Functions
The ISLa 2.0 syntax should support higher-order functions such as num(<T> v; P(v))
and sum(<T> v; P(v); t(v))
, so that we can write
num(<byte> b; inside(b, <packet>)) < 40
instead of (in ISLa 1.x syntax)
exists int num_bytes: (count(<packet>, "<byte>", num_bytes) and num_bytes < 40)
Furthermore, "external" functions with user-specified semantics should be supported.
Adding these features supports removing the old semantic predicates and numeric quantifiers, both problematic ISLa 1.x syntax elements.