When designing critical software, great care must be taken to guarantee its correctness. Refactoring is one of the techniques used to improve code readability, maintainability, and other factors without changing functionality. Thus, to ensure that it is properly applied, automated tools are used to perform refactoring. To ensure that the code remained correct, we verified the correctness of the tool actions using formal proof. This is assisted by a dependently typed language Agda, which, when used as a proof assistant, can directly support us by ensuring the soundness of the steps taken. We consider the refactoring of currying and its counterpart, uncurrying, using a small proof-of-concept functional programming language with intrinsically ...
Refactorings are source-to-source program transformations which change program structure and organis...
In order to know if a program is correct a specification of its intended behaviour must be stated. T...
The paper surveys how software tools such as refactoring systems can be validated, and introduces a ...
Refactoring tools are an important tool for developers, but their reliability can be questionable at...
Refactoring is a useful tool for increasing the overall quality of software without making changes t...
The task of making changes to an existing code base to improve performance, legibility, or extensibi...
Abstract: Refactoring is a technique for improving the design of existing pro-grams without changing...
Equational reasoning based verification address some of the limitations of classical testing. The Cu...
Refactoring is the process of changing the design of a program without changing what it does. Typica...
We demonstrate the Haskell Refactorer, HaRe, both as an example of a fully-functional tool for a com...
Abstract Proof assistants based on dependent type theory are closely relatedto functional programmin...
We present a formally verified refactoring framework for a subset of Haskell 98. Our framework is im...
AbstractWe demonstrate the Haskell Refactorer, HaRe, both as an example of a fully-functional tool f...
Purely functional languages are advantageous in that it is easy to reason about the correctness of f...
The formal verification of concurrent programs is of particular importance, because concurrent progr...
Refactorings are source-to-source program transformations which change program structure and organis...
In order to know if a program is correct a specification of its intended behaviour must be stated. T...
The paper surveys how software tools such as refactoring systems can be validated, and introduces a ...
Refactoring tools are an important tool for developers, but their reliability can be questionable at...
Refactoring is a useful tool for increasing the overall quality of software without making changes t...
The task of making changes to an existing code base to improve performance, legibility, or extensibi...
Abstract: Refactoring is a technique for improving the design of existing pro-grams without changing...
Equational reasoning based verification address some of the limitations of classical testing. The Cu...
Refactoring is the process of changing the design of a program without changing what it does. Typica...
We demonstrate the Haskell Refactorer, HaRe, both as an example of a fully-functional tool for a com...
Abstract Proof assistants based on dependent type theory are closely relatedto functional programmin...
We present a formally verified refactoring framework for a subset of Haskell 98. Our framework is im...
AbstractWe demonstrate the Haskell Refactorer, HaRe, both as an example of a fully-functional tool f...
Purely functional languages are advantageous in that it is easy to reason about the correctness of f...
The formal verification of concurrent programs is of particular importance, because concurrent progr...
Refactorings are source-to-source program transformations which change program structure and organis...
In order to know if a program is correct a specification of its intended behaviour must be stated. T...
The paper surveys how software tools such as refactoring systems can be validated, and introduces a ...