English
Related papers

Related papers: Symbolic Partial-Order Execution for Testing Multi…

200 papers

Many privacy-type properties of security protocols can be modelled using trace equivalence properties in suitable process algebras. It has been shown that such properties can be decided for interesting classes of finite processes (i.e.,…

Cryptography and Security · Computer Science 2016-10-27 David Baelde , Stéphanie Delaune , Lucca Hirschi

Event-driven multi-threaded programming is an important idiom for structuring concurrent computations. Stateless Model Checking (SMC) is an effective verification technique for multi-threaded programs, especially when coupled with Dynamic…

Dynamic symbolic execution is a widely used technique for automated software testing, designed for execution paths exploration and program errors detection. A hybrid approach has recently become widespread, when the main goal of symbolic…

Cryptography and Security · Computer Science 2022-03-23 Daniil Kuts

In previous work, we presented a symbolic execution method which starts with a concrete model of the program but progressively abstracts away details only when these are known to be irrelevant using interpolation. In this paper, we extend…

Programming Languages · Computer Science 2011-03-11 Joxan Jaffar , Jorge A. Navas , Andrew E. Santosa

We present Symbolic Quick Error Detection (Symbolic QED), a structured approach for logic bug detection and localization which can be used both during pre-silicon design verification as well as post-silicon validation and debug. This new…

Logic in Computer Science · Computer Science 2017-11-20 Eshan Singh , David Lin , Clark Barrett , Subhasish Mitra

Deadlocks are a major source of bugs in concurrent programs. They are hard to predict, because they may only occur under specific scheduling conditions. Dynamic analysis attempts to identify potential deadlocks by examining a single…

Programming Languages · Computer Science 2026-05-13 Bas van den Heuvel , Martin Sulzmann , Peter Thiemann

We present a new approach to automated reasoning about higher-order programs by extending symbolic execution to use behavioral contracts as symbolic values, enabling symbolic approximation of higher-order behavior. Our approach is based on…

Programming Languages · Computer Science 2012-04-27 Sam Tobin-Hochstadt , David Van Horn

The timing characteristics of cache, a high-speed storage between the fast CPU and the slowmemory, may reveal sensitive information of a program, thus allowing an adversary to conduct side-channel attacks. Existing methods for detecting…

Cryptography and Security · Computer Science 2018-07-10 Shengjian Guo , Meng Wu , Chao Wang

Dynamic symbolic execution (DSE) is an effective method for automated program testing and bug detection. It is increasing the code coverage by the complex branches exploration during hybrid fuzzing. DSE tools invert the branches along some…

Cryptography and Security · Computer Science 2022-12-27 Darya Parygina , Alexey Vishnyakov , Andrey Fedotov

Partial evaluation (PE) is a powerful and general program optimization technique with many successful applications. However, it has never been investigated in the context of expressive rule-based languages like Maude, CafeOBJ, OBJ, ASF+SDF,…

Programming Languages · Computer Science 2016-08-12 Maria Alpuente , Angel Cuenca , Santiago Escobar , Jose Meseguer

Symbolic execution is a successful and very popular technique used in software verification and testing. A key limitation of symbolic execution is in dealing with code containing loops. The problem is that even a single loop can generate a…

Programming Languages · Computer Science 2011-07-08 Jan Obdrzalek , Marek Trtik

Symbolic execution is a powerful technique for program analysis. However, it has many limitations in practical applicability: the path explosion problem encumbers scalability, the need for language-specific implementation, the inability to…

Programming Languages · Computer Science 2018-07-03 Shiqi Shen , Soundarya Ramesh , Shweta Shinde , Abhik Roychoudhury , Prateek Saxena

Obfuscation poses a persistent challenge for software engineering tasks such as program comprehension, maintenance, testing, and vulnerability detection. While compiler optimizations and third-party code often introduce transformations that…

Software Engineering · Computer Science 2025-11-25 Rong Feng , Suman Saha

A great variety of static analyses that compute safety properties of single-thread programs have now been developed. This paper presents a systematic method to extend a class of such static analyses, so that they handle programs with…

Programming Languages · Computer Science 2009-11-02 Jean-Loup Carre , Charles Hymans

Event-driven multi-threaded programming is fast becoming a preferred style of developing efficient and responsive applications. In this concurrency model, multiple threads execute concurrently, communicating through shared objects as well…

Programming Languages · Computer Science 2017-10-17 Pallavi Maiya , Rahul Gupta , Aditya Kanade , Rupak Majumdar

Existing techniques to ensure functional correctness and hardware trust during pre-silicon verification face severe limitations. In this work, we systematically leverage two key ideas: 1) Symbolic Quick Error Detection (Symbolic QED or…

Hardware Architecture · Computer Science 2021-06-18 Karthik Ganesan , Srinivasa Shashank Nuthakki

We present an automatic analysis technique for checking data races on OpenCL kernels. Our method defines symbolic execution techniques based on separation logic with suitable abstractions to automatically detect non-benign racy behaviours…

Programming Languages · Computer Science 2013-08-15 Dino Distefano , Jeremy Dubreil

In many practical application domains, the software is organized into a set of threads, whose activation is exclusive and controlled by a cooperative scheduling policy: threads execute, without any interruption, until they either terminate…

Logic in Computer Science · Computer Science 2015-07-01 Alessandro Cimatti , Iman Narasamdya , Marco Roveri

In this paper we study the partitioning approach for multiprocessor real-time scheduling. This approach seems to be the easiest since, once the partitioning of the task set has been done, the problem reduces to well understood uniprocessor…

Operating Systems · Computer Science 2011-02-03 Irina Lupu , Pierre Courbin , Laurent George , Joël Goossens

Many existing algorithms for model checking of infinite-state systems operate on constraints which are used to represent (potentially infinite) sets of states. A general powerful technique which can be employed for proving termination of…

Logic in Computer Science · Computer Science 2007-05-23 Parosh Aziz Abdulla , Aletta Nylen