代数方法实现语法扩展:基于语言与转换

0 下载量 189 浏览量 更新于2024-06-18 收藏 660KB PDF 举报
"这篇论文探讨了使用语言代数和转换实现语法扩展的方法,特别是通过一个名为香蕉代数的工具来实现。该方法基于构造性转换验证,确保语法扩展的安全性和有效性。作者提出了一套包括16个运算符的代数系统,用于增量和模块化地扩展已有的语言和转换。这一方法依赖于上下文无关语法来定义源语言和目标语言,且变形技术已被证明在扩展编程语言方面具有足够的表达力。文章的重点在于展示如何通过代数组合实现高度模块化和增量的语言扩展,同时保证转换的静态终止性、语法合法性以及线性时间复杂度。" 本文首先介绍了问题的背景和动机,即通过一个简单的、增量的、模块化的途径来进行语言扩展。这种扩展方式基于构造性转换,这是一种已被广泛验证的语法导向转换形式主义,能够确保转换的安全性和有效性。构造性转换允许用户相对于由上下文无关文法(CFG)定义的源语言和目标语言来指定转换。 作者提出了一种包含16个运算符的语言代数,这些运算符用于构建和组合语言及转换。这种代数是自包含的,因为它允许任何指定的代数项在转换前被简化为构造性变质。这样的设计保留了构造性变质的核心优点,即强安全性(转换总是终止)和高效率(输入输出项保持语法合法性,并且转换的时间复杂度为线性)。 香蕉代数工具是这一理论的实现,它使得用户可以通过组合预先定义的语言和转换来创建新的语言和转换,这种组合过程是增量的和模块化的。为了展示和评估工具的效果,文章中通过多种示例和实验来演示其在语言扩展中的应用。 关键词涵盖了语言学、变换、句法扩展、宏、上下文无关文法、变形以及香蕉代数工具,这些关键词反映了文章讨论的主题和技术。论文的开放访问性质意味着它能为更广泛的读者群体提供理论计算机科学领域的研究成果,尤其是对于那些对语言扩展和转换技术感兴趣的研究者和实践者。 10.1016/j.entcs.2010.08.029 是该论文的DOI,这使得在学术数据库中查找和引用该资源变得更为方便。通过这个DOI,读者可以获取完整的论文和相关引用信息,进一步深入学习和研究语言代数和转换在语法扩展中的应用。