1,369 research outputs found
Aspect-Oriented Programming with Type Classes
We consider the problem of adding aspects to a strongly typed language which supports type classes. We show that type classes as supported by the Glasgow Haskell Compiler can model an AOP style of programming via a simple syntax-directed transformation scheme where AOP programming idioms are mapped to type classes. The drawback of this approach is that we cannot easily advise functions in programs which carry type annotations. We sketch a more principled approach which is free of such problems by combining ideas from intentional type analysis with advanced overloading resolution strategies. Our results show that type-directed static weaving is closely related to type class resolution -- the process of typing and translating type class programs
CHR(PRISM)-based Probabilistic Logic Learning
PRISM is an extension of Prolog with probabilistic predicates and built-in
support for expectation-maximization learning. Constraint Handling Rules (CHR)
is a high-level programming language based on multi-headed multiset rewrite
rules.
In this paper, we introduce a new probabilistic logic formalism, called
CHRiSM, based on a combination of CHR and PRISM. It can be used for high-level
rapid prototyping of complex statistical models by means of "chance rules". The
underlying PRISM system can then be used for several probabilistic inference
tasks, including probability computation and parameter learning. We define the
CHRiSM language in terms of syntax and operational semantics, and illustrate it
with examples. We define the notion of ambiguous programs and define a
distribution semantics for unambiguous programs. Next, we describe an
implementation of CHRiSM, based on CHR(PRISM). We discuss the relation between
CHRiSM and other probabilistic logic programming languages, in particular PCHR.
Finally we identify potential application domains
Safe Compositional Specification of Network Systems With Polymorphic, Constrained Types
In the framework of iBench research project, our previous work created a domain specific language TRAFFIC [6] that facilitates specification, programming, and maintenance of distributed applications over a network. It allows safety property to be formalized in terms of types and subtyping relations. Extending upon our previous work, we add Hindley-Milner style polymorphism [8] with constraints [9] to the type system of TRAFFIC. This allows a programmer to use for-all quantifier to describe types of network components, escalating power and expressiveness of types to a new level that was not possible before with propositional subtyping relations. Furthermore, we design our type system with a pluggable constraint system, so it can adapt to different application needs while maintaining soundness.
In this paper, we show the soundness of the type system, which is not syntax-directed but is easier to do typing derivation. We show that there is an equivalent syntax-directed type system, which is what a type checker program would implement to verify the safety of a network flow. This is followed by discussion on several constraint systems: polymorphism with subtyping constraints, Linear Programming, and Constraint Handling Rules (CHR) [3]. Finally, we provide some examples to illustrate workings of these constraint systems.National Science Foundation (CCR-0205294
FreeCHR: An Algebraic Framework for CHR-Embeddings
We introduce the framework FreeCHR, which formalizes the embedding of
Constraint Handling Rules (CHR) into a host-language, using the concept of
initial algebra semantics from category theory, to establish a high-level
implementation scheme for CHR, as well as a common formalization for both
theory and practice. We propose a lifting of the syntax of CHR via an
endofunctor in the category Set and a lifting of the operational semantics,
using the free algebra, generated by the endofunctor. We then lift the very
abstract operational semantics of CHR into FreeCHR, and give proofs for
soundness and completeness w.r.t. their original definition.Comment: This is the extended version of a paper presented at the 7th
International Joint Conference on Rules and Reasoning (RuleML+RR 2023); minor
revision of section
Towards a Generic Framework to Generate Explanatory Traces of Constraint Solving and Rule-Based Reasoning
In this report, we show how to use the Simple Fluent Calculus (SFC) to
specify generic tracers, i.e. tracers which produce a generic trace. A generic
trace is a trace which can be produced by different implementations of a
software component and used independently from the traced component. This
approach is used to define a method for extending a java based CHRor platform
called CHROME (Constraint Handling Rule Online Model-driven Engine) with an
extensible generic tracer. The method includes a tracer specification in SFC, a
methodology to extend it, and the way to integrate it with CHROME, resulting in
the platform CHROME-REF (for Reasoning Explanation Facilities), which is a
constraint solving and rule based reasoning engine with explanatory traces
Towards a Generic Trace for Rule Based Constraint Reasoning
CHR is a very versatile programming language that allows programmers to
declaratively specify constraint solvers. An important part of the development
of such solvers is in their testing and debugging phases. Current CHR
implementations support those phases by offering tracing facilities with
limited information. In this report, we propose a new trace for CHR which
contains enough information to analyze any aspects of \CHRv\ execution at some
useful abstract level, common to several implementations. %a large family of
rule based solvers. This approach is based on the idea of generic trace. Such a
trace is formally defined as an extension of the semantics of
CHR. We show that it can be derived form the SWI Prolog CHR trace
Reconciling Equational Heterogeneity within a Data Federation
Mappings in most federated databases are conceptualized and implemented as black-box transformations between source schemas and a federated schema. This approach does not allow specific mappings to be declared once and reused in other situations. We present an alternative approach, in which data-level mappings are represented independent of source and federated schemas as a network between “contexts”. This compendious representation expedites the data federation process via mapping reuse and automated mapping composition from simpler mappings. We illustrate the benefits of mapping reuse and composition by using an example that incorporates equational mappings and the application of symbolic equation solving techniques
- …