Sacha Berger:
Tim Furche (editor):
Initial Specification of a Language Extension with Types and Type Checking.

Complete Text [
.pdf, 1.67MB]
In: (I4-D16)

Types are a useful mechanism for early error detection and optimization of any programming language. Semi-structured query evaluation as in Xcerpt needs to be able to cope without schema information or types, in contrast to the relational case. Nevertheless, if available, type information enables query optimization well beyond what is possible in its absence. Furthermore, since semi-structured data such as XML allows diverging types, querying by type becomes a desirable feature of XML query languages, cf. XQuery’s typed queries. In this deliverable, we discuss joint work with I3 on typing in the Xcerpt language. The two working groups have jointly developed two approaches for extending Xcerpt with type information and type checking: The first is guided by the principle of least interference, providing typing for Xcerpt without any changes to the language itself. Type annotations for data and programs is provided by external means. It uses an abstraction of standard XML schema languages such as DTDs and XML schema as tree schemata. The second integrates closely with Xcerpt programs allowing finer granular type annotations. It is also unique in the support for graph schemata rather than tree schemata, allowing type checking also for Xcerpt references. To support type checking with graph schemata, a novel schema language, called R2G2 is introduced that allows for the description of graph schemata.



	url = {}