English
Related papers

Related papers: Abstract Interpretation as a Programming Language

200 papers

Abstraction is a fundamental tool for reasoning about complex systems. Program abstraction has been utilized to great effect for analyzing deterministic programs. At the heart of program abstraction is the relationship between a concrete…

Artificial Intelligence · Computer Science 2017-07-17 Steven Holtzen , Todd Millstein , Guy Van den Broeck

The strength of a dynamic language is also its weakness: run-time flexibility comes at the cost of compile-time predictability. Many of the hallmarks of dynamic languages such as closures, continuations, various forms of reflection, and a…

Programming Languages · Computer Science 2014-08-18 J. Ian Johnson , David Van Horn

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

The idea of using unfolding as a way of computing a program semantics has been applied successfully to logic programs and has shown itself a powerful tool that provides concrete, implementable results, as its outcome is actually source…

Programming Languages · Computer Science 2017-08-29 José María Rey-Poza , Julio Mariño-Carballo

Approximations during program analysis are a necessary evil, as they ensure essential properties, such as soundness and termination of the analysis, but they also imply not always producing useful results. Automatic techniques have been…

Programming Languages · Computer Science 2018-12-18 Isabel Garcia-Contreras , Jose F. Morales , Manuel V. Hermenegildo

The relationship between abstract interpretation and partial deduction has received considerable attention and (partial) integrations have been proposed starting from both the partial deduction and abstract interpretation perspectives. In…

Programming Languages · Computer Science 2007-05-23 German Puebla , Elvira Albert , Manuel Hermenegildo

Training semantic parsers from weak supervision (denotations) rather than strong supervision (programs) complicates training in two ways. First, a large search space of potential programs needs to be explored at training time to find a…

Computation and Language · Computer Science 2019-03-14 Omer Goldman , Veronica Latcinnik , Udi Naveh , Amir Globerson , Jonathan Berant

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

Abstract interpretation is a well-established technique for performing static analyses of logic programs. However, choosing the abstract domain, widening, fixpoint, etc. that provides the best precision-cost trade-off remains an open…

Programming Languages · Computer Science 2019-08-01 Ignacio Casso , Jose F. Morales , Pedro Lopez-Garcia , Manuel V. Hermenegildo

Categorical semantics of type theories are often characterized as structure-preserving functors. This is because in category theory both the syntax and the domain of interpretation are uniformly treated as structured categories, so that we…

Programming Languages · Computer Science 2024-02-14 Shin-ya Katsumata , Xavier Rival , Jérémy Dubut

Type analyses of logic programs which aim at inferring the types of the program being analyzed are presented in a unified abstract interpretation-based framework. This covers most classical abstract interpretation-based type analyzers for…

Software Engineering · Computer Science 2009-09-29 Claudio Vaucheret , Francisco Bueno

Static program analysis by abstract interpretation is an efficient method to determine properties of embedded software. One example is value analysis, which determines the values stored in the processor registers. Its results are used as…

Logic in Computer Science · Computer Science 2011-11-09 Reinhold Heckmann , Christian Ferdinand

Developing suitable formal semantics can be of great help in the understanding, design and implementation of a programming language, and act as a guide for software development tools like analyzers or partial evaluators. In this sense, full…

Logic in Computer Science · Computer Science 2010-02-16 F. J. López-Fraguas , J. Rodríguez-Hortalá

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

Abstract dialectical frameworks (ADFs) have been introduced as a formalism for modeling and evaluating argumentation allowing general logical satisfaction conditions. Different criteria used to settle the acceptance of arguments are called…

Artificial Intelligence · Computer Science 2020-12-14 Atefeh Keshavarzi Zafarghandi , Rineke Verbrugge , Bart Verheij

For deterministic and probabilistic programs we investigate the problem of program synthesis and program optimisation (with respect to non-functional properties) in the general setting of global optimisation. This approach is based on the…

Programming Languages · Computer Science 2014-07-22 Herbert Wiklicky

A standard informal method for analyzing the asymptotic complexity of a program is to extract a recurrence that describes its cost in terms of the size of its input, and then to compute a closed-form upper bound on that recurrence. We give…

Programming Languages · Computer Science 2022-08-09 Norman Danner , Daniel R. Licata

It was previously shown that control-flow refinement can be achieved by a program specializer incorporating property-based abstraction, to improve termination and complexity analysis tools. We now show that this purpose-built specializer…

Programming Languages · Computer Science 2020-08-10 John P. Gallagher , Robert Glück

Abstract interpretation is a method to automatically find invariants of programs or pieces of code whose semantics is given via least fixed-points. Up-to techniques have been introduced as enhancements of coinduction, an abstract principle…

Logic in Computer Science · Computer Science 2018-05-03 Filippo Bonchi , Pierre Ganty , Roberto Giacobazzi , Dusko Pavlovic

Call a semantics for a language with variables absolute when variables map to fixed entities in the denotation. That is, a semantics is absolute when the denotation of a variable a is a copy of itself in the denotation. We give a trio of…

Logic in Computer Science · Computer Science 2026-04-20 Murdoch J. Gabbay