This volume constitutes the proceedings of Program Analysis for Software Tools and Engineering (PASTE) 2008, held November 9--10, 2008 in Atlanta, Georgia, USA, co-located with SIGSOFT 2008 Symposium on Foundations of Software Engineering.
This year PASTE solicited both short (three-page) and long (six-page) papers. In both cases the length excluded the formal bibliography, which could be as long as necessary. Every paper received a minimum of four reviews, and many had five. Out of twenty-six submissions, we accepted thirteen. The program committee met by software and telephone.
The workshop was kicked off on the first day with an invited presentation by Tevfik Bultan on modularity, interfaces, and verification, and on the second day with an invited presentation by Somesh Jha on retrofitting legacy code for security.
Proceeding Downloads
Program analysis for compiler validation
Translation Validation is an approach of ensuring compilation correctness in which each compiler run is followed by a validation pass that proves that the target code produced by the compiler is a correct translation (implementation) of the source code. ...
Java memory model aware software validation
The Java Memory Model (JMM) provides a semantics of Java multithreading for any implementation platform. The JMM is defined in a declarative fashion with an allowed program execution being defined in terms of existence of "commit sequences" (roughly, ...
Elyze: enabling safe parallelism in event-driven servers
It is increasingly necessary for applications to take advantage of concurrency in order to increase performance. Unfortunately, it is notoriously difficult to write correct concurrent applications as they are subject to a variety of subtle bugs that can ...
A field study in static extraction of runtime architectures
We recently developed a static analysis to extract runtime architectures from object-oriented programs written in existing languages. The approach relies on adding ownership domain annotations to the code, and statically extracts a hierarchical runtime ...
Specification mining of symbolic scenario-based models
Many dynamic analysis approaches to specification mining, which extract behavioral models from execution traces, do not consider object identities. This limits their power when used to analyze traces of general object oriented programs. In this work we ...
A non-null annotation inferencer for Java bytecode
We present a non-null annotations inferencer for the Java bytecode language. We previously proposed an analysis to infer non-null annotations and proved it soundness and completeness with respect to a state of the art type system. This paper proposes ...
Sharing analysis of arrays, collections, and recursive structures
Precise modeling of the program heap is fundamental for understanding the behavior of a program, and is thus of significant interest for many optimization applications. One of the fundamental properties of the heap that can be used in a range of ...
Static analysis for inference of explicit information flow
This paper proposes a new static analysis for inference of explicit information flow. The analysis is context-sensitive, cubic, and works both on complete programs and software components. We perform experiments on several Java components which show ...
Path projection for user-centered static analysis tools
The research and industrial communities have made great strides in developing sophisticated defect detection tools based on static analysis. To date most of the work in this area has focused on developing novel static analysis algorithms, but has ...
Addressing common crosscutting problems with Arcum
Crosscutting is an inherent part of software development and can typically be managed through modularization: A module's stable properties are defined in an interface while its likely-to-change properties are encapsulated within the module [19]. The ...
XFindBugs: eXtended FindBugs for AspectJ
Aspect-oriented software development (AOSD) is gaining popularity with the wider adoption of languages such as AspectJ. However, though the state-of-the-art aspect-oriented programming environment (such as AJDT in the Eclipse IDE) provides powerful ...
Effective identification of failure-inducing changes: a hybrid approach
When regression tests fail unexpectedly after a long session of editing, it may be tedious for programmers to find out the failure-inducing changes by manually inspecting all code edits. To eliminate the expensive effort spent on debugging, we present a ...
Towards a more efficient static software change impact analysis method
Impact analysis methods are commonly employed to reduce the likelihood of encountering faulty or unexpected behavior from a software program as a result of developers' oblivious modifications. In this paper, we propose a static impact analysis technique ...