English
Related papers

Related papers: Abstracting Abstract Control (Extended)

200 papers

Static program analysis is a valuable tool for any programming language that people write programs in. The prevalence of scripting languages in the world suggests programming language interpreters are relatively easy to write. Users of…

Programming Languages · Computer Science 2015-05-01 James Ian Johnson

Predictive models are fundamental to engineering reliable software systems. However, designing conservative, computable approximations for the behavior of programs (static analyses) remains a difficult and error-prone process for modern…

Programming Languages · Computer Science 2011-05-10 David Van Horn , Matthew Might

In the static analysis of functional programs, pushdown flow analysis and abstract garbage collection push the boundaries of what we can learn about programs statically. This work illuminates and poses solutions to theoretical and practical…

Programming Languages · Computer Science 2014-06-20 J. Ian Johnson , Ilya Sergey , Christopher Earl , Matthew Might , David Van Horn

The technique of abstracting abstract machines (AAM) provides a systematic approach for deriving computable approximations of evaluators that are easily proved sound. This article contributes a complementary step-by-step process for…

Programming Languages · Computer Science 2013-07-25 J. Ian Johnson , Nicholas Labich , Matthew Might , David Van Horn

We design a family of program analyses for JavaScript that make no approximation in matching calls with returns, exceptions with handlers, and breaks with labels. We do so by starting from an established reduction semantics for JavaScript…

Programming Languages · Computer Science 2011-12-21 David Van Horn , Matthew Might

We describe a derivational approach to abstract interpretation that yields novel and transparently sound static analyses when applied to well-established abstract machines. To demonstrate the technique and support our claim, we transform…

Programming Languages · Computer Science 2010-09-09 David Van Horn , Matthew Might

There is a vast gap in the quality of IDE tooling between static languages like Java and dynamic languages like Python or JavaScript. Modern frameworks and libraries in these languages heavily use their dynamic capabilities to achieve the…

Programming Languages · Computer Science 2024-02-01 Franciszek Piszcz

In the static analysis of functional programs, pushdown flow analysis and abstract garbage collection skirt just inside the boundaries of soundness and decidability. Alone, each method reduces analysis times and boosts precision by orders…

Programming Languages · Computer Science 2012-07-10 Christopher Earl , Ilya Sergey , Matthew Might , David Van Horn

Dynamic languages often employ reflection primitives to turn dynamically generated text into executable code at run-time. These features make standard static analysis extremely hard if not impossible because its essential data structures,…

Programming Languages · Computer Science 2017-02-09 Vincenzo Arceri , Mila Dalla Preda , Roberto Giacobazzi , Isabella Mastroeni

In this paper, our aim is to propose a model for code abstraction, based on abstract interpretation, allowing us to improve the precision of a recently proposed static analysis by abstract interpretation of dynamic languages. The problem we…

Software Engineering · Computer Science 2021-09-08 Isabella Mastroeni , Vincenzo Arceri

We describe a derivational approach to abstract interpretation that yields novel and transparently sound static analyses when applied to well-established abstract machines for higher-order and imperative programming languages. To…

Programming Languages · Computer Science 2011-07-19 David Van Horn , Matthew Might

Abstracting Gradual Typing (AGT) is a systematic approach to designing gradually-typed languages. Languages developed using AGT automatically satisfy the formal semantic criteria for gradual languages identified by Siek et al. [2015].…

Programming Languages · Computer Science 2020-11-13 Felipe Bañados Schwerter , Alison M. Clark , Khurram A. Jafery , Ronald Garcia

ion is one of the most promising approaches to improve the performance of problem solvers. In several domains abstraction by dropping sentences of a domain description -- as used in most hierarchical planners -- has proven useful. In this…

Artificial Intelligence · Computer Science 2009-09-25 R. Bergmann , W. Wilke

We propose a method for automatically generating abstract transformers for static analysis by abstract interpretation. The method focuses on linear constraints on programs operating on rational, real or floating-point variables and…

Programming Languages · Computer Science 2008-11-04 David Monniaux

In David Schmidt's PhD work he explored the use of denotational semantics as a programming language. It was part of an effort to not only treat formal semantics as specifications but also as interpreters and input to compiler generators.…

Programming Languages · Computer Science 2013-09-23 Mads Rosendahl

Variable sharing is a fundamental property in the static analysis of logic programs, since it is instrumental for ensuring correctness and increasing precision while inferring many useful program properties. Such properties include modes,…

Programming Languages · Computer Science 2025-01-22 Daniel Jurjo-Rivas , Jose F. Morales , Pedro López-García , Manuel V. Hermenegildo

In this functional pearl, we examine the use of definitional interpreters as a basis for abstract interpretation of higher-order programming languages. As it turns out, definitional interpreters, especially those written in monadic style,…

Programming Languages · Computer Science 2017-07-18 David Darais , Nicholas Labich , Phuc C. Nguyen , David Van Horn

Abstract machines for the strong evaluation of lambda-terms (that is, under abstractions) are a mostly neglected topic, despite their use in the implementation of proof assistants and higher-order logic programming languages. This paper…

Programming Languages · Computer Science 2016-03-18 Beniamino Accattoli , Pablo Barenbaum , Damiano Mazza

interpretation is a general methodology for building static analyses of programs. It was introduced by P. and R. Cousot in \cite{cc}. We present, in this paper, an application of a generic abstract interpretation to domain of…

Data Structures and Algorithms · Computer Science 2009-02-12 Kaninda Musumbu

We show that abstract interpretation-based static program analysis can be made efficient and precise enough to formally verify a class of properties for a family of large programs with few or no false alarms. This is achieved by refinement…

Programming Languages · Computer Science 2016-08-14 Bruno Blanchet , Patrick Cousot , Radhia Cousot , Jerôme Feret , Laurent Mauborgne , Antoine Miné , David Monniaux , Xavier Rival
‹ Prev 1 2 3 10 Next ›