scispace - formally typeset
Search or ask a question
Conference

Static Analysis Symposium 

About: Static Analysis Symposium is an academic conference. The conference publishes majorly in the area(s): Abstract interpretation & Program analysis. Over the lifetime, 1515 publications have been published by the conference receiving 28159 citations.


Papers
More filters
Book ChapterDOI
16 Jul 2001
TL;DR: In this paper, the authors use program dependence graphs and program slicing to find isomorphic PDG subgraphs that represent clones, which can be used to find non-contiguous clones (clones whose components do not occur as contiguous text in the program), and clones that are intertwined with each other.
Abstract: Programs often have a lot of duplicated code, which makes both understanding and maintenance more difficult This problem can be alleviated by detecting duplicated code, extracting it into a separate new procedure, and replacing all the clones (the instances of the duplicated code) by calls to the new procedure This paper describes the design and initial implementation of a tool that finds clones and displays them to the programmer The novel aspect of our approach is the use of program dependence graphs (PDGs) and program slicing to find isomorphic PDG subgraphs that represent clones The key benefits of this approach are that our tool can find non-contiguous clones (clones whose components do not occur as contiguous text in the program), clones in which matching statements have been reordered, and clones that are intertwined with each other Furthermore, the clones that are found are likely to be meaningful computations, and thus good candidates for extraction

572 citations

Proceedings ArticleDOI
11 Jun 2003
TL;DR: An operational semantics of a simple imperative language with structured parallelism is given and it is proved that the permission system enables parallelism to proceed with deterministic results.
Abstract: We describe a type system for checking interference using the concept of linear capabilities (which we call "permissions"). Our innovations include the concept of "fractional" permissions: reads can be permitted with fractional permissions whereas writes require complete permissions. This distinction expresses the fact that reads on the same state do not conflict with each other. One may give shared read access at one point while still retaining write permission afterwards. We give an operational semantics of a simple imperative language with structured parallelism and prove that the permission system enables parallelism to proceed with deterministic results.

486 citations

Proceedings ArticleDOI
11 Jun 2003
TL;DR: This work performs static analysis of Java programs to answer a simple question: which values may occur as results of string expressions?
Abstract: We perform static analysis of Java programs to answer a simple question: which values may occur as results of string expressions? The answers are summarized for each expression by a regular language that is guaranteed to contain all possible values. We present several applications of this analysis, including statically checking the syntax of dynamically generated expressions, such as SQL queries. Our analysis constructs flow graphs from class files and generates a context-free grammar with a nonterminal for each string expression. The language of this grammar is then widened into a regular language through a variant of an algorithm previously used for speech recognition. The collection of resulting regular languages is compactly represented as a special kind of multi-level automaton from which individual answers may be extracted. If a program error is detected, examples of invalid strings are automatically produced. We present extensive benchmarks demonstrating that the analysis is efficient and produces results of useful precision.

407 citations

Book ChapterDOI
12 Aug 2009
TL;DR: A static program analysis infrastructure that can infer detailed and sound type information for JavaScript programs using abstract interpretation is presented, designed to support the full language as defined in the ECMAScript standard, including its peculiar object model and all built-in functions.
Abstract: JavaScript is the main scripting language for Web browsers, and it is essential to modern Web applications. Programmers have started using it for writing complex applications, but there is still little tool support available during development. We present a static program analysis infrastructure that can infer detailed and sound type information for JavaScript programs using abstract interpretation. The analysis is designed to support the full language as defined in the ECMAScript standard, including its peculiar object model and all built-in functions. The analysis results can be used to detect common programming errors --- or rather, prove their absence, and for producing type information for program comprehension. Preliminary experiments conducted on real-life JavaScript code indicate that the approach is promising regarding analysis precision on small and medium size programs, which constitute the majority of JavaScript applications. With potential for further improvement, we propose the analysis as a foundation for building tools that can aid JavaScript programmers.

390 citations

Book ChapterDOI
07 Sep 2005
TL;DR: The termination insensitive secure information flow problem can be reduced to solving a safety problem via a simple program transformation, and this paper generalizes the self-compositional approach with a form of information downgrading recently proposed by Li and Zdancewic.
Abstract: The termination insensitive secure information flow problem can be reduced to solving a safety problem via a simple program transformation. Barthe, D'Argenio, and Rezk coined the term “self-composition” to describe this reduction. This paper generalizes the self-compositional approach with a form of information downgrading recently proposed by Li and Zdancewic. We also identify a problem with applying the self-compositional approach in practice, and we present a solution to this problem that makes use of more traditional type-based approaches. The result is a framework that combines the best of both worlds, i.e., better than traditional type-based approaches and better than the self-compositional approach.

312 citations

Performance
Metrics
No. of papers from the Conference in previous years
YearPapers
202188
202090
2019140
2018104
2017112
2016125