2,446 research outputs found
A Certified Refactoring Engine
The paper surveys how software tools such as refactoring systems can be validated, and introduces a new mechanism, namely the extraction of a refactoring engine for a functional programming language from an Isabelle/HOL theory in which it is verified. This research is a first step in a programme to construct certified programming tools from verified theories. We also provide some empirical evidence of how refactoring can be of significant benefit in reshaping automatically-generated program code for use in larger systems
Verification of Refactorings in Isabelle/HOL
Refactorings are source-to-source behaviour-preserving program transformations that are used for improving program structure. Programmers refactor code to adapt it when new functionality is added or when the code is being repaired -- refactoring serves to keep the code ``clean'' and more maintainable. Refactoring can also be used as an exploratory technique for understanding source code. The process of refactoring has been automated through the implementation of tools; these tools assist programmers by handling the consistent application of behaviour-preserving changes to the code. It is desirable that the implementations of refactorings are correct: bugs might otherwise be introduced in refactored programs. The correctness, i.e. behaviour-preservation, of refactoring is traditionally probed by testing the refactored program and not the refactoring implementation directly. Recently, automated testing techniques have been used to test implementations of refactorings directly, but the coverage of testing is partial at best. The verification of refactorings is more challenging but determines whether a refactoring is behaviour-preserving for all possible programs. We study the verification of refactorings using the proof assistant Isabelle/HOL for untyped and typed lambda-calculi. Some of the issues encountered during verification are technical rather than purely theoretical: they relate to the embedding of the programming language in the proof environment. The reasons for our choice of techniques are discussed. We also discuss other practical considerations such as the readability of mechanised refactorings, and the avoidance of computationally expensive refactorings
Mechanical Verification of Refactorings
In this paper we describe the formal verification of refactorings for untyped and typed lambda-calculi. This verification is performed in the proof assistant Isabelle/HOL. Refactorings are program transformations applied to improve the design of source code. Well-structured source code is easier and cheaper to maintain, and this motivates the use of refactoring. These transformations have been implemented as programmer tools and, as with other metaprogramming tools, it is desirable that implementations of refactorings are correct. For a refactoring to be correct the refactored program must be identical in behaviour to the original program. Since refactorings are source-to-source transformations, concrete program information matters: for example, names (of variables, procedures, etc) and program layout should also be preserved by refactoring. This is a particular characteristic of refactorings since general program transformations operate over machine representations of programs, rather than readable source code. The paper describes the formalisation adopted, and the alternatives explored. It also reflects on some of the difficulties of performing such formalisations, the interaction between refactoring and phases such as type-checking and parsing, and the generation of correct implementations from mechanised proofs
Miranda in Isabelle
This paper describes our experience in formalising arguments about the Miranda functional programming language in Isabelle. After explaining some of the problems of reasoning about Miranda, we explain our two different approaches to encoding Miranda in Isabelle. We conclude by discussing some shorter examples and a case study of reasoning about hardware. Miranda 1 [Turner, 1990, Thompson, 1995b] is a modern functional programming language, allowing type polymorphism and higher-order functions in a similar way to ML[Milner et al., 1990]. It differs from ML in being lazy --- arguments to functions are only evaluated when and to the extent that they are needed --- and in being side-effect free. It has long been an article of faith in the functional programming community that languages like this are ideal candidates for program verification because of their `declarative' nature. This is clearly true for idealised languages, but real languages like Miranda bring their own complexities wh..
Cut-elimination, substitution and normalisation
Date of Acceptance: 01/2015We present a proof (of the main parts of which there is a formal version, checked with the Isabelle proof assistant) that, for a G3-style calculus covering all of intuitionistic zero-order logic, with an associated term calculus, and with a particular strongly normalising and confluent system of cut-reduction rules, every reduction step has, as its natural deduction translation, a sequence of zero or more reduction steps (detour reductions, permutation reductions or simplifications). This complements and (we believe) clarifies earlier work by (e.g.) Zucker and Pottinger on a question raised in 1971 by Kreisel.Peer reviewe
Motivational Scaffolding, Politeness, and Writing Center Tutoring
Writing center tutors know that improving writing skills requires sustained effort over a long period of time. They also know that motivation - the drive to actively invest in sustained effort toward a goal- is essential for writing improvement. However, a tutor may not work with the same student more than once, so tutorials often need to focus on what can be done in a single 30- to 60-minute conference. Further, although tutors are likely to attempt to motivate students to invest time and effort in improving their writing, when writers leave the writing center, tutors' influence might end with the conference. Therefore, tutors must work to develop and maintain students' motivation to participate actively during the brief time they are collaborating in writing center conferences.This article is published as “Motivational Scaffolding, Politeness, and Writing Center Tutoring.” The Writing Center Journal 33 (2013):38–69. (First author, with Isabelle Thompson, 50%). Posted with permission.</p
Miranda in Isabelle
This paper describes our experience in formalising arguments about the Miranda functional programming language in Isabelle. After explaining some of the problems of reasoning about Miranda, we explain our two different approaches to encoding Miranda in Isabelle. We conclude by discussing some shorter examples and a case study of reasoning about hardware
I remember teaching English at Seabrook
In this "I remember" memoir, Isabell Waugh, a former teacher at Seabrook, compares and constrasts the different groups of students she taught. She remembers that native-born American teenagers tended to be more concerned with athletics and social activities, than academic matters. In comparison, Estonian and Japanese parents did not tolerate low academic performance, so students from the two groups often competed intensely with each other for academic achievement and recognition. Isabelle recalls that the Estonians were, in general, more sophisticated and better educated. Most of the children knew 3-5 languages, and were more advanced in math and science. She sensed that some Estonian parents felt that their homes at Seabrook were temporary, and that they would be returning to Estonia at some point. The Seabrook Educational and Cultural Center has been soliciting current and past residents of Seabrook Farms for an "I remember" project. Residents are asked to create narratives regarding their experiences at Seabrook Farms. These memories help preserve the history and multi-cultural heritage of Seabrook Farms
The Global-Local Dualism in Writing Center Studies
We trace the history of the global-local dualism, noting how writing center researchers and practitioners have employed it. We next discuss problems and complications inherent in the dualism, such as the way it obscures the interconnectedness of text components. We illustrate our points with excerpts from writing center conferences. We end by discussing possible implications of our analysis for tutor training. Our goal is to provide a more nuanced understanding of this ubiquitous dualism in writing center studies.This article is published as Mackiewicz, Jo, Thompson, Isabelle, “The Global-Local Dualism in Writing Studies.” in Praxis: A Writing Center Journal. 2024, 21(3),14-24. https://www.praxisuwc.com/213-1
Thompson, Ruth Isabelle (Birth, 1895-01-04)
Address: 179 Laurel St.386/Pg.8/1895/F W/Ohio/Ohio/Dr. C. N. AbbottOriginal record filed in drawer labeled 'THOMPSON-TIMMERN'
- …
