The XTATIC Experience

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. Comments University of Pennsylvania Department of Computer and Information Science Technical Report No. MSCIS-04-24. This technical report is available at ScholarlyCommons: http://repository.upenn.edu/cis_reports/25 The Xtatic Experience Vladimir Gapeyev Michael Y. Levin Benjamin C. Pierce Alan Schmitt Technical Report MS-CIS-04-24 Department of Computer and Information Science University of Pennsylvania

[1]  S. Boag,et al.  XQuery 1.0 : An XML query language, W3C Working Draft 12 November 2003 , 2003 .

[2]  Martin Kempa On XML Objects , 2002 .

[3]  Murali Mani,et al.  Taxonomy of XML schema languages using formal language theory , 2005, TOIT.

[4]  Anders Møller,et al.  The Design Space of Type Checkers for XML Transformation Languages , 2004, ICDT.

[5]  Wolfram Schulte,et al.  Unifying Tables, Objects and Documents , 2003 .

[6]  Benjamin C. Pierce,et al.  Type-Based Optimization for Regular Patterns , 2005, DBPL.

[7]  Michael Y. Levin Compiling regular patterns , 2003, ICFP '03.

[8]  Benjamin C. Pierce,et al.  Paths Into Patterns , 2004 .

[9]  Giuseppe Castagna,et al.  Semantic subtyping , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[10]  Christian Kirkegaard,et al.  A Runtime System for XML Transformations in Java , 2004, XSym.

[11]  Eric van der Vlist,et al.  Relax NG , 2003 .

[12]  Christian Kirkegaard,et al.  Static analysis of XML transformations in Java , 2003, IEEE Transactions on Software Engineering.

[13]  Benjamin C. Pierce,et al.  XDuce: A Typed XML Processing Language (Preliminary Report) , 2000, WebDB.

[14]  Giuseppe Castagna,et al.  CDuce: an XML-centric general-purpose language , 2003, ACM SIGPLAN Notices.

[15]  Benjamin C. Pierce,et al.  XDuce: A statically typed XML processing language , 2003, TOIT.

[16]  Benjamin C. Pierce,et al.  XML Goes Native: Run-Time Representations for Xtatic , 2005, CC.

[17]  Erik,et al.  Programming with Circles , Triangles and Rectangles , 2003 .

[18]  Benjamin C. Pierce,et al.  Regular Object Types , 2003, ECOOP.

[19]  Benjamin C. Pierce,et al.  Regular expression types for XML , 2000, TOPL.

[20]  Makoto Murata,et al.  Boolean operations and inclusion test for attribute-element constraints , 2006, Theor. Comput. Sci..

[21]  Haruo Hosaya,et al.  Regular expression filters for XML , 2006, Journal of Functional Programming.

[22]  Rajesh Bordawekar,et al.  XJ: integration of XML processing into java , 2004, WWW Alt. '04.