Download:
|
by Haruo Hosoya, J Vouillon, Benjamin C. Pierce
In Proceedings of the International Conference on Functional Programming (ICFP
http://www.cis.upenn.edu/~bcpierce/papers/regsub.ps
Add To MetaCart
Abstract:
We propose regular expression types as a foundation for XML processing languages. Regular expression types are a natural generalization of Document Type Definitions (DTDs), describing structures in XML documents using regular expression operators (i.e., *,?,---, etc.) and supporting a simple but powerful notion of subtyping. The decision problem for the subtype relation is EXPTIME-hard, but it can be checked quite efficiently in many cases of practical interest. The subtyping algorithm developed here is a variant of Aiken and Murphy's setinclusion constraint solver, to which are added several optimizations and two new properties: (1) our algorithm is provably complete, and (2) it allows a useful "subtagging" relation between nodes with different labels in XML trees.
Citations
|
2770
|
Introduction to Automata Theory, Language, and Computation
– Hopcroft, Ullman
- 1979
|
|
303
|
Subtyping recursive types
– Amadio, Cardelli
- 1993
|
|
146
|
Cayenne - a Language with Dependent Types
– Augustsson
- 1998
|
|
114
|
Typechecking for XML transformers
– Milo, Suciu, et al.
|
|
110
|
XDuce: A typed XML processing language
– Hosoya, Pierce
|
|
65
|
Haskell and xml: generic combinators or type-based translation
– Wallace, Runciman
- 1999
|
|
52
|
Deciding equivalence of finite tree automata
– Seidl
- 1990
|
|
49
|
Coinductive axiomatization of recursive type equality and subtyping
– Brandt, Henglein
- 1997
|
|
48
|
and XML: Generic combinators or typebased translation
– Haskell
- 1999
|
|
44
|
Implementing regular tree expressions
– Aiken, Murphy
- 1991
|
|
33
|
Comparing hierarchical data in external memory
– Chawathe
- 1999
|
|
27
|
Solving systems of set constraints (extended abstract
– Aiken, Wimmers
- 1992
|
|
23
|
Union Types for Semistructured Data
– Buneman, Pierce
- 1999
|
|
23
|
Recursive subtyping revealed
– Gapeyev, Levin, et al.
- 2000
|
|
21
|
Using YAT to Build a Web Server
– Sim'eon, Cluet
- 1998
|
|
17
|
Making setconstraint program analyses scale
– Fhndrich, Aiken
- 1996
|
|
12
|
XMλ: A functional programming language for constructing and manipulating XML documents. Unpublished paper
– Shields, Meijer
- 2000
|
|
11
|
Tree automata techniques and applications. Draft book; available electronically on http://www.grappa.univ-lille3.fr/tata
– Comon, Dauchet, et al.
- 2002
|
|
3
|
et al. The Objective Caml system
– Leroy, Vouillon, et al.
- 1996
|
|
2
|
Tree automata and pattern matching
– Hosoya, Pierce
- 2000
|
|
2
|
types for semistructured data
– Union
- 1999
|
|
1
|
Gopalan Nadathur and A. Scedrov. Lambda prolog: An extended logic programming language
– Felty, Gunter, et al.
- 1988
|
|
1
|
Gopalan Nadathur and Andre Scedrov. Lambda prolog: An extended logic programming language
– Felty, Gunter, et al.
- 1988
|
|
1
|
Recursive Types for DUMMIES
– Gapeyev, Levin, et al.
- 2000
|