67 research outputs found

    QL: Object-oriented Queries on Relational Data

    Get PDF
    This paper describes QL, a language for querying complex, potentially recursive data structures. QL compiles to Datalog and runs on a standard relational database, yet it provides familiar-looking object-oriented features such as classes and methods, reinterpreted in logical terms: classes are logical properties describing sets of values, subclassing is implication, and virtual calls are dispatched dynamically by considering the most specific classes containing the receiver. Furthermore, types in QL are prescriptive and actively influence program evaluation rather than just describing it. In combination, these features enable the development of concise queries based on reusable libraries, which are written in a purely declarative style, yet can be efficiently executed even on very large data sets. In particular, we have used QL to implement static analyses for various programming languages, which scale to millions of lines of code

    Contents

    Get PDF
    A trace monitor observes the sequence of actions in a software system, and when it detects that this sequence matches a given pattern, it executes some extra code of its own. Trace monitors are often specified declaratively using patterns based on regular expressions, context free grammars or logical formulae, and then the trace monitor implementation is generated from the specification. Trace monitors are particularly useful for runtime verification, and many variations have been proposed. Despite this intense interest, there have been hardly any systems that implement the idea in its full generality, because it is hard to generate e#cient code from a purely declarative statement of the pattern. This paper identifies and addresses the challenges faced in generating e#cient trace monitors from declarative pattern-based specifications

    Characterising Renaming within OCaml’s Module System: Theory and Implementation

    Get PDF
    We present an abstract, set-theoretic denotational semantics for a significant subset of OCaml and its module system in order to reason about the correctness of renaming value bindings. Our abstract semantics captures information about the binding structure of programs. Crucially for renaming, it also captures information about the relatedness of different declarations that is induced by the use of various different language constructs (e.g. functors, module types and module constraints). Correct renamings are precisely those that preserve this structure. We demonstrate that our semantics allows us to prove various high-level, intuitive properties of renamings. We also show that it is sound with respect to a (domain-theoretic) denotational model of the operational behaviour of programs. This formal framework has been implemented in a prototype refactoring tool for OCaml that performs renamin

    Tiny Publics and Social Worlds—Toward a Sociology of the Local. Gary Alan Fine in Conversation With Reiner Keller

    Get PDF
    Gary Alan FINE gehört weltweit zu den prominentesten Persönlichkeiten der zeitgenössischen soziologischen Ethnografie. In diesem Gespräch spricht er über Einflüsse in seiner akademischen Laufbahn und prägende intellektuelle Entscheidungen. Er gilt als "serieller Ethnograf", der in zahlreichen Feldkontexten gearbeitet hat und dabei einerseits Kleingruppen und eine von Menschen bevölkerte Ethnografie favorisiert, sich andererseits mit Gerüchten, Klatsch und moralischen Geschichten beschäftigt, die in kleinen und größeren Publiken erzählt werden. FINE beschreibt sein theoretisches Kerninteresse als die Untersuchung des Wechselspiels von Struktur, Interaktion und Kultur. In seinem Werk analysiert er die vielfältigen ortsgebundenen Arten und Weisen, in denen Gesellschaft von Menschen in formellen und informellen sozialen Settings verwirklicht wird, angefangen bei Baseballteams über Restaurantküchen oder die Wetterberichterstattung bis hin zum Schachspielen –um nur einige wenige Gegenstände seiner Forschungen zu nennen. Wesentlich beeinflusst durch symbolisch-interaktionistisches Denken und im Rekurs auf weitere wichtige Perspektiven auf soziale Welten plädiert er für eine selbstbewusste Haltung der ethnografischen Forschung und des ethnografischen Schreibens sowie für die Bedeutung der Konzeptarbeit in einer theorie-informierten empirischen Soziologie dessen, was Menschen zusammen tun.Gary Alan FINE is among the most prominent figures in contemporary sociological ethnography worldwide. In this conversation, he talks about influences in his academic career and key intellectual choices. Considered to be a "serial ethnographer" who has worked in multiple settings, his work focuses on small groups and peopled ethnography, as well as on rumors, gossip, and moral story telling in tiny and larger publics. FINE describes his core theoretical interest as residing in the interplay of structure, interaction, and culture and discusses the multiple local ways society is realized by people in formal and informal social settings: ranging from baseball teams, restaurant kitchens, weather reporting to chess players—to name but a few research sites. Influenced by symbolic interactionist thinking and other important approaches to social worlds, he argues for a confident voice of ethnographic research and writing as well as the importance of conceptual work in a theory-informed empirical sociology of what people do together

    Trace monitoring with free variables

    No full text
    EThOS - Electronic Theses Online ServiceGBUnited Kingdo

    A language workbench for implementing your favorite extension to AspectJ

    No full text

    Adding magic to an optimising datalog compiler.

    No full text
    The magic-sets transformation is a useful technique for dramatically improving the performance of complex queries, but it has been observed that this transformation can also drastically reduce the performance of some queries. Successful implementations of magic in previous work require integration with the database optimise!' to make appropriate decisions to guide the transformation (the sideways information-passing strategy, or SIPS). This paper reports on the addition of the magic-sets transformation to a fully automatic optimising compiler from Datalog to SQL with no support from the database opti-miser. We present an algorithm for making a good choice of SIPS using heuristics based on the sizes of relations. To achieve this, we define an abstract interpretation of Datalog programs to estimate the sizes of relations in the program. The effectiveness of our technique is evaluated over a substantial set of over a hundred queries, and in the context of the other optimisations performed by our compiler. It is shown that using the SIPS chosen by our algorithm, query performance is often significantly improved, as expected, but more importantly performance is never significantly degraded on queries that cannot benefit from magic. © Copyright 2008 ACM

    Type inference for datalog and its application to query optimisation.

    No full text
    Certain variants of object-oriented Datalog can be compiled to Datalog with negation. We seek to apply optimisations akin to virtual method resolution (a well-known technique in compiling Java and other OO languages) to improve efficiency of the resulting Datalog programs. The effectiveness of such optimisations strongly depends on the precision of the underlying type inference algorithm. Previous work on type inference for Datalog has focussed on Cartesian abstractions, where the type of each field is computed separately. Such Cartesian type inference is inherently imprecise in the presence of field equalities. We propose a type system where equalities are tracked, and present a type inference algorithm. The algorithm is proved sound. We also prove that it is optimal for Datalog without negation, in the sense that the inferred type is as tight as possible. Extensive experiments with our type-based optimisations, in a commercial implementation of object-oriented Datalog, confirm the benefits of this non-Cartesian type inference algorithm. Copyright 2008 ACM

    On the Semantics of Matching Trace Monitoring Patterns

    No full text
    Abstract. Trace monitor specifications consist of a pattern that is matched against the trace of events of a subject system. We investigate the design choices in defining the semantics of matching patterns against traces. Some systems use an exact-match semantics (where every relevant event must be matched by the pattern), while others employ a skipping semantics (which allows any event to be skipped during matching). The semantics of exact-match is well established; here we give a semantics to skipping also by providing a translation to exact-match. It turns out the translation is not surjective: a pattern language with skipping semantics is strictly less expressive than one with exact-match semantics. That proof suggests the addition of a novel operator to a skipping language that makes it equivalent to exact-match. Another design decision concerns the atoms in patterns: are these unique runtime events, or can multiple atoms match the same runtime event? Many specification formalisms chose predicates for atoms, and then overlap is natural. There are some exceptions, however, and we examine the consequences of that design choice in some depth.
    • …
    corecore