English
Related papers

Related papers: On a New Notion of Partial Refinement

200 papers

We present a novel technique for proving program termination which introduces a new dimension of modularity. Existing techniques use the program to incrementally construct a termination proof. While the proof keeps changing, the program…

Logic in Computer Science · Computer Science 2015-05-26 Pierre Ganty , Samir Genaim

We introduce skipping refinement, a new notion of correctness for reasoning about optimized reactive systems. Reasoning about reactive systems using refinement involves defining an abstract, high-level specification system and a concrete,…

Logic in Computer Science · Computer Science 2015-02-11 Mitesh Jain , Panagiotis Manolios

Supercompilation is a powerful program transformation technique with numerous interesting applications. Existing methods of supercompilation, however, are often very unpredictable with respect to the size of the resulting programs. We…

Programming Languages · Computer Science 2020-08-12 Dimitur Nikolaev Krustev

Control-flow refinement refers to program transformations whose purpose is to make implicit control-flow explicit, and is used in the context of program analysis to increase precision. Several techniques have been suggested for different…

Programming Languages · Computer Science 2019-08-01 Jesús J. Doménech , John P. Gallagher , Samir Genaim

Program comprehension is the most tedious and time consuming task of software maintenance, an important phase of the software life cycle. This is particularly true while maintaining scientific application programs that have been written in…

Software Engineering · Computer Science 2007-05-23 Sandrine Blazy

Relative correctness is the property of a program to be more-correct than another program with respect to a given specification. Among the many properties of relative correctness, that which we found most intriguing is the property that…

Logic in Computer Science · Computer Science 2016-06-08 Nafi Diallo , Wided Ghardallou , Jules Desharnais , Ali Mili

Program specialisation aims at improving the overall performance of programs by performing source to source transformations. A common approach within functional and logic programming, known respectively as partial evaluation and partial…

Programming Languages · Computer Science 2007-05-23 Michael Leuschel , Maurice Bruynooghe

Software is now ubiquitous and involved in complex interactions with the human users and the physical world in so-called cyber-physical systems where the management of time is a major issue. Separation of concerns is a key asset in the…

Logic in Computer Science · Computer Science 2018-10-24 Mathieu Montin , Marc Pantel

Refinement is one of the cornerstones of a formal approach to software engineering. Refinement is the process of developing a more detailed design or implementation from an abstract specification through a sequence of mathematically-based…

Logic in Computer Science · Computer Science 2018-10-23 John Derrick , Brijesh Dongol , Steve Reeves

Code refinement aims to enhance existing code by addressing issues, refactoring, and optimizing to improve quality and meet specific requirements. As software projects scale in size and complexity, the traditional iterative exchange between…

Software Engineering · Computer Science 2025-02-13 Qi Guo , Xiaofei Xie , Shangqing Liu , Ming Hu , Xiaohong Li , Lei Bu

Refinement is one of the cornerstones of a formal approach to software engineering: the process of developing a more detailed design or implementation from an abstract specification through a sequence of mathematically-based steps that…

Software Engineering · Computer Science 2011-06-20 John Derrick , Eerke Boiten , Steve Reeves

This dissertation introduces executable refinement types, which refine structural types by semi-decidable predicates, and establishes their metatheory and accompanying implementation techniques. These results are useful for undecidable type…

Programming Languages · Computer Science 2014-03-14 Kenneth Knowles

Early stages of system development involve outlining desired features such as functionality, availability, or usability. Specifications are derived from these features that concretize vague ideas presented in natural languages. The…

Software Engineering · Computer Science 2014-10-09 Rongjie Yan , Chih-Hong Cheng , Guangquan Zhang , Yesheng Chai

We propose a notion of complexity for oriented conditional term rewrite systems satisfying certain restrictions. This notion is realistic in the sense that it measures not only successful computations, but also partial computations that…

Logic in Computer Science · Computer Science 2019-03-14 Cynthia Kop , Aart Middeldorp , Thomas Sternagel

Multi-threaded programs have many applications which are widely used such as operating systems. Analyzing multi-threaded programs differs from sequential ones; the main feature is that many threads execute at the same time. The effect of…

Software Engineering · Computer Science 2011-11-04 Mohamed A. El-Zawawy , Hamada A. Nayel

Many functional logic languages are based on narrowing, a unification-based goal-solving mechanism which subsumes the reduction mechanism of functional languages and the resolution principle of logic languages. Needed narrowing is an…

Programming Languages · Computer Science 2007-05-23 Maria Alpuente , Michael Hanus , Salvador Lucas , German Vidal

Revision programming is a formalism to describe and enforce updates of belief sets and databases. That formalism was extended by Fitting who assigned annotations to revision atoms. Annotations provide a way to quantify the confidence…

Artificial Intelligence · Computer Science 2007-05-23 Victor Marek , Inna Pivkina , Miroslaw Truszczynski

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

Refinement is a fundamental technique in the verification and systematic development of computer programs. It supports a disciplined approach to software construction through stepwise refinement, whereby an abstract specification is…

Logic in Computer Science · Computer Science 2026-02-20 Yuan Feng , Li Zhou

This paper discusses highly general mechanisms for specifying the refinement of a real-time system as a collection of lower level parallel components that preserve the timing and functional requirements of the upper level specification.…

Logic in Computer Science · Computer Science 2010-02-10 Paul Z. Kolano , Carlo A. Furia , Richard A. Kemmerer , Dino Mandrioli