As source code dependencies are usually stored in some precompiled executable representation like bytecode, static analysis frameworks for high-level languages have to be specifically adapted so they can meaningfully analyze these libraries too. This adaptation is not trivial, since compilation is in general not injective, the semantics of low-level instruction sets are often not specified adequately, and — as these program representations usually do not support structured programming — the structure of the high-level sources, and the low-level target, is considerably different, like in the case of the functional Erlang programming language and its assembly-like BEAM bytecode. In this paper, we present a structuring algorithm capable of recovering the Erlang syntax tree of functional branching expressions compiled to BEAM, based on certain assumptions regarding the compilation also specified in this paper. This algorithm is intended as a component of a larger framework, that aims to enable the static analysis of Erlang source dependencies by representing the semantics of BEAM programs with an Erlang sytnax tree that can be readily loaded into a static analysis framework.
Fri 8 Sep Times are displayed in time zone: (GMT+01:00) Greenwich Mean Time : Belfast change
|14:00 - 14:25|
|14:25 - 14:50|