The Spec# programming system: An overview
M Barnett, KRM Leino, W Schulte - … on Construction and Analysis of Safe …, 2004 - Springer
The Spec# programming system is a new attempt at a more cost effective way to develop
and maintain high-quality software. This paper describes the goals and architecture of the …
and maintain high-quality software. This paper describes the goals and architecture of the …
LLVM: A compilation framework for lifelong program analysis & transformation
C Lattner, V Adve - … on code generation and optimization, 2004 …, 2004 - ieeexplore.ieee.org
We describe LLVM (low level virtual machine), a compiler framework designed to support
transparent, lifelong program analysis and transformation for arbitrary programs, by …
transparent, lifelong program analysis and transformation for arbitrary programs, by …
TinyOS: An operating system for sensor networks
We present TinyOS, a flexible, application-specific operating system for sensor networks,
which form a core component of ambient intelligence systems. Sensor networks consist of …
which form a core component of ambient intelligence systems. Sensor networks consist of …
The nesC language: A holistic approach to networked embedded systems
We present nesC, a programming language for networked embedded systems that
represent a new design space for application developers. An example of a networked …
represent a new design space for application developers. An example of a networked …
EXE: Automatically generating inputs of death
This article presents EXE, an effective bug-finding tool that automatically generates inputs
that crash real code. Instead of running code on manually or randomly constructed input …
that crash real code. Instead of running code on manually or randomly constructed input …
Extended static checking for Java
Software development and maintenance are costly endeavors. The cost can be reduced if
more software defects are detected earlier in the development cycle. This paper introduces …
more software defects are detected earlier in the development cycle. This paper introduces …
RustBelt: Securing the foundations of the Rust programming language
Rust is a new systems programming language that promises to overcome the seemingly
fundamental tradeoff between high-level safety guarantees and low-level control over …
fundamental tradeoff between high-level safety guarantees and low-level control over …
Bugs as deviant behavior: A general approach to inferring errors in systems code
A major obstacle to finding program errors in a real system is knowing what correctness
rules the system must obey. These rules are often undocumented or specified in an ad hoc …
rules the system must obey. These rules are often undocumented or specified in an ad hoc …
Mining specifications
Program verification is a promising approach to improving program quality, because it can
search all possible program executions for specific errors. However, the need to formally …
search all possible program executions for specific errors. However, the need to formally …
Automatic predicate abstraction of C programs
Model checking has been widely successful in validating and debugging designs in the
hardware and protocol domains. However, state-space explosion limits the applicability of …
hardware and protocol domains. However, state-space explosion limits the applicability of …