Rules are used as a programming paradigm in several application domains, including active databases, planning, expert systems, and billing. For example, active databases have rules that execute upon the occurrence of ...
详细信息
Rules are used as a programming paradigm in several application domains, including active databases, planning, expert systems, and billing. For example, active databases have rules that execute upon the occurrence of particular events if specified condition predicates are satisfied. It is often the case that multiple rules are fireable when a particular event occurs. We propose a declarative mechanism to control the interaction and execution of multiple rules. The mechanism is based upon logical meta-rules that can express various types of relationships between rules. The meta-rules allow us to reason statically about the rule behavior. We can determine, in polynomial time, if a rule will never execute, whether two rules can ever be executed together, and whether a rule system is guaranteed to have a unique execution set for all possible rules that become fireable. In this paper, we illustrate our techniques using rules in an active database. A system based upon the meta-rules and the static analysis presented here has been found to be of value in a billing application at AT&T to control interactions between discount plans, and is presently being implemented within the application.
A new methodology for 'result checking' that enables to extend the notion of Blum's program result checking to the on-line checking of cryptographic functions is suggested. In the methodology, the checker ...
详细信息
ISBN:
(纸本)9780897917858
A new methodology for 'result checking' that enables to extend the notion of Blum's program result checking to the on-line checking of cryptographic functions is suggested. In the methodology, the checker not only needs to be assured of the correctness of the result but the owner of the program needs to be sure not to give away anything but the requested result on the authorized input. The methodology also allows extra queries, but only when the response does not carry 'knowledge', namely computational advantage.
StarLogo is programmable modeling environment designed to help nonexpert users (in particular, precollege students) model and explore decentralized systems, such as ant colonies and market economies. People often have...
详细信息
ISBN:
(纸本)9780897918329
StarLogo is programmable modeling environment designed to help nonexpert users (in particular, precollege students) model and explore decentralized systems, such as ant colonies and market economies. People often have difficulty understanding the workings of such systems. By using StarLogo, people can move beyond the 'centralized mindset' - that is, they begin to understand how patterns can arise through decentralized interactions, not from the dictates of a centralized authority.
Module systems are a powerful, practical tool for managing the complexity of large software systems. Previous attempts to formulate a type-theoretic foundation for modular programming have been based on existential, d...
详细信息
ISBN:
(纸本)9780897917698
Module systems are a powerful, practical tool for managing the complexity of large software systems. Previous attempts to formulate a type-theoretic foundation for modular programming have been based on existential, dependent, or manifest types. These approaches can be distinguished by their use of different quantifiers to package the operations that a module exports together with appropriate implementation types. In each case, the underlying type theory is simple and elegant, but significant and sometimes complex extensions are needed to account for features that are important in practical systems, such as separate compilation and propagation of type information between modules. This paper presents a simple type-theoretic framework for modular programming using parameterized signatures. The use of quantifiers is treated as a necessary, but independent concern. Using familiar concepts of polymorphism, the resulting module system is easy to understand and admits true separate compilation. It is also very powerful, supporting high-order, polymorphic, and first-class modules without further extension.
For the integration of work on multi-agent systems, we propose a communication model of multi-agent systems which unifies CSP (Communicating Sequential Processes)-based formulation of the agents' communication and...
详细信息
For the integration of work on multi-agent systems, we propose a communication model of multi-agent systems which unifies CSP (Communicating Sequential Processes)-based formulation of the agents' communication and a first-order logical formalization based on meta logics. This model captures various concepts of multi-agent systems: the concepts of the agents' environment such as time, actions, conditional and causality, the concepts of mental attitudes such as knowledge, plans, goals and intentions, and the concepts of agents' interaction such as speech acts, negotiations and collaboration. In this paper, modal logical formulas of those concepts are rebuilt into a first-order theory with three layers, as an executable specification for a proof system on first-order logic. This first-order theory can be taken as a agent oriented programming language which gives a general framework for integration of agent theories as specifications, agent architectures as problem solving systems, and agent languages for programming.
In this paper we propose a calculus for reasoning about concurrent programs inspired by the wp calculus for reasoning about sequential programs. The calculus uses a small set of familiar rules for dealing with safety,...
详细信息
In this paper we propose a calculus for reasoning about concurrent programs inspired by the wp calculus for reasoning about sequential programs. The calculus uses a small set of familiar rules for dealing with safety, progress and parallel composition. A contribution of this paper is to demonstrate how predicate calculus in general, and predicate transformers in particular, can be used to reason about concurrent programs in which fairness plays a critical role.
Software development is a difficult and time-consuming process. As software systems become larger and ever more complex, developers are searching for mechanisms to control that complexity. The main goals have always b...
详细信息
Software development is a difficult and time-consuming process. As software systems become larger and ever more complex, developers are searching for mechanisms to control that complexity. The main goals have always been to lower the cost and improve productivity, reuse, and maintainability. The procedure-oriented paradigm and structured programming were popular for a while, and their fundamentals may still be valid. Today, however, OO is being heralded by many as one promising solution. This roundtable contains an assortment of short articles from both industry and academia on aspects of object orientation: distributed objects in the client-server environment, standardization efforts to ensure cross-platform interoperability, object technology and parallel computing, object-oriented databases, the problems inherent in OO testing, and, finally, the theoretical foundations of object-based programming.
We apply algebraic transformation techniques to synthesise Horner's rule for polynomial evaluation. Horner's rule is then transformed into a pipeline by the application of further axioms. The syntheses demonst...
详细信息
We apply algebraic transformation techniques to synthesise Horner's rule for polynomial evaluation. Horner's rule is then transformed into a pipeline by the application of further axioms. The syntheses demonstrate the power of the algebraic style, in which inductive proof is replaced by constructive unfolding and folding of standard higher-order functions defined on lists.
This paper lifts earlier category-theoretic results on datatypes to the level of an abstract language suitable for categorical programming language implementation. The earlier work built a strongly normalizing categor...
详细信息
This paper lifts earlier category-theoretic results on datatypes to the level of an abstract language suitable for categorical programming language implementation. The earlier work built a strongly normalizing categorical combinator reduction system based entirely on functorial strength which allows the distribution of context to the interior of datatypes. Here we declare inductive (initial) and coinductive (final) datatypes in a Hagino-Wraith style to provide an expressive computing environment. An inductive (resp. coinductive) datatype consists of a strong type-forming functor accompanied by (1) a collection of constructors (resp. destructors) and (2) a fold (resp, unfold) which is parametrized by state transformations to realize the appropriate universal property. The high complexity of programming exclusively in categorical notation (combinators) warrants the development of a friendlier language isomorphic to the distributive categorical setting. In this paper such a term logic, which is also the programming language of the charity programming system, is described, This logic is first-order and is dictated directly by the underlying categorical semantics, It embodies primitive inductive and coinductive principles which reflect the uniqueness properties of the fold and unfold combinators. Several basic program equivalences are demonstrated to illustrate how these inductive and coinductive principles can be used.
A systematic approach is given for deriving incremental programs from non-incremental programs written in a standard functional programming language. We exploit a number of program analysis and transformation techniqu...
详细信息
A systematic approach is given for deriving incremental programs from non-incremental programs written in a standard functional programming language. We exploit a number of program analysis and transformation techniques and domain-specific knowledge, centered around effective utilization of caching, in order to provide a degree of incrementality not otherwise achievable by a generic incremental evaluator.
暂无评论