English
Related papers

Related papers: Sound Static Deadlock Analysis for C/Pthreads (Ext…

200 papers

We consider the broad problem of analyzing safety properties of asynchronous concurrent programs under arbitrary thread interleavings. Delay-bounded deterministic scheduling, introduced in prior work, is an efficient bug-finding technique…

Programming Languages · Computer Science 2021-05-18 Andrew Johnson , Thomas Wahl

Static analyses make the increasingly tenuous assumption that all source code is available for analysis; for example, large libraries often call into native code that cannot be analyzed. We propose a points-to analysis that initially makes…

Programming Languages · Computer Science 2017-11-10 Osbert Bastani , Lazaro Clapp , Saswat Anand , Rahul Sharma , Alex Aiken

Scalable formal verification constitutes an important challenge for the design of asynchronous circuits. Deadlock freedom is a property that is desired but hard to verify. It is an emergent property that has to be verified monolithically.…

Logic in Computer Science · Computer Science 2013-05-01 Freek Verbeek , Julien Schmaltz

Monotonicity in concurrent systems stipulates that, in any global state, extant system actions remain executable when new processes are added to the state. This concept is not only natural and common in multi-threaded software, but also…

Programming Languages · Computer Science 2014-06-26 Alexander Kaiser , Daniel Kroening , Thomas Wahl

Dynamically typed languages such as Python have become very popular. Among other strengths, Python's dynamic nature and its straightforward linking to native code have made it the de-facto language for many research areas such as Artificial…

Programming Languages · Computer Science 2023-01-13 Wenting Zhao , Ibrahim Abdelaziz , Julian Dolby , Kavitha Srinivas , Mossad Helali , Essam Mansour

Many logic programming languages have delay primitives which allow coroutining. This introduces a class of bug symptoms -- computations can flounder when they are intended to succeed or finitely fail. For concurrent logic programs this is…

Programming Languages · Computer Science 2007-11-06 Lee Naish

This paper presents a technique for deadlock detection of Java programs. The technique uses typing rules for extracting infinite-state abstract models of the dependencies among the components of the Java intermediate language -- the Java…

Programming Languages · Computer Science 2017-09-14 Abel Garcia , Cosimo Laneve

Concurrent separation logic (CSL) is a specification logic for concurrent imperative programs with shared memory and locks. In this paper, we develop a concurrent and interactive account of the logic inspired by asynchronous game semantics.…

Programming Languages · Computer Science 2018-07-24 Paul-André Melliès , Léo Stefanesco

Locks have been widely used as an effective synchronization mechanism among processes and threads. However, we observe that a large number of false inter-thread dependencies (i.e., unnecessary lock contentions) exist during the program…

Programming Languages · Computer Science 2015-04-22 Long Zheng , Xiaofei Liao , Bingsheng He , Song Wu , Hai Jin

Proving program termination is key to guaranteeing absence of undesirable behaviour, such as hanging programs and even security vulnerabilities such as denial-of-service attacks. To make termination checks scale to large systems,…

Software Engineering · Computer Science 2015-05-19 Hong-Yi Chen , Cristina David , Daniel Kroening , Peter Schrammel , Björn Wachter

Negotiation diagrams are a model of concurrent computation akin to workflow Petri nets. Deterministic negotiation diagrams, equivalent to the much studied and used free-choice workflow Petri nets, are surprisingly amenable to verification.…

Logic in Computer Science · Computer Science 2017-04-14 Javier Esparza , Anca Muscholl , Igor Walukiewicz

Efficient code retrieval is critical for developer productivity, yet existing benchmarks largely focus on Python and rarely stress-test robustness beyond superficial lexical cues. To address the gap, we introduce an automated pipeline for…

Software Engineering · Computer Science 2026-03-06 Kaicheng Wang , Liyan Huang , Weike Fang , Weihang Wang

The verification of reductions, representative subsets of interleavings, simplifies correctness proofs of parameterized concurrent programs. We introduce an expressive class of syntactic reductions, which we call natural reductions. Natural…

Programming Languages · Computer Science 2026-05-14 Constantin Enea , Azadeh Farzan , Dominik Klumpp

Programmers often add meaningful information about program semantics when naming program entities such as variables, functions, and macros. However, static analysis tools typically discount this information when they look for bugs in a…

Programming Languages · Computer Science 2020-09-22 Roger Scott , Joseph Ranieri , Lucja Kot , Vineeth Kashyap

Large language models (LLMs) are becoming more advanced and widespread and have shown their applicability to various domains, including cybersecurity. Static malware analysis is one of the most important tasks in cybersecurity; however, it…

Cryptography and Security · Computer Science 2024-11-25 Shota Fujii , Rei Yamagishi

We present a new soundness proof of Concurrent Separation Logic (CSL) based on a structural operational semantics (SOS). We build on two previous proofs and develop new auxiliary notions to achieve the goal. One uses a denotational…

Logic in Computer Science · Computer Science 2017-12-06 Pedro Soares , António Ravara , Simão Melo de Sousa

Static analysis is an important approach for finding bugs and vulnerabilities in software. However, inspecting and confirming static warnings are challenging and time-consuming. In this paper, we present a novel solution that automatically…

Software Engineering · Computer Science 2021-06-30 Ashwin Kallingal Joshy , Xueyuan Chen , Benjamin Steenhoek , Wei Le

Establishing the absence of deadlocks is important in many applications of formal methods. The use of model checking for finding deadlocks in formal models is often limited. In this paper we propose a constraint-based approach to finding…

Logic in Computer Science · Computer Science 2011-09-12 Stefan Hallerstede , Michael Leuschel

In this paper, we provide a Dynamic Programming algorithm for on-line monitoring of the state robustness of Metric Temporal Logic specifications with past time operators. We compute the robustness of MTL with unbounded past and bounded…

Systems and Control · Computer Science 2014-08-04 Adel Dokhanchi , Bardh Hoxha , Georgios Fainekos

Static analysis approximates the results of a program by examining only its syntax. For example, control-flow analysis (CFA) determines which syntactic lambdas (for functional languages) or (for object-oriented) methods may be invoked at…

Programming Languages · Computer Science 2021-07-28 Davis Ross Silverman , Yihao Sun , Kristopher Micinski , Thomas Gilray