English
Related papers

Related papers: Abstracting Denotational Interpreters

200 papers

This paper describes a methodology for defining an executable abstract interpreter from a formal description of the semantics of a programming language. Our approach is based on Skeletal Semantics and an abstract interpretation of its…

Programming Languages · Computer Science 2023-09-15 Thomas Jensen , Vincent Rébiscoul , Alan Schmitt

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

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

We consider the problem of making expressive static analyzers interactive. Formal static analysis is seeing increasingly widespread adoption as a tool for verification and bug-finding, but even with powerful cloud infrastructure it can take…

Programming Languages · Computer Science 2021-04-08 Benno Stein , Bor-Yuh Evan Chang , Manu Sridharan

We present a general model allowing static analysis based on abstract interpretation for systems of communicating processes. Our technique, inspired by Regular Model Checking, represents set of program states as lattice automata and…

Software Engineering · Computer Science 2016-11-29 Vincent Botbol , Emmanuel Chailloux , Tristan Le Gall

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

Using a call-by-value functional language as an example, this article illustrates the use of coinductive definitions and proofs in big-step operational semantics, enabling it to describe diverging evaluations in addition to terminating…

Programming Languages · Computer Science 2008-08-06 Xavier Leroy , Hervé Grall

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

The use of formal analysis tools on models or source code often requires the availability of auxiliary invariants about the studied system. Abstract interpretation is currently one of the best approaches to discover useful invariants,…

Logic in Computer Science · Computer Science 2015-03-20 Pierre-Loïc Garoche , Temesghen Kahsai , Cesare Tinelli

Abstract interpretation techniques can be made more precise by distinguishing paths inside loops, at the expense of possibly exponential complexity. SMT-solving techniques and sparse representations of paths and sets of paths avoid this…

Programming Languages · Computer Science 2012-06-20 Julien Henry , David Monniaux , Matthieu Moy

We consider the problem of modularizing control flow in a generic abstract interpretation framework. A generic abstract interpretation framework is not truly flexible if it does not allow interpreting with different path- and…

Programming Languages · Computer Science 2026-02-19 Cade Lueker , Andrew Fox , Bor-Yuh Evan Chang

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

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

We design various logics for proving hyper properties of iterative programs by application of abstract interpretation principles. In part I, we design a generic, structural, fixpoint abstract interpreter parameterized by an algebraic…

Logic in Computer Science · Computer Science 2024-11-19 Patrick Cousot , Jeffery Wang

We introduce a denotational semantic framework for shared-memory concurrent programs in a C11-style memory model. This denotational approach is an alternative to techniques based on "execution graphs" and axiomatizations, and it allows for…

Programming Languages · Computer Science 2018-04-13 Ryan Kavanagh , Stephen Brookes

In this paper we show that reversible analysis of logic languages by abstract interpretation can be performed without loss of precision by systematically refining abstract domains. The idea is to include semantic structures into abstract…

Programming Languages · Computer Science 2007-05-23 R. Giacobazzi , F. Ranzato , F. Scozzari

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

Analyzing the behavior of a program running on a processor that supports speculative execution is crucial for applications such as execution time estimation and side channel detection. Unfortunately, existing static analysis techniques…

Programming Languages · Computer Science 2019-08-16 Meng Wu , Chao Wang

The SPARC TSO weak memory model is defined axiomatically, with a non-compositional formulation that makes modular reasoning about programs difficult. Our denotational approach uses pomsets to provide a compositional semantics capturing…

Programming Languages · Computer Science 2023-06-22 Ryan Kavanagh , Stephen Brookes

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
‹ Prev 1 2 3 10 Next ›