English
Related papers

Related papers: Effective Analysis of C Programs by Rewriting Vari…

200 papers

Program verifiers are not exempt from the bugs that affect nearly every piece of software. In addition, they often exhibit brittle behavior: their performance changes considerably with details of how the input program is expressed-details…

Software Engineering · Computer Science 2018-05-10 Yu-Ting Chen , Carlo A. Furia

Implicit Computational Complexity (ICC) drives better understanding of complexity classes, but it also guides the development of resources-aware languages and static source code analyzers. Among the methods developed, the mwp-flow analysis…

Formal Languages and Automata Theory · Computer Science 2022-03-09 Clément Aubert , Thomas Rubiano , Neea Rusch , Thomas Seiller

Development of energy and performance-efficient embedded software is increasingly relying on application of complex transformations on the critical parts of the source code. Designers applying such nontrivial source code transformations are…

Logic in Computer Science · Computer Science 2011-11-09 K. C. Shashidhar , Maurice Bruynooghe , Francky Catthoor , Gerda Janssens

Memory safety violations in low-level code, written in languages like C, continues to remain one of the major sources of software vulnerabilities. One method of removing such violations by construction is to port C code to a safe C dialect.…

Software Engineering · Computer Science 2024-04-02 Nausheen Mohammed , Akash Lal , Aseem Rastogi , Subhajit Roy , Rahul Sharma

Identifying which software versions are affected by a vulnerability is critical for patching, risk mitigation. Despite a growing body of tools, their real-world effectiveness remains unclear due to narrow evaluation scopes often limited to…

Software Engineering · Computer Science 2025-09-10 Xingchu Chen , Chengwei Liu , Jialun Cao , Yang Xiao , Xinyue Cai , Yeting Li , Jingyi Shi , Tianqi Sun , Haiming Chen ang Wei Huo

Compared to the wide array of advanced Monte Carlo methods supported by modern probabilistic programming languages (PPLs), PPL support for variational inference (VI) is less developed: users are typically limited to a predefined selection…

Programming Languages · Computer Science 2024-06-25 McCoy R. Becker , Alexander K. Lew , Xiaoyan Wang , Matin Ghavami , Mathieu Huot , Martin C. Rinard , Vikash K. Mansinghka

A Variable Parameter (VP) analysis, that we introduce here, aims to give a precise algorithm time complexity expression in which an exponent appears solely in terms of a variable parameter. A variable parameter is the number of objects with…

Data Structures and Algorithms · Computer Science 2025-07-08 Nodari Vakhania

Programs that manipulate tree-shaped data structures often require complex, specialized proofs that are difficult to generalize and automate. This paper introduces a unified, foundational approach to verifying such programs. Central to our…

Programming Languages · Computer Science 2025-05-21 Marco Faella , Gennaro Parlato

A valid compiler optimisation transforms a block in a program without introducing new observable behaviours to the program as a whole. Deciding which optimisations are valid can be difficult, and depends closely on the semantic model of the…

Programming Languages · Computer Science 2018-02-19 Mike Dodds , Mark Batty , Alexey Gotsman

Writing correct programs for weak memory models such as the C11 memory model is challenging because of the weak consistency guarantees these models provide. The first program logics for the verification of such programs have recently been…

Programming Languages · Computer Science 2018-02-20 Alexander J. Summers , Peter Müller

Formally verified compilers and formally verified static analyzers are a solution to the problem that certain industries face when they have to demonstrate to authorities that the object code they run truly corresponds to its source code…

Logic in Computer Science · Computer Science 2024-07-12 David Monniaux

Concolic testing is a popular software verification technique based on a combination of concrete and symbolic execution. Its main focus is finding bugs and generating test cases with the aim of maximizing code coverage. A previous approach…

Logic in Computer Science · Computer Science 2020-09-23 Fred Mesnard , Etienne Payet , German Vidal

Many metainterpreters found in the logic programming literature are nondeterministic in the sense that the selection of program clauses is not determined. Examples are the familiar "demo" and "vanilla" metainterpreters. For some…

Logic in Computer Science · Computer Science 2007-05-23 David A. Rosenblueth

To put static program analysis at the fingertips of the software developer, we propose a framework for interactive abstract interpretation. While providing sound analysis results, abstract interpretation in general can be quite costly. To…

Programming Languages · Computer Science 2022-11-28 Julian Erhard , Simmo Saan , Sarah Tilscher , Michael Schwarz , Karoliine Holter , Vesal Vojdani , Helmut Seidl

Analyses of a software product line (SPL) typically report variable results that are annotated with logical expressions indicating the set of product variants for which the results hold. These expressions can get complicated and difficult…

Software Engineering · Computer Science 2023-11-01 Rafael F. Toledo , Joanne M. Atlee , Rui Ming Xiong

Complex software can be hard to read, adapt, and maintain. Refactoring it can create cleaner and self-explanatory code. Refactoring tools try to guide developers towards better code, with more quality. However, most of them take too long to…

Software Engineering · Computer Science 2023-07-21 Sara Fernandes , Ademar Aguiar , André Restivo

Software process lines provide a systematic approach to develop and manage software processes. It defines a reference process containing general process assets, whereas a well-defined customization approach allows process engineers to…

Software Engineering · Computer Science 2017-02-21 Marco Kuhrmann , Daniel Méndez Fernández , Thomas Ternité

When software evolves, opportunities for introducing faults appear. Therefore, it is important to test the evolved program behaviors during each evolution cycle. We conduct an exploratory study to investigate the properties of…

Software Engineering · Computer Science 2021-12-30 Milos Ojdanic , Ezekiel Soremekun , Renzo Degiovanni , Mike Papadakis , Yves Le Traon

Human reasoning involves recognising common underlying principles across many examples. The by-products of such reasoning are invariants that capture patterns such as "if someone went somewhere then they are there", expressed using…

Machine Learning · Computer Science 2020-10-27 Nuri Cingillioglu , Alessandra Russo

We apply program verification technology to the problem of specifying and verifying automatic differentiation (AD) algorithms. We focus on define-by-run, a style of AD where the program that must be differentiated is executed and monitored…

Logic in Computer Science · Computer Science 2024-02-14 Paulo Emílio de Vilhena , François Pottier