English
Related papers

Related papers: Permission Inference for Array Programs

200 papers

Verifying fine-grained optimistic concurrent programs remains an open problem. Modern program logics provide abstraction mechanisms and compositional reasoning principles to deal with the inherent complexity. However, their use is mostly…

Programming Languages · Computer Science 2022-11-14 Roland Meyer , Thomas Wies , Sebastian Wolff

Arrays are commonly used in a variety of software to store and process data in loops. Automatically proving safety properties of such programs that manipulate arrays is challenging. We present a novel verification technique, called…

Programming Languages · Computer Science 2022-09-27 Supratik Chakraborty , Ashutosh Gupta , Divyesh Unadkat

Program behavior may depend on parameters, which are either configured before compilation time, or provided at run-time, e.g., by sensors or other input devices. Parametric program analysis explores how different parameter settings may…

Programming Languages · Computer Science 2014-06-23 Thomas M. Gawlitza , Martin D. Schwarz , Helmut Seidl

We present a static analysis technique for non-termination inference of logic programs. Our framework relies on an extension of the subsumption test, where some specific argument positions can be instantiated while others are generalized.…

Programming Languages · Computer Science 2007-05-23 Etienne Payet , Fred Mesnard

In modern runtime systems, memory layout calculations are hand-coded in systems languages. Primitives in these languages are not powerful enough to describe a rich set of layouts, leading to reliance on ad-hoc macros, numerous interrelated…

Programming Languages · Computer Science 2019-09-13 Karl Cronburg , Samuel Z. Guyer

Given a graphical model, one essential problem is MAP inference, that is, finding the most likely configuration of states according to the model. Although this problem is NP-hard, large instances can be solved in practice. A major open…

Machine Learning · Statistics 2017-03-09 Erik M. Lindgren , Alexandros G. Dimakis , Adam Klivans

Execution graphs of parallel loop programs exhibit a nested, repeating structure. We show how such graphs that are the result of nested repetition can be represented by succinct parametric structures. This parametric graph template…

Data Structures and Algorithms · Computer Science 2023-07-18 Tal Ben-Nun , Lukas Gianinazzi , Torsten Hoefler , Yishai Oltchik

We present a technique to infer lower bounds on the worst-case runtime complexity of integer programs, where in contrast to earlier work, our approach is not restricted to tail-recursion. Our technique constructs symbolic representations of…

Logic in Computer Science · Computer Science 2020-09-29 Florian Frohn , Matthias Naaf , Marc Brockschmidt , Jürgen Giesl

The problem of detecting of information and logically independent (DILD) steps in programs is a key for equivalent program transformations. Here we are considering the problem of independence of loop iterations, the concentration of massive…

Programming Languages · Computer Science 2008-11-03 R. Nuriyev

The adoption of high-performance multi-core platforms in avionics and automotive systems introduces significant challenges in ensuring predictable execution, primarily due to shared resource interferences. Many existing approaches study…

Distributed, Parallel, and Cluster Computing · Computer Science 2026-04-14 Mohamed Amine Khelassi , Felix Suchert , Abderaouf Amalou , Benjamin Lesage , Anika Christmann , Robin Hapka , Jeronimo Castrillon , Mihail Asavoae , Mathieu Jan , Claire Pagetti , Selma Saidi

Cooperation between verification methods is crucial to tackle the challenging problem of software verification. The paper focuses on the verification of C programs using pointers and it formalizes a cooperation between static analyzers…

Programming Languages · Computer Science 2018-12-03 Bouillaguet Quentin , Bobot François , Sighireanu Mihaela , Yakobowski Boris

Avoiding access conflicts is a major challenge in the design of multi-threaded programs. In the context of real-time systems, the absence of conflicts can be guaranteed by ensuring that no two potentially conflicting accesses are ever…

Programming Languages · Computer Science 2014-12-03 Jingshu Chen , Marie Duflot , Stephan Merz

Analyzing array-based computations to determine data dependences is useful for many applications including automatic parallelization, race detection, computation and communication overlap, verification, and shape analysis. For sparse matrix…

Symbolic execution is a software verification technique symbolically running programs and thereby checking for bugs. Ranged symbolic execution performs symbolic execution on program parts, so called path ranges, in parallel. Due to the…

Software Engineering · Computer Science 2024-06-28 Jan Haltermanna , Marie-Christine Jakobs , Cedric Richter , Heike Wehrheim

We present a novel characterization of the mapping of multiple parallelism forms (e.g. data and model parallelism) onto hierarchical accelerator systems that is hierarchy-aware and greatly reduces the space of software-to-hardware mapping.…

Programming Languages · Computer Science 2021-11-17 Ningning Xie , Tamara Norman , Dominik Grewe , Dimitrios Vytiniotis

We describe a novel approach to monitoring high level behaviors using concepts from AI planning. Our goal is to understand what a program is doing based on its system call trace. This ability is particularly important for detecting malware.…

Artificial Intelligence · Computer Science 2017-09-12 Alexandre Cukier , Ronen I. Brafman , Yotam Perkal , David Tolpin

The array is a data structure used in a wide range of programs. Its compact storage and constant time random access makes it highly efficient, but arbitrary indexing complicates the analysis of code containing array accesses. Such analyses…

Programming Languages · Computer Science 2024-03-06 Beatrice Åkerblom , Elias Castegren

Production software oftentimes suffers from the issue of performance inefficiencies caused by inappropriate use of data structures, programming abstractions, and conservative compiler optimizations. It is desirable to avoid unnecessary…

Machine Learning · Computer Science 2020-11-20 Yixin Guo , Pengcheng Li , Yingwei Luo , Xiaolin Wang , Zhenlin Wang

Explicit signaling between threads is a perennial cause of bugs in concurrent programs. While there are several run-time techniques to automatically notify threads upon the availability of some shared resource, such techniques are not…

Programming Languages · Computer Science 2018-04-10 Kostas Ferles , Jacob Van Geffen , Isil Dillig , Yannis Smaragdakis

A resource leak occurs when a program fails to free some finite resource after it is no longer needed. Such leaks are a significant cause of real-world crashes and performance problems. Recent work proposed an approach to prevent resource…

Software Engineering · Computer Science 2023-09-25 Narges Shadab , Pritam Gharat , Shrey Tiwari , Michael D. Ernst , Martin Kellogg , Shuvendu Lahiri , Akash Lal , Manu Sridharan