Export Citations
Save this search
Please login to be able to save your searches and receive alerts for new content matching your search criteria.
- research-articleOctober 2024
Boosting the Performance of Alias-Aware IFDS Analysis with CFL-Based Environment Transformers
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 364, Pages 2633–2661https://doi.org/10.1145/3689804The IFDS algorithm is pivotal in solving field-sensitive data-flow problems. However, its conventional use of access paths for field sensitivity leads to the generation of a large number of data-flow facts. This causes scalability challenges in larger ...
- research-articleOctober 2024
The ART of Sharing Points-to Analysis: Reusing Points-to Analysis Results Safely and Efficiently
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 363, Pages 2606–2632https://doi.org/10.1145/3689803Data-flow analyses like points-to analysis can vastly improve the precision of other analyses, and enable powerful code optimizations. However, whole-program points-to analysis of large Java programs tends to be expensive – both in terms of time and ...
Dependency-Aware Code Naturalness
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 354, Pages 2355–2377https://doi.org/10.1145/3689794Code naturalness, which captures repetitiveness and predictability in programming languages, has proven valuable for various code-related tasks in software engineering. However, precisely measuring code naturalness remains a fundamental challenge. ...
Monotone Procedure Summarization via Vector Addition Systems and Inductive Potentials
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 337, Pages 1873–1899https://doi.org/10.1145/3689777This paper presents a technique for summarizing recursive procedures operating on integer variables. The motivation of our work is to create more predictable program analyzers, and in particular to formally guarantee compositionality and monotonicity of ...
HardTaint: Production-Run Dynamic Taint Analysis via Selective Hardware Tracing
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 328, Pages 1615–1640https://doi.org/10.1145/3689768Dynamic taint analysis (DTA), as a fundamental analysis technique, is widely used in security, privacy, and diagnosis, etc. As DTA demands to collect and analyze massive taint data online, it suffers extremely high runtime overhead. Over the past decades,...
-
- research-articleOctober 2024
Finding ∀∃ Hyperbugs using Symbolic Execution
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 321, Pages 1420–1445https://doi.org/10.1145/3689761Many important hyperproperties, such as refinement and generalized non-interference, fall into the class of ∀∃ hyperproperties and require, for each execution trace of a system, the existence of another trace relating to the first one in a certain way. ...
- research-articleOctober 2024
Quantitative Weakest Hyper Pre: Unifying Correctness and Incorrectness Hyperproperties via Predicate Transformers
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 300, Pages 817–845https://doi.org/10.1145/3689740We present a novel weakest pre calculus for reasoning about quantitative hyperproperties over nondeterministic and probabilistic programs. Whereas existing calculi allow reasoning about the expected value that a quantity assumes after program termination ...
Non-termination Proving at Scale
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 280, Pages 246–274https://doi.org/10.1145/3689720Program termination is a classic non-safety property whose falsification cannot in general be witnessed by a finite trace. This makes testing for non-termination challenging, and also a natural target for symbolic proof. Several works in the literature ...
- research-articleOctober 2024
Object-Oriented Fixpoint Programming with Datalog
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 273, Pages 60–86https://doi.org/10.1145/3689713Modern usages of Datalog exceed its original design purpose in scale and complexity. In particular, Datalog lacks abstractions for code organization and reuse, making programs hard to maintain. Is it possible to exploit abstractions and design patterns ...
A Dependent Nominal Physical Type System for Static Analysis of Memory in Low Level Code
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue OOPSLA2Article No.: 272, Pages 30–59https://doi.org/10.1145/3689712We tackle the problem of checking non-proof-carrying code, i.e. automatically proving type-safety (implying in our type system spatial memory safety) of low-level C code or of machine code resulting from its compilation without modification. This ...
Deriving with Derivatives: Optimizing Incremental Fixpoints for Higher-Order Flow Analysis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue ICFPArticle No.: 261, Pages 728–755https://doi.org/10.1145/3674650At the heart of efficient program analysis implementations are incremental solutions to fixpoint problems. These solutions can be interpreted as the derivative of the underlying analysis function. Methods that describe how to systematically derive higher-...
Equivalence and Similarity Refutation for Probabilistic Programs
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 232, Pages 2098–2122https://doi.org/10.1145/3656462We consider the problems of statically refuting equivalence and similarity of output distributions defined by a pair of probabilistic programs. Equivalence and similarity are two fundamental relational properties of probabilistic programs that are ...
V-Star: Learning Visibly Pushdown Grammars from Program Inputs
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 228, Pages 2003–2026https://doi.org/10.1145/3656458Accurate description of program inputs remains a critical challenge in the field of programming languages. Active learning, as a well-established field, achieves exact learning for regular languages. We offer an innovative grammar inference tool, V-Star, ...
Static Posterior Inference of Bayesian Probabilistic Programming via Polynomial Solving
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 202, Pages 1361–1386https://doi.org/10.1145/3656432In Bayesian probabilistic programming, a central problem is to estimate the normalised posterior distribution (NPD) of a probabilistic program with conditioning via score (a.k.a. observe) statements. Most previous approaches address this problem by ...
Reducing Static Analysis Unsoundness with Approximate Interpretation
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 194, Pages 1165–1188https://doi.org/10.1145/3656424Static program analysis for JavaScript is more difficult than for many other programming languages. One of the main reasons is the presence of dynamic property accesses that read and write object properties via dynamically computed property names. To ...
Daedalus: Safer Document Parsing
- Iavor S. Diatchki,
- Mike Dodds,
- Harrison Goldstein,
- Bill Harris,
- David A. Holland,
- Benoit Razet,
- Cole Schlesinger,
- Simon Winwood
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 180, Pages 816–840https://doi.org/10.1145/3656410Despite decades of contributions to the theoretical foundations of parsing and the many tools available to aid in parser development, many security attacks in the wild still exploit parsers. The issues are myriad—flaws in memory management in contexts ...
Quantitative Robustness for Vulnerability Assessment
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 177, Pages 741–765https://doi.org/10.1145/3656407Most software analysis techniques focus on bug reachability. However, this approach is not ideal for security evaluation as it does not take into account the difficulty of triggering said bugs. The recently introduced notion of robust reachability ...
- research-articleJune 2024
Falcon: A Fused Approach to Path-Sensitive Sparse Data Dependence Analysis
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 170, Pages 567–592https://doi.org/10.1145/3656400This paper presents a scalable path- and context-sensitive data dependence analysis. The key is to address the aliasing-path-explosion problem when enforcing a path-sensitive memory model. Specifically, our approach decomposes the computational efforts ...
Efficient Static Vulnerability Analysis for JavaScript with Multiversion Dependency Graphs
- Mafalda Ferreira,
- Miguel Monteiro,
- Tiago Brito,
- Miguel E. Coimbra,
- Nuno Santos,
- Limin Jia,
- José Fragoso Santos
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 164, Pages 417–441https://doi.org/10.1145/3656394While static analysis tools that rely on Code Property Graphs (CPGs) to detect security vulnerabilities have proven effective, deciding how much information to include in the graphs remains a challenge. Including less information can lead to a more ...
Compiling with Abstract Interpretation
Proceedings of the ACM on Programming Languages (PACMPL), Volume 8, Issue PLDIArticle No.: 162, Pages 368–393https://doi.org/10.1145/3656392Rewriting and static analyses are mutually beneficial techniques: program transformations change the intensional aspects of the program, and can thus improve analysis precision, while some efficient transformations are enabled by specific knowledge of ...