Your mediators need data conversion!
SIGMOD '98 Proceedings of the 1998 ACM SIGMOD international conference on Management of data
WWW '99 Proceedings of the eighth international conference on World Wide Web
XDuce: A statically typed XML processing language
ACM Transactions on Internet Technology (TOIT)
CDuce: an XML-centric general-purpose language
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
XJ: integration of XML processing into java
Proceedings of the 13th international World Wide Web conference on Alternate track papers & posters
ACM Transactions on Programming Languages and Systems (TOPLAS)
Adaptiveness in well-typed Java bytecode verification
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Journal of Functional Programming
Multi-polymorphic programming in bondi
Proceedings of the 9th ACM SIGPLAN workshop on Generic programming
Hi-index | 0.00 |
Manipulating semistructured data, such as XML, does not fit well within conventional programming languages. A typical manipulation requires finding all occurrences of a structure matching a structured search pattern, whose context may be different in different places, and both aspects cause difficulty. If a special-purpose query language is used to manipulate XML, an interface to a more general programming environment is required, and this interface typically creates runtime overhead for type conversion. However, adding XML manipulation to a general-purpose programming language has proven difficult because of problems associated with expressiveness and typing.We show an alternative approach that handles many kinds of patterns within an existing strongly-typed general-purpose programming language called bondi. The key ideas are to express complex search patterns as structures of simple patterns, pass these complex patterns as parameters to generic data-processing functions and traverse heterogeneous data structures by a generalized form of pattern matching. These ideas are made possible by the language's support for pattern calculus, whose typing on structures and patterns enables path and pattern polymorphism. With this approach, adding a new kind of pattern is just a matter of programming, not language design.