作者:
CARTWRIGHT, RRice Univ
Computer Science Program Houston TX USA Rice Univ Computer Science Program Houston TX USA
Despite the reputed limitations of first order logic, it is easy to state and prove almost all interesting properties of recursive programs within a simple first order theory, by using an approach we call “first orde...
详细信息
Despite the reputed limitations of first order logic, it is easy to state and prove almost all interesting properties of recursive programs within a simple first order theory, by using an approach we call “first order programming logic”. Unlike higher order logics based on fixed-point induction, first order programming logic is founded on deductive principles that are familiar to most programmers. Informal structural induction arguments (such as termination proofs for LISP append, McCarthy’s 91-function, and Ackermann’s function) have direct formalizations within the system.
The design of programs that are tolerant of hardware fault occurrences and processor crashes is examined. Using a stable storage management system as a running example, a new approach is presented for specifying, und...
详细信息
The design of programs that are tolerant of hardware fault occurrences and processor crashes is examined. Using a stable storage management system as a running example, a new approach is presented for specifying, understanding, and verifying the correctness of fault-tolerant software. The approach extends earlier developed axiomatic reasoning techniques to the design of fault-tolerant systems by modeling hardware faults as being operations that are performed at random time intervals on any computing system by the system's adverse environment. A clear distinction is made between the concepts of software correctness and system reliability in the face of hardware malfunction. Fault hypotheses are specified axiomatically and design correctness is proven by employing a programming logic extended with fault axioms and rules. Stochastic modeling is used to verify reliability/availability system attributes. The combined correctness and reliability verifications establish that, under given fault and reliability hypotheses, a system behaves according to its functional specifications with a probability greater than prescribed by its reliability specifications.
VisualRDK is a high-level programming language for prototyping pervasive applications. Context is tightly integrated into the language itself, so developers can attach functionality to locations, persons, or situation...
详细信息
VisualRDK is a high-level programming language for prototyping pervasive applications. Context is tightly integrated into the language itself, so developers can attach functionality to locations, persons, or situations instead of the device.
Haskell employs a melange of strict and non-strict evaluation semantics, hence a Haskell verifier should be capable of checking assumptions that program variables may or may not denote well-defined values. The paper i...
详细信息
Haskell employs a melange of strict and non-strict evaluation semantics, hence a Haskell verifier should be capable of checking assumptions that program variables may or may not denote well-defined values. The paper introduces a new strategy, called strength induction, that supports automatic checking of definedness assumptions. Strength induction has been implemented in Plover, an automated property-verifier for Haskell programs that has been under development for the past three years as a component of the Programatica project. In Programatica, predicate definitions and property assertions written in P-logic, a programming logic for Haskell, can be embedded in the text of a Haskell program module. Properties refine the type system of Haskell but cannot be verified by type-checking alone;a more powerful logical verifier is required. Plover codes the proof rules of P-logic, and additionally, embeds strategies and decision procedures for their application and discharge. It integrates a reduction system that implements a rewriting semantics for Haskell terms with a congruence-closure algorithm that supports reasoning with equality.
logicians have known since Kleene's work in the 1940s that various kinds of constructive proofs could be compiled into executable code. The results of this variety are known for many constructive formal systems. ...
详细信息
logicians have known since Kleene's work in the 1940s that various kinds of constructive proofs could be compiled into executable code. The results of this variety are known for many constructive formal systems. An example can illustrate the basic ideas behind them. A very simple benchmark common in the literature, the Euclidean division algorithm, is selected. Programs are like constructive proofs of their specifications; this analogy is an exact equivalence for certain classes of programs. The relationship between formal logic and programs is a foundation for programming methodology superior to that usually adopted. Furthermore, this equivalence suggests programming languages which are much richer than all others currently in use. These claims are established through the introduction of parts of the PL/CV programming logics as a source of precision and examples.
A year-long trial has seen a large lightweight verification problem treated by an ad hoc distributed network of identical solvers. The trialled problem is the semantic analysis of the C code in the Linux kernel to exc...
详细信息
A year-long trial has seen a large lightweight verification problem treated by an ad hoc distributed network of identical solvers. The trialled problem is the semantic analysis of the C code in the Linux kernel to exclude a common deadlock possibility. The aim of the programme behind the experiment is to develop a viable loosely coupled distributed formal method which a community of interested part-time helpers on the net can lend their computing cycles to as they will, or send their own verification problems to for solving.
In Martin-L?f's type theory, general recursion is not available. The only iterating constructs are primitive recursion over natural numbers and other inductive sets. The paper describes a way to allow a general re...
详细信息
In Martin-L?f's type theory, general recursion is not available. The only iterating constructs are primitive recursion over natural numbers and other inductive sets. The paper describes a way to allow a general recursion operator in type theory (extended with propositions). A proof rule for the new operator is presented. The addition of the new operator will not destroy the property that all well-typed programs terminate. An advantage of the new program construct is that it is possible to separate the termination proof of the program from the proof of other properties.
The main contribution of this paper is a formal characterization of recursive object specifications and their existence based on a denotational untyped semantics of the object calculus. Existence is not guaranteed but...
详细信息
The main contribution of this paper is a formal characterization of recursive object specifications and their existence based on a denotational untyped semantics of the object calculus. Existence is not guaranteed but can be shown employing Pitts' results on relational properties of domains. The semantics can be used to analyse and verify Abadi and Leino's object logic but it also suggests extensions. For example, specifications of methods may not only refer to fields but also to methods of objects in the store. This can be achieved without compromising the existence theorem. An informal logic of predomains is in use intentionally in order to avoid any commitment to a particular syntax of specification logic. (C) 2004 Elsevier B.V. All rights reserved.
programming logic is often hard to understand for novice, but in the other side, programming is one of the most important subjects in computer science program. Analogy Mapping is a media which converts source code to ...
详细信息
ISBN:
(纸本)9781509058662
programming logic is often hard to understand for novice, but in the other side, programming is one of the most important subjects in computer science program. Analogy Mapping is a media which converts source code to analogies images using state machine in order to help students understanding programming logic easily. Therefore this paper reports our work about the effectivity of Analogy Mapping in learning process for basic programming subject students with different learning style.
Introduction to Computer Science is traditionally the first course that all computer science and software engineering majors take. The course introduces many problem-solving techniques which can be challenging for man...
详细信息
Introduction to Computer Science is traditionally the first course that all computer science and software engineering majors take. The course introduces many problem-solving techniques which can be challenging for many freshman students. In order to mitigate some of the issues of this course, we, at the Higher Education Institute, introduced a new prerequisite course, Introduction to programming logic, which is a required course for all students who have not taken any previous computer science course. In the Summer Session of 2022, we included prize-based learning in one of the sections of the course. Prize-based learning is similar to both problem-based learning and project-based learning in many aspects, including the principle of student-centred learning. However, it differs with respect to the motivation for student success. This approach utilises the students' ambition to win, to encourage students to work harder and learn more both inside as well as outside the classroom.
暂无评论