Alive2: bounded translation validation for LLVM
We designed, implemented, and deployed Alive2: a bounded translation validation tool for
the LLVM compiler's intermediate representation (IR). It limits resource consumption by, for …
the LLVM compiler's intermediate representation (IR). It limits resource consumption by, for …
Automatic inference of search patterns for taint-style vulnerabilities
Taint-style vulnerabilities are a persistent problem in software development, as the recently
discovered" Heart bleed" vulnerability strikingly illustrates. In this class of vulnerabilities …
discovered" Heart bleed" vulnerability strikingly illustrates. In this class of vulnerabilities …
AStitch: enabling a new multi-dimensional optimization space for memory-intensive ML training and inference on modern SIMT architectures
This work reveals that memory-intensive computation is a rising performance-critical factor in
recent machine learning models. Due to a unique set of new challenges, existing ML …
recent machine learning models. Due to a unique set of new challenges, existing ML …
Debugging reinvented: asking and answering why and why not questions about program behavior
When software developers want to understand the reason for a program's behavior, they
must translate their questions about the behavior into a series of questions about code …
must translate their questions about the behavior into a series of questions about code …
Fault localization via efficient probabilistic modeling of program semantics
Testing-based fault localization has been a significant topic in software engineering in the
past decades. It localizes a faulty program element based on a set of passing and failing test …
past decades. It localizes a faulty program element based on a set of passing and failing test …
Fuzzing embedded systems using debug interfaces
Fuzzing embedded systems is hard. Their key components–microcontrollers–are highly
diverse and cannot be easily virtualized; their software may not be changed or instrumented …
diverse and cannot be easily virtualized; their software may not be changed or instrumented …
Fine-grained information flow analysis and enforcement in a java virtual machine
D Chandra, M Franz - Twenty-Third Annual Computer Security …, 2007 - ieeexplore.ieee.org
We have implemented an information flow framework for the Java virtual machine that
combines static and dynamic techniques to capture not only explicit flows, but also implicit …
combines static and dynamic techniques to capture not only explicit flows, but also implicit …
From bytecode to JavaScript: the Js_of_ocaml compiler
We present the design and implementation of a compiler from OCaml bytecode to
JavaScript. The compiler first translates the bytecode into a static single‐assignment …
JavaScript. The compiler first translates the bytecode into a static single‐assignment …
A new algorithm for identifying loops in decompilation
Loop identification is an essential step of control flow analysis in decompilation. The
Classical algorithm for identifying loops is Tarjan's interval-finding algorithm, which is …
Classical algorithm for identifying loops is Tarjan's interval-finding algorithm, which is …
Task-specific visual cues for improving process model understanding
Context Business process models support various stakeholders in managing business
processes and designing process-aware information systems. In order to make effective use …
processes and designing process-aware information systems. In order to make effective use …