Results 1  10
of
39
GOLOG: A Logic Programming Language for Dynamic Domains
, 1994
"... This paper proposes a new logic programming language called GOLOG whose interpreter automatically maintains an explicit representation of the dynamic world being modeled, on the basis of user supplied axioms about the preconditions and effects of actions and the initial state of the world. This allo ..."
Abstract

Cited by 623 (72 self)
 Add to MetaCart
(Show Context)
This paper proposes a new logic programming language called GOLOG whose interpreter automatically maintains an explicit representation of the dynamic world being modeled, on the basis of user supplied axioms about the preconditions and effects of actions and the initial state of the world. This allows programs to reason about the state of the world and consider the effects of various possible courses of action before committing to a particular behavior. The net effect is that programs may be written at a much higher level of abstraction than is usually possible. The language appears well suited for applications in high level control of robots and industrial processes, intelligent software agents, discrete event simulation, etc. It is based on a formal theory of action specified in an extended version of the situation calculus. A prototype implementation in Prolog has been developed.
An Efficient Implementation of Reactivity for Modeling Hardware in the Scenic Design Environment
, 1997
"... Reactivity is one of the key features of hardware description languages. We present an efficient implementation of reactivity in the Scenic framework that allows the system designer to model hardware blocks. Scenic allows the designer to use C++ to model mixed hardwaresoftware systems with a C++ c ..."
Abstract

Cited by 79 (9 self)
 Add to MetaCart
(Show Context)
Reactivity is one of the key features of hardware description languages. We present an efficient implementation of reactivity in the Scenic framework that allows the system designer to model hardware blocks. Scenic allows the designer to use C++ to model mixed hardwaresoftware systems with a C++ compiler and a small library and without the need of a complex eventdriven runtime kernel often found embedded in hardware description languages (HDL) such as VHDL and Verilog. Moreover, Scenic hardware descriptions can be easily mapped to HDL and synthesized into hardware implementations using commercially available tools. In this paper we present Scenic's implementation of concurrency (signals and processes) and reactivity (waiting and watching). When C++ is used as an HDL, contextswitching overhead can become a significant performance issue during simulation. We introduce the notion of delayed expression objects, or lambdas, to reduce contextswitching. Examples and experimental results ...
An Algorithm for TypeChecking Dependent Types
 Science of Computer Programming
, 1996
"... We present a simple typechecker for a language with dependent types and let expressions, with a simple proof of correctness. Introduction Type Theory provides an interesting approach to the problem of (interactive) proofchecking. Instead of introducing, like in LCF [10], an abstract data type of t ..."
Abstract

Cited by 50 (4 self)
 Add to MetaCart
(Show Context)
We present a simple typechecker for a language with dependent types and let expressions, with a simple proof of correctness. Introduction Type Theory provides an interesting approach to the problem of (interactive) proofchecking. Instead of introducing, like in LCF [10], an abstract data type of theorems, it uses the proofsasprograms analogy and reduces the problem of proof checking to the problem of typechecking in a programming language with dependent types [5]. This approach presents several advantages, well described in [11,5], among those being the possibility of independent proof verification and of a uniform treatment for naming constants and theorems. It is crucial however for this approach to proofchecking to have a simple and reliable typechecking algorithm. Since the core part of such languages, like the ones described in [5,7], seems very simple, there may be some hope for such a short and simple typechecker for dependent types. Indeed, de Bruijn sketches such an al...
A Security Flow Control Algorithm and Its Denotational Semantics Correctness Proof
, 1992
"... We derive a security flow control algorithm for messagebased, modular systems and prove the algorithm correct. The development is noteworthy because it is completely rigorous: the flow control algorithm is derived as an abstract interpretation of the dentotational semantics of the programming langu ..."
Abstract

Cited by 26 (0 self)
 Add to MetaCart
We derive a security flow control algorithm for messagebased, modular systems and prove the algorithm correct. The development is noteworthy because it is completely rigorous: the flow control algorithm is derived as an abstract interpretation of the dentotational semantics of the programming language for the modular system, and the correctness proof is a proof by logical relations of the congruence between the denotational semantics and its abstract interpretation. Effectiveness is also addressed: we give conditions under which an abstract interpretation can be computed as a traditional iterative data flow analysis, and we prove that our security flow control algorithm satisfies the conditions. We also show that symbolic expressions (that is, data flow values that contain unknowns) can be used in a convergent, iterative analysis. An important consequence of the latter result is that the security flow control algorithm can analyze individual modules in a system for well formedness and...
Referential transparency, definiteness and unfoldability
 Acta Inform
