Results 1 - 10
of
47
Automata theory for XML researchers
- Sigmod Record
, 2002
"... this paper is limited in two ways. It assumes that the element names of XML documents are from a finite and known set and it ignores the data values in the leaf nodes and attributes of XML documents. For this reason, the work of Kaminski and Francez [11] on automata on infinite alphabets has been re ..."
Abstract
-
Cited by 71 (8 self)
- Add to MetaCart
this paper is limited in two ways. It assumes that the element names of XML documents are from a finite and known set and it ignores the data values in the leaf nodes and attributes of XML documents. For this reason, the work of Kaminski and Francez [11] on automata on infinite alphabets has been reexamined from an XML perspective [28, 23]
Static Caching for Incremental Computation
- ACM Trans. Program. Lang. Syst
, 1998
"... A systematic approach is given for deriving incremental programs that exploit caching. The cache-and-prune method presented in the article consists of three stages: (I) the original program is extended to cache the results of all its intermediate subcomputations as well as the final result, (II) the ..."
Abstract
-
Cited by 42 (19 self)
- Add to MetaCart
A systematic approach is given for deriving incremental programs that exploit caching. The cache-and-prune method presented in the article consists of three stages: (I) the original program is extended to cache the results of all its intermediate subcomputations as well as the final result, (II) the extended program is incrementalized so that computation on a new input can use all intermediate results on an old input, %using existing techniques, and (III) unused results cached by the extended program and maintained by the incremental program are pruned away, leaving a pruned extended program that caches only useful intermediate results and a pruned incremental program that uses and maintains only the useful results. All three stages utilize static analyses and semantics-preserving transformations. Stages I and III are simple, clean, and fully automatable. The overall method has a kind of optimality with respect to the techniques used in Stage II. The method can be applied straightforwardly to provide a systematic approach to program improvement via caching.
Temporal Aggregation in Active Database Rules
, 1997
"... An important feature of many advanced active database prototypes is support for rules triggered by complex patterns of events. Their composite event languages provide powerful primitives for event-based temporal reasoning. In fact, with one important exception, their expressive power matches and sur ..."
Abstract
-
Cited by 34 (9 self)
- Add to MetaCart
An important feature of many advanced active database prototypes is support for rules triggered by complex patterns of events. Their composite event languages provide powerful primitives for event-based temporal reasoning. In fact, with one important exception, their expressive power matches and surpasses that of sophisticated languages offered by Time Series Management Systems (TSMS), which have been extensively used for temporal data analysis and knowledge discovery. This exception pertains to temporal aggregation, for which, current active database systems offer only minimal support, if any. In this paper, we introduce the language TREPL, which addresses this problem. The TREPL prototype, under development at UCLA, offers primitives for temporal aggregation that exceed the capabilities of state-of-the-art composite event languages, and are comparable to those of TSMS languages. TREPL also demonstrates a rigorous and general approach to the definition of composite event language sema...
Extensions of Attribute Grammars for Structured Document Queries
, 1999
"... Document specification languages like for instance XML, model documents using extended context-free grammars. These differ from standard context-free grammars in that they allow arbitrary regular expressions on the right-hand side of productions. To query such documents, we introduce a new form of a ..."
Abstract
-
Cited by 29 (6 self)
- Add to MetaCart
Document specification languages like for instance XML, model documents using extended context-free grammars. These differ from standard context-free grammars in that they allow arbitrary regular expressions on the right-hand side of productions. To query such documents, we introduce a new form of attribute grammars (extended AGs) that work directly over extended context-free grammars rather than over standard context-free grammars. Viewed as a query language, extended AGs are particularly relevant as they can take into account the inherent order of the children of a node in a document.
User Interface Specification Using an Enhanced Spreadsheet Model
, 1993
"... This paper describes a new interactive environment for user interface specification which is based on an enhanced spreadsheet model of computation. This environment allows sophisticated graphical user interfaces with dynamic feedback to be implemented with little or no explicit programming. Its goal ..."
Abstract
-
Cited by 25 (0 self)
- Add to MetaCart
This paper describes a new interactive environment for user interface specification which is based on an enhanced spreadsheet model of computation. This environment allows sophisticated graphical user interfaces with dynamic feedback to be implemented with little or no explicit programming. Its goal is to support user interface specification by non-programming experts in human factors, visual design, or the application domain. In addition, the system is designed to allow sophisticated end-users to modify and customize their own interfaces. The system is based on a data flow model of computation. This model is presented to the interface designer in the form of a spreadsheet enhanced with new constructs for easier programming and reuse. These constructs include an improved interactive programming environment, a prototype-instance based inheritance system, support for composition, abstraction, and customization using indirect references, the addition of support for graphical inputs and ou
Beyond Traditional Program Slicing
- In Proceedings of the 1996 International Symposium on Software Testing and Analysis (ISSTA '96
, 1996
"... Traditional program slices are based on variables and statements. Slices consist of statements that potentially affect (or are affected by) the value of a particular variable at a given statement. Two assumptions are implicit in this definition: 1) that variables and statements are concepts of the p ..."
Abstract
-
Cited by 24 (0 self)
- Add to MetaCart
Traditional program slices are based on variables and statements. Slices consist of statements that potentially affect (or are affected by) the value of a particular variable at a given statement. Two assumptions are implicit in this definition: 1) that variables and statements are concepts of the programming language in which the program is written, and 2) that slices consist solely of statements. Generalised slicing is an extension of traditional slicing where variables are replaced by arbitrary named program entities and statements by arbitrary program constructs. A model of generalised slicing is presented that allows the essence of any slicing tool to be reduced to a node marking process operating on a program syntax tree. Slicing tools can thus be implemented in a straight-forward way as reusable modules using tree-based techniques such as attribute grammars. A variety of useful program decompositions are shown to be instances of generalised slicing. Examples include call graph g...
Validating Component Compositions in Software System Generators
- In Proceedings of the Fourth International Conference on Software Reuse
, 1995
"... GenVoca generators synthesize software systems by composing components from reuse libraries. Although GenVoca components can be composed in a vast number of ways, not all compositions are correct. In this paper, we present a model for validating component compositions. The model is based on attribut ..."
Abstract
-
Cited by 22 (7 self)
- Add to MetaCart
GenVoca generators synthesize software systems by composing components from reuse libraries. Although GenVoca components can be composed in a vast number of ways, not all compositions are correct. In this paper, we present a model for validating component compositions. The model is based on attribute grammars and provides a powerful debugging capability of explanation-based error reporting. We demonstrate our results with examples from a GenVoca generator for container data structures. Keywords: software architectures, software system generators, attribute grammars, domain models, GenVoca, software components, explanation-based error reporting. 1 Introduction Software component technologies will play an important role in future software development. Examples of today's componentry include Unix file filters and Visual Basic custom controls (VBXes) [Ude94]. Support for componentry in distributed environments is under development: the Object Management Group's CORBA (Common Object Reque...
Synthesis of Directionality Information for Functional Logic Programs
- Proceedings of the Third International Workshop on Static Analysis, LNCS 724
, 1993
"... . Many Prolog systems offer the facility of calling external functions written in non-logic programming languages. A basic requirement is often that the arguments of the functions must be ground at invocation time, otherwise an error is reported, or the call is delayed until the arguments are su ..."
Abstract
-
Cited by 18 (1 self)
- Add to MetaCart
. Many Prolog systems offer the facility of calling external functions written in non-logic programming languages. A basic requirement is often that the arguments of the functions must be ground at invocation time, otherwise an error is reported, or the call is delayed until the arguments are sufficiently instantiated. The drawback of the latter method is twofold: (1) the arguments might never be instantiated, and (2) the dynamic checks made by the delaying mechanism are expensive. This paper presents a method, which for a given program identifies a class of atomic goals for which (1) will not occur. Moreover, we describe a method for transforming a program into an equivalent program, for which dynamic delays are avoided. 1 Introduction In many Prolog systems, pure logic programs are enriched with mechanisms for invocation of built-in arithmetic and procedures written in non-logic programming languages (like C). This is very useful, or even necessary, for writing realistic ...
Aspect-Oriented Compilers
, 1999
"... . Aspect-oriented programming provides the programmer with means to cross-cut conventional program structures, in particular the class hierarchies of object-oriented programming. This paper studies the use of aspect orientation in structuring syntax directed compilers implemented as attribute gr ..."
Abstract
-
Cited by 17 (2 self)
- Add to MetaCart
. Aspect-oriented programming provides the programmer with means to cross-cut conventional program structures, in particular the class hierarchies of object-oriented programming. This paper studies the use of aspect orientation in structuring syntax directed compilers implemented as attribute grammars. Specifically, it describes a method for specifying definitions of related attributes as `aspects' and treating them as first-class objects, that can be stored, manipulated and combined. It is hoped that this embedding of an aspect-oriented programming style in Haskell provides a stepping stone towards a more general study of the semantics of aspect-oriented programming. 1 Introduction Compilers are often structured by recursion over the abstract syntax of the source language. For each production in the abstract syntax, one defines a function that specifies how a construct is to be translated. The method of structuring compilers in this syntax--directed manner underlies the for...
S-SLD-resolution - An Operational Semantics for Logic Programs with External Procedures
- In Proc. of the 3rd Int. Symposium on Programming Language Implementation and Logic Programming
, 1991
"... This paper presents a new operational semantics for logic programs with external procedures, introduced in [BM88]. A new resolution procedure S-SLD-resolution is defined, in which each step of computation is characterized by a goal and a set of equational constraints, whose satisfiability cannot be ..."
Abstract
-
Cited by 16 (6 self)
- Add to MetaCart
This paper presents a new operational semantics for logic programs with external procedures, introduced in [BM88]. A new resolution procedure S-SLD-resolution is defined, in which each step of computation is characterized by a goal and a set of equational constraints, whose satisfiability cannot be decided with the information at hand. This approach improves the completeness of the resulting system, since further computation may result in the information needed to solve some earlier unsolved constraints. We also state a sufficient condition to distinguish a class of programs where no unsolved constraints will remain at the end of computation. 1 Introduction We will address the problem of defining an operational semantics for logic programs with external procedures, a formalism presented in [BM88, Bon89]. In this approach the external procedures, which can be written in any language, are regarded as "black boxes" that reduce ground terms. Under this assumption an external procedure imp...

