论文部分内容阅读
XML是由W3C提出和维护的数据交换标准,是一种平台无关的数据表示方法。自提出之日起,在很短的时间内,XML渗透到了IT相关的各个领域。随着XML越来越广泛地运用到数据存储和传输领域,如何有效地实现对XML的查询成为互联网发展的重要课题。XQuery是一种功能强大的数据查询语言,适用于查询各种类型的XML数据源,它能够从XML文档中选择并提取数据,进而把查询结果重构为用户所需的新的XML文档。XQuery汲取了多种查询语言的精华,所以,它体现出多种查询语言的优点。XQuery设计优良、使用灵活,预计在不久的将来,XQuery会对XML的应用产生巨大的影响。XQuery是一种强类型语言,它还支持自定义函数、Schema导入等特性。XQuery灵活易用、能够对各种类型XML数据源进行操作,许多组织都致力于XQuery的实现,并从多个方面寻找优化的可能,以提高XQuery的查询处理效率。常见的优化方法是借鉴数据库理论来研究XQuery,如查询重写等基于代数的优化手段。目前对于XQuery的实现方式以解释执行居多,通过将XQuery翻译为查询计划,应用数据库相关理论进行优化,并执行优化了的查询计划。为了进一步提高XQuery查询处理的效率,本课题对XQuery的编译实现进行了研究。
本文设计并实现了一个XQuery语言编译系统,XQC(XQuery Compiler)。该系统在原有XQuery解释执行系统上添加编译后端。本系统引入SECD抽象机模型,将原系统中的查询计划,翻译为基于栈结构的SECD指令序列,进而编译为Java字节码文件,在Java虚拟机上直接加载运行。本文给出了编译系统结构、详细描述了SECD抽象机模型及其指令系统以及目标程序生成算法。