, 1989
"... Summary. The term "referential transparency " is frequently used to indicate that a programming language has certain useful substitution properties. We observe, however, that the formal and informal definitions given in the literature are not equivalent and we investigate their relationsh ..."
Abstract

Cited by 24 (0 self)
 Add to MetaCart
(Show Context)
Summary. The term "referential transparency " is frequently used to indicate that a programming language has certain useful substitution properties. We observe, however, that the formal and informal definitions given in the literature are not equivalent and we investigate their relationships. To this end, we study the definitions in the context of a simple expression language and show that in the presence of nondeterminism, the differences between the definitions are manifest. We propose a definition of "referential transparency", based on Quine's, as well as of the related notions: definiteness and unfoldability. We demonstrate that these notions are useful to characterize programming languages. 1.
Using a Process Algebra to control B OPERATIONS
, 1999
"... The BMethod is a statebased formal method that describes system behaviour in terms of MACHINES whose state changes under OPERATIONS. The process algebra CSP is an eventbased formalism that enables descriptions of patterns of system behaviour. This paper is concerned with the combination of these ..."
Abstract

Cited by 23 (4 self)
 Add to MetaCart
(Show Context)
The BMethod is a statebased formal method that describes system behaviour in terms of MACHINES whose state changes under OPERATIONS. The process algebra CSP is an eventbased formalism that enables descriptions of patterns of system behaviour. This paper is concerned with the combination of these complementary views, in which CSP is used to describe the control executive for a B Abstract System. We discuss consistency between the two views and how it can be formally established. A typical avionics system motivates the work. Its specification and control executive are presented in the paper. The relationship with other approaches is also discussed. Keywords: BMethod, CSP, Embedded Systems, Programming Calculi, Combining Formalisms. CONTENTS 2 Contents 1 Introduction 3 2 Overview of the BMethod 3 3 Overview of the correspondence between Action Systems and CSP 4 4 A new coupling between B and CSP loops 6 4.1 Developing a Control Executive 7 4.2 Consistency of a CSP Control Executi...
Macro Tree Translations of Linear Size Increase are MSO Definable
 SIAM J. Comput
, 2001
"... Abstract. The first main result is that if a macro tree translation is of linear size increase, i.e., if the size of every output tree is linearly bounded by the size of the corresponding input tree, then the translation is MSO definable (i.e., definable in monadic secondorder logic). This gives a ..."
Abstract

Cited by 23 (8 self)
 Add to MetaCart
(Show Context)
Abstract. The first main result is that if a macro tree translation is of linear size increase, i.e., if the size of every output tree is linearly bounded by the size of the corresponding input tree, then the translation is MSO definable (i.e., definable in monadic secondorder logic). This gives a new characterization of the MSO definable tree translations in terms of macro tree transducers: they are exactly the macro tree translations of linear size increase. The second main result is that given a macro tree transducer, it can be decided whether or not its translation is MSO definable, and if it is then an equivalent MSO transducer can be constructed. Similar results hold for attribute grammars, which define a subclass of the macro tree translations.
How to Drive a B Machine
 ZB 2000: Formal Specification and Development in Z and B, First International Conference of B and Z Users
, 2000
"... The BMethod is a statebased formal method that describes behaviour in terms of MACHINES whose states change under OPERATIONS. The process algebra CSP is an eventbased formalism that enables descriptions of patterns of system behaviour. We present a combination of the two views where a CSP process ..."
Abstract

Cited by 20 (5 self)
 Add to MetaCart
(Show Context)
The BMethod is a statebased formal method that describes behaviour in terms of MACHINES whose states change under OPERATIONS. The process algebra CSP is an eventbased formalism that enables descriptions of patterns of system behaviour. We present a combination of the two views where a CSP process acts as a control executive and its events simply drive corresponding OPERATIONS. We define consistency between the two views in terms of existing semantic models. We identify proof conditions which are strong enough to ensure consistency and thus guarantee safety and liveness properties. Keywords: BMethod, CSP, Embedded Systems, Programming Calculi, Combining Formalisms.