English
Related papers

Related papers: Non-Termination Analysis of Java Bytecode

200 papers

Automated analysis of recursive derivations in logic programming is known to be a hard problem. Both termination and non-termination are undecidable problems in Turing-complete languages. However, some declarative languages offer a…

Programming Languages · Computer Science 2016-08-22 E. Komendantskaya , P. Johann , M. Schmidt

Interrupts have been widely used in safety-critical computer systems to handle outside stimuli and interact with the hardware, but reasoning about interrupt-driven software remains a difficult task. Although a number of static verification…

Programming Languages · Computer Science 2017-09-29 Chungha Sung , Markus Kusano , Chao Wang

We describe an algorithm for proving termination of programs abstracted to systems of monotonicity constraints in the integer domain. Monotonicity constraints are a non-trivial extension of the well-known size-change termination method.…

Logic in Computer Science · Computer Science 2011-08-01 Michael Codish , Igor Gonopolskiy , Amir M. Ben-Amram , Carsten Fuhs , Jürgen Giesl

Termination analyses investigate the termination behavior of programs, intending to detect nontermination, which is known to cause a variety of program bugs (e.g. hanging programs, denial-of-service vulnerabilities). Beyond formal…

Software Engineering · Computer Science 2022-08-01 Yoav Alon , Cristina David

Infinite loops and redundant computations are long recognized open problems in Prolog. Two ways have been explored to resolve these problems: loop checking and tabling. Loop checking can cut infinite loops, but it cannot be both sound and…

Artificial Intelligence · Computer Science 2007-05-23 Yi-Dong Shen , Li-Yan Yuan , Jia-Huai You , Neng-Fa Zhou

Efficiently solving nonlinear equations underpins numerous scientific and engineering disciplines, yet scaling these solutions for challenging system models remains a challenge. This paper presents NonlinearSolve.jl -- a suite of…

We propose an automated method for proving termination of $\pi$-calculus processes, based on a reduction to termination of sequential programs: we translate a $\pi$-calculus process to a sequential program, so that the termination of the…

Programming Languages · Computer Science 2021-09-02 Tsubasa Shoshi , Takuma Ishikawa , Naoki Kobayashi , Ken Sakayori , Ryosuke Sato , Takeshi Tsukada

We present a non-null annotations inferencer for the Java bytecode language. We previously proposed an analysis to infer non-null annotations and proved it soundness and completeness with respect to a state of the art type system. This…

Programming Languages · Computer Science 2010-07-26 Laurent Hubert

We describe the Aligator.jl software package for automatically generating all polynomial invariants of the rich class of extended P-solvable loops with nested conditionals. Aligator.jl is written in the programming language Julia and is…

Symbolic Computation · Computer Science 2018-08-17 Andreas Humenberger , Maximilian Jaroschek , Laura Kovács

We present a new approach to termination analysis of numerical computations in logic programs. Traditional approaches fail to analyse them due to non well-foundedness of the integers. We present a technique that allows to overcome these…

Programming Languages · Computer Science 2007-05-23 Alexander Serebrenik , Danny De Schreye

A new technique is presented to prove non-termination of term rewriting. The basic idea is to find a non-empty regular language of terms that is closed under rewriting and does not contain normal forms. It is automated by representing the…

Logic in Computer Science · Computer Science 2015-05-05 Jörg Endrullis , Hans Zantema

We study termination of higher-order probabilistic functional programs with recursion, stochastic conditioning and sampling from continuous distributions. Reasoning about the termination probability of programs with continuous distributions…

Programming Languages · Computer Science 2021-04-13 Raven Beutner , Luke Ong

Java reflection has been increasingly used in a wide range of software. It allows a software system to inspect and/or modify the behaviour of its classes, interfaces, methods and fields at runtime, enabling the software to adapt to…

Programming Languages · Computer Science 2017-06-15 Yue Li , Tian Tan , Jingling Xue

We present necessary and sufficient conditions for the termination of linear homogeneous programs. We also develop a complete method to check termination for this class of programs. Our complete characterization of termination for such…

Programming Languages · Computer Science 2014-09-11 Rachid Rebiha , Arnaldo Vieira Moura , Nadir Matringe

Verifiers that can prove programs correct against their full functional specification require, for programs with loops, additional annotations in the form of loop invariants---propeties that hold for every iteration of a loop. We show that…

Software Engineering · Computer Science 2016-02-09 Juan P. Galeotti , Carlo A. Furia , Eva May , Gordon Fraser , Andreas Zeller

We present a new approach to termination analysis of numerical computations in logic programs. Traditional approaches fail to analyse them due to non well-foundedness of the integers. We present a technique that allows overcoming these…

Programming Languages · Computer Science 2007-05-23 Alexander Serebrenik , Danny De Schreye

We present a method for the automated verification of temporal properties of infinite state systems. Our verification method is based on the specialization of constraint logic programs (CLP) and works in two phases: (1) in the first phase,…

Logic in Computer Science · Computer Science 2015-03-19 Fabio Fioravanti , Alberto Pettorossi , Maurizio Proietti , Valerio Senni

Since time immemorial an old adage has always seemed to ring true: you cannot use a high-level productive programming language like Python or R for real-time control and embedded-systems programming, you must rewrite your program in C. We…

Systems and Control · Electrical Eng. & Systems 2025-02-10 Fredrik Bagge Carlson , Cody Tapscott , Gabriel Baraldi , Chris Rackauckas

Static verification of a program source code correctness is an important element of software reliability. Formal verification of software programs involves proving that a program satisfies a formal specification of its behavior. Many…

Software Engineering · Computer Science 2017-10-19 Daniel de Carvalho , Manuel Mazzara , Bogdan Mingela , Larisa Safina , Alexander Tchitchigin , Nikolay Troshkov

Loop acceleration can be used to prove safety, reachability, runtime bounds, and (non-)termination of programs. To this end, a variety of acceleration techniques has been proposed. However, so far all of them have been monolithic, i.e., a…

Logic in Computer Science · Computer Science 2022-06-09 Florian Frohn , Carsten Fuhs