Results 1 - 10
of
20
Links: web programming without tiers
- In FMCO 2006, volume 4709 of LNCS
, 2007
"... Abstract. Links is a programming language for web applications that generates code for all three tiers of a web application from a single source, compiling into JavaScript to run on the client and into SQL to run on the database. Links supports rich clients running in what has been dubbed ‘Ajax ’ st ..."
Abstract
-
Cited by 48 (3 self)
- Add to MetaCart
Abstract. Links is a programming language for web applications that generates code for all three tiers of a web application from a single source, compiling into JavaScript to run on the client and into SQL to run on the database. Links supports rich clients running in what has been dubbed ‘Ajax ’ style, and supports concurrent processes with statically-typed message passing. Links is scalable in the sense that session state is preserved in the client rather than the server, in contrast to other approaches such as Java Servlets or PLT Scheme. Client-side concurrency in JavaScript and transfer of computation between client and server are both supported by translation into continuation-passing style. 1
Efficient Static Analysis of XML Paths and Types
, 2008
"... We present an algorithm to solve XPath decision problems under regular tree type constraints and show its use to statically type-check XPath queries. To this end, we prove the decidability of a logic with converse for finite ordered trees whose time complexity is a simple exponential of the size of ..."
Abstract
-
Cited by 44 (28 self)
- Add to MetaCart
We present an algorithm to solve XPath decision problems under regular tree type constraints and show its use to statically type-check XPath queries. To this end, we prove the decidability of a logic with converse for finite ordered trees whose time complexity is a simple exponential of the size of a formula. The logic corresponds to the alternation free modal µ-calculus without greatest fixpoint, restricted to finite trees, and where formulas are cycle-free. Our proof method is based on two auxiliary results. First, XML regular tree types and XPath expressions have a linear translation to cycle-free formulas. Second, the least and greatest fixpoints are equivalent for finite trees, hence the logic is closed under negation. Building on these results, we describe a practical, effective system for solving the satisfiability of a formula. The system has been experimented with some decision problems such as XPath emptiness, containment, overlap, and coverage, with or without type constraints. The benefit of the approach is that our system can be effectively used in static analyzers for programming languages
Exact XML type checking in polynomial time
- In ICDT
, 2007
"... f on valid inputs conform to theoutput type? Since XML types are intrinsically more complex than the types found in ..."
Abstract
-
Cited by 24 (3 self)
- Add to MetaCart
f on valid inputs conform to theoutput type? Since XML types are intrinsically more complex than the types found in
The Xtatic experience
- University of Pennsylvania
, 2005
"... Xtatic is a lightweight extension of C ♯ with native support for statically typed XML processing. It features XML trees as built-in values, a refined type system based on regular types in the style of XDuce, and “tree grep”-style regular patterns for traversing and manipulating XML. Previous papers ..."
Abstract
-
Cited by 22 (6 self)
- Add to MetaCart
Xtatic is a lightweight extension of C ♯ with native support for statically typed XML processing. It features XML trees as built-in values, a refined type system based on regular types in the style of XDuce, and “tree grep”-style regular patterns for traversing and manipulating XML. Previous papers on Xtatic have reported results on a number of specific technical issues: basic theoretical properties of an idealized core language, novel compilation algorithms for regular pattern matching, and efficient runtime support for XML processing in the style encouraged by Xtatic. The aim of the present paper is to discuss Xtatic—less formally and more holistically—from the perspective of language design. We survey the most significant issues we faced in the design process and evaluate the choices we have made in addressing them. <person> <name>Haruo Hosoya</name>
Type checking with XML Schema in XACT
- Presented at Programming Language Technologies for XML, PLAN-X ’06
, 2005
"... XACT is an extension of Java for making type-safe XML transfor-mations. Unlike other approaches, XACT provides a programming model based on XML templates and XPath together with a typechecker based on data-flow analysis. We show how to extend the data-flow analysis technique used inthe XACT system t ..."
Abstract
-
Cited by 9 (6 self)
- Add to MetaCart
XACT is an extension of Java for making type-safe XML transfor-mations. Unlike other approaches, XACT provides a programming model based on XML templates and XPath together with a typechecker based on data-flow analysis. We show how to extend the data-flow analysis technique used inthe XACT system to support XML Schema as type formalism. The technique is able to model advanced features, such as type deriva-tions and overloaded local element declarations, and also datatypes of attribute values and character data. Moreover, we introduce op-tional type annotations to improve modularity of the type checking.
Adding updates to XQuery: Semantics, optimization, and static analysis
- In XIME-P’05
, 2005
"... The need to extend XQuery to support updates has been recognized both in the research and the standards community. Several language proposals and prototype implementations have been put forward, and update language requirements are being defined within the W3C. Most proposals center around the use o ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
The need to extend XQuery to support updates has been recognized both in the research and the standards community. Several language proposals and prototype implementations have been put forward, and update language requirements are being defined within the W3C. Most proposals center around the use of update primitives applied to XQuery expressions, along with a variant of the FLWR loop construct binding variables within a block of basic update statements. In defining a precise semantics for such statements a number of issues arise: one must decide how conflicts among updates are to be resolved, and how query evaluation interacts with update application. In this work we provide a framework for defining alternative semantics for updates, and identify within this space what is (thus far) the consensus choice: that semantics involves a twostage execution process, in which query evaluation is performed first, after which a generated sequence of concrete updates is applied in a fixed order determined by query output. This results in a clean deterministic semantics which facilitates analysis. A drawback is that the evaluation of the language can be inefficient. One would prefer to perform updates eagerly before further evaluation, or to re-order the update operations. We focus on an optimization of the “standard semantics”, in which updates are performed as soon as they are generated. We present a static analysis for determining when this optimization can be exploited. Experiments on the implementation of this analysis, implemented on top of Galax, show that the overhead is minimal. 1
Identifying Query Incompatibilities with Evolving XML Schemas
"... During the life cycle of an XML application, both schemas and queries may change from one version to another. Schema evolutions may affect query results and potentially the validity of produced data. Nowadays, a challenge is to assess and accommodate the impact of these changes in evolving XML appli ..."
Abstract
-
Cited by 8 (6 self)
- Add to MetaCart
During the life cycle of an XML application, both schemas and queries may change from one version to another. Schema evolutions may affect query results and potentially the validity of produced data. Nowadays, a challenge is to assess and accommodate the impact of these changes in evolving XML applications. Such questions arise naturally in XML static analyzers. These analyzers often rely on decision procedures such as inclusion between XML schemas, query containment and satisfiability. However, existing decision procedures cannot be used directly in this context. The reason is that they are unable to distinguish information related to the evolution from information corresponding to bugs. This paper proposes a predicate language within a logical framework that can be used to make this distinction. We present a system for monitoring the effect of schema evolutions on the set of admissible documents and on the results of queries. The system is very powerful in analyzing various scenarios where the result of a query may not be anymore what was expected. Specifically, the system is based on a set of predicates which allow a fine-grained analysis for a wide range of forward and backward compatibility issues. Moreover, the system can produce counterexamples and witness documents which are useful for debugging purposes. The current implementation has been tested with realistic use cases, where it allows identifying queries that must be reformulated in order to produce the expected results across successive schema versions.
XML transformation by treewalking transducers with invisible pebbles
- In PODS
, 2007
"... The pebble tree automaton and the pebble tree transducer are enhanced by additionally allowing an unbounded number of ‘invisible ’ pebbles (as opposed to the usual ‘visible’ ones). The resulting pebble tree automata recognize the regular tree languages (i.e., can validate all generalized DTD’s) and ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
The pebble tree automaton and the pebble tree transducer are enhanced by additionally allowing an unbounded number of ‘invisible ’ pebbles (as opposed to the usual ‘visible’ ones). The resulting pebble tree automata recognize the regular tree languages (i.e., can validate all generalized DTD’s) and hence can find all matches of MSO definable n-ary patterns. Moreover, when viewed as a navigational device, they lead to an XPath-like formalism that has a path expression for every MSO definable binary pattern. The resulting pebble tree transducers can apply arbitrary MSO definable tests to (the observable part of) their configurations, they (still) have a decidable typechecking problem, and they can model the recursion mechanism of XSLT. The time complexity of the typechecking problem for conjunctive queries that use MSO definable binary patterns can often be reduced through the use of invisible pebbles.
The essence of form abstraction
- In APLAS
, 2008
"... Abstract. Abstraction is the cornerstone of high-level programming; HTML forms are the principal medium of web interaction. However, most web programming environments do not support abstraction of form components, leading to a lack of compositionality. Using a semantics based on idioms, we show how ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
Abstract. Abstraction is the cornerstone of high-level programming; HTML forms are the principal medium of web interaction. However, most web programming environments do not support abstraction of form components, leading to a lack of compositionality. Using a semantics based on idioms, we show how to support compositional form construction and give a convenient syntax. 1

