Deforestation: transforming programs to eliminate trees
Proceedings of the Second European Symposium on Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Regular expression types for XML
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Regular expression pattern matching for XML
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
Typechecking for XML transformers
Journal of Computer and System Sciences - Special issue on PODS 2000
CDuce: an XML-centric general-purpose language
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Journal of Functional Programming
Practical experiments with regular approximation of context-free languages
Computational Linguistics - Special issue on finite-state methods in NLP
Parametric polymorphism for XML
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
XML type checking with macro tree transducers
Proceedings of the twenty-fourth ACM SIGMOD-SIGACT-SIGART symposium on Principles of database systems
Polymorphic regular tree types and patterns
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
Scrap your boilerplate with XPath-like combinators
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types
Journal of the ACM (JACM)
A Type-Safe Embedding of XDuce into ML
Electronic Notes in Theoretical Computer Science (ENTCS)
Towards practical typechecking for macro tree transducers
DBPL'07 Proceedings of the 11th international conference on Database programming languages
Exact XML type checking in polynomial time
ICDT'07 Proceedings of the 11th international conference on Database Theory
Type-based optimization for regular patterns
DBPL'05 Proceedings of the 10th international conference on Database Programming Languages
A full pattern-based paradigm for XML query processing
PADL'05 Proceedings of the 7th international conference on Practical Aspects of Declarative Languages
Parametric polymorphism for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
Identifying query incompatibilities with evolving XML schemas
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
Impact of XML Schema Evolution
ACM Transactions on Internet Technology (TOIT)
Set-theoretic foundation of parametric polymorphism and subtyping
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Static and dynamic semantics of NoSQL languages
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hi-index | 0.00 |
XML transformations are very sensitive to types: XML types describe the tags and attributes of XML elements as well as the number, kind, and order of their sub-elements. Therefore, operations, even simple ones, that modify these features may affect the types of documents. Operations on XML documents are performed by iterators that, to be useful, need to be typed by a kind of polymorphism that goes beyond what currently exists. For this reason these iterators are not programmed but, rather, hard-coded in the languages. However, this approach soon reaches its limits, as the hard-coded iterators cannot cover fairly standard usage scenarios. As a solution to this problem we propose a generic language to define iterators for XML data. This language can either be used as a compilation target (e.g., for XPATH) or it can be grafted on any statically typed host programming language (as long as this has product types) to endow it with XML processing capabilities. We show that our language mostly offers the required degree of polymorphism, study its formal properties, and show its expressiveness and practical impact by providing several usage examples and encodings.