We are pleased to announce the availability of three new technical reports
on the Xtatic programming language. All three reports, as well as earlier
papers and talks on the language design and implementation, are available
from:
http://www.cis.upenn.edu/~bcpierce/papers/index.shtml#Xtatic
Titles and abstracts follow.
Share and enjoy,
- Benjamin Pierce
----------------------------------------------------------------------------------------
The Xtatic Experience
by Vladimir Gapeyev, Michael Y. Levin, Benjamin C. Pierce, and Alan Schmitt
MS-CIS-04-24
ABSTRACT: 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.
----------------------------------------------------------------------------------------
XML Goes Native: Run-time Representations for Xtatic
by Vladimir Gapeyev, Michael Y. Levin, Benjamin C. Pierce, and Alan Schmitt
MS-CIS-04-23
ABSTRACT: Xtatic} is a lightweight extension of C# offering native support
for statically typed XML processing. XML trees are built-in values in
Xtatic, and static analysis of the trees manipulated by programs is part
of the ordinary job of the typechecker. ``Tree grep'' pattern matching is
used to investigate and transform XML trees.
Xtatic's surface syntax and type system are tightly integrated with those
of C#. Beneath the hood, however, an implementation of Xtatic must
address a number of issues common to any language supporting a declarative
style of XML processing (e.g., XQuery, XSLT, XDuce, CDuce, Xact, Xen,
etc.). In particular, it must provide representations for XML tags,
trees, and textual data that use memory efficiently, support efficient
pattern matching, allow maximal sharing of common substructures, and
permit separate compilation. We analyze these representation choices in
detail and describe the solutions used by the Xtatic compiler.
----------------------------------------------------------------------------------------
Paths Into Patterns
by Vladimir Gapeyev and Benjamin C. Pierce
MS-CIS-04-25
ABSTRACT: The XML Path Language XPath is an industry standard notation for
addressing parts of an XML document. It is supported by many XML
processing libraries and has been used as the foundation for several
dedicated XML processing languages. Regular patterns, an alternative way
of investigating and destructing XML documents, were first proposed in the
XDuce language and feature in a number of its descendants.
The processing styles offered by XPath and by regular patterns are each
quite convenient for certain sorts of tasks, and the designer of a future
XML processing language might well like to provide both. This designer
might wonder, however, to what extent these mechanisms can be based on a
common foundation. Can one be implemented by translating it into the other?
Can aspects of both be combined into a single notation?
As a first step toward addressing these questions, we show in this paper
that a language closely related to the ``downward axis'' fragment of XPath
can be accurately translated into ambiguous XDuce-style regular patterns
with a ``collect all matches'' interpretation.