2,679 research outputs found

    A Historical Perspective on Runtime Assertion Checking in Software Development

    Get PDF
    This report presents initial results in the area of software testing and analysis produced as part of the Software Engineering Impact Project. The report describes the historical development of runtime assertion checking, including a description of the origins of and significant features associated with assertion checking mechanisms, and initial findings about current industrial use. A future report will provide a more comprehensive assessment of development practice, for which we invite readers of this report to contribute information

    Proof-checking Euclid

    Get PDF
    We used computer proof-checking methods to verify the correctness of our proofs of the propositions in Euclid Book I. We used axioms as close as possible to those of Euclid, in a language closely related to that used in Tarski's formal geometry. We used proofs as close as possible to those given by Euclid, but filling Euclid's gaps and correcting errors. Euclid Book I has 48 propositions, we proved 235 theorems. The extras were partly "Book Zero", preliminaries of a very fundamental nature, partly propositions that Euclid omitted but were used implicitly, partly advanced theorems that we found necessary to fill Euclid's gaps, and partly just variants of Euclid's propositions. We wrote these proofs in a simple fragment of first-order logic corresponding to Euclid's logic, debugged them using a custom software tool, and then checked them in the well-known and trusted proof checkers HOL Light and Coq.Comment: 53 page

    Fifty years of Hoare's Logic

    Get PDF
    We present a history of Hoare's logic.Comment: 79 pages. To appear in Formal Aspects of Computin

    A programming-language extension for distributed real-time systems

    Get PDF
    In this paper we propose a method for extending programming languages that enables the specification of timing properties of systems. The way time is treated is not language specific and the extension can therefore be included in many existing programming languages. The presented method includes a view on the system development process. An essential feature is that it enables the construction of (hard) real-time programs that may be proven correct independently of the properties of the machines that are used for their execution. It therefore provides a similar abstraction from the execution platform as is normal for non-real-time languages. The aim of this paper is to illustrate the method and demonstrate its applicability to actual real-time problems. To this end we define a simple programming language that includes the timing extension. We present a formal semantics for a characteristic part of the language constructs and apply formal methods to prove the correctness of a small example program. We consider in detail a larger example, namely the mine-pump problem known from the literature. We construct a real-time program for this problem and describe various ways to map the program to an implementation for different platforms

    ACL--Eliminating Parameter Aliasing with Dynamic Dispatch

    Get PDF
    In this article we present a method for eliminating reference parameter aliases. The goal is to allow procedure calls with parameters being aliases, and at the same time guarantees that procedure bodies are alias-free. The method is to automatically dispatch to the correct procedure body based on the particular alias combination among actual parameters. Automating finding the alias combination makes writing verifiable programs verification simpler since code to find the combination is not explicitly present in client programs. The number of necessary procedure bodies is usually small which makes th eapproach practical. Efficiency of the dispatch is estimated to be no worse than in other languages

    Diagrammatic Reasoning and Modelling in the Imagination: The Secret Weapons of the Scientific Revolution

    Get PDF
    Just before the Scientific Revolution, there was a "Mathematical Revolution", heavily based on geometrical and machine diagrams. The "faculty of imagination" (now called scientific visualization) was developed to allow 3D understanding of planetary motion, human anatomy and the workings of machines. 1543 saw the publication of the heavily geometrical work of Copernicus and Vesalius, as well as the first Italian translation of Euclid

    Two Decades of Maude

    Get PDF
    This paper is a tribute to José Meseguer, from the rest of us in the Maude team, reviewing the past, the present, and the future of the language and system with which we have been working for around two decades under his leadership. After reviewing the origins and the language's main features, we present the latest additions to the language and some features currently under development. This paper is not an introduction to Maude, and some familiarity with it and with rewriting logic are indeed assumed.Universidad de Málaga. Campus de Excelencia Internacional Andalucía Tech
    • …
    corecore