arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1701.08124cs.PLcs.SE
收藏

软件语言库中的关系维护

Relationship Maintenance in Software Language Repositories

Ralf Lämmel

摘要:

这项研究的背景是测试和构建软件系统,特别是软件语言库(SLR),即,包含语言处理组件的存储库(解释器、翻译器、分析器、Transformers、漂亮的打印机等)。SLR通常用于开发和使用元编程系统、语言工作台、语言定义框架、可执行语义框架和建模框架。这项工作是调查测试和建设SLR的方式,仓库被视为一个集合的语言类型的工件被相关的应用程序的语言类型的功能或关系,服务于语言处理。语言的概念在广义上被用来包括基于文本、树、图的语言以及基于交换格式的表示和用于序列化的专有格式。这项研究的总体方法是由一个复杂的案例研究驱动的语言设计,即,一个特定的SLR具有大量的处理语言和语言处理器,以及在表示类型和实现语言方面值得注意的异质性。通过我们的研究所获得的知识是最好的理解为一个声明性的语言设计的回归测试和构建管理,我们介绍了相应的语言Ueber与可执行的语义,保持语言类型的工件之间的关系在SLR。研究报告的基础是全面的、正式的、可执行的Ueber语言的(基于逻辑编程的)定义及其在SLR YAS管理中的系统应用,该管理由数百种语言定义和处理组件组成(如解释器和转换)超过30种语言(不包括不同的表示类型),Prolog,Haskell,Java和Python被用作实现语言。这项工作的重要性源于回归测试和构建管理所隐含的巨大成本,以及SLR的复杂性,这需要帮助理解的方法。

英文摘要:

The context of this research is testing and building software systems and, specifically, software language repositories (SLRs), i.e., repositories with components for language processing (interpreters, translators, analyzers, transformers, pretty printers, etc.). SLRs are typically set up for developing and using metaprogramming systems, language workbenches, language definition frameworks, executable semantic frameworks, and modeling frameworks. This work is an inquiry into testing and building SLRs in a manner that the repository is seen as a collection of language-typed artifacts being related by the applications of language-typed functions or relations which serve language processing. The notion of language is used in a broad sense to include text-, tree-, graph-based languages as well as representations based on interchange formats and also proprietary formats for serialization. The overall approach underlying this research is one of language design driven by a complex case study, i.e., a specific SLR with a significant number of processed languages and language processors as well as a noteworthy heterogeneity in terms of representation types and implementation languages. The knowledge gained by our research is best understood as a declarative language design for regression testing and build management, we introduce a corresponding language Ueber with an executable semantics which maintains relationships between language-typed artifacts in an SLR. The grounding of the reported research is based on the comprehensive, formal, executable (logic programming-based) definition of the Ueber language and its systematic application to the management of the SLR YAS which consists of hundreds of language definition and processing components (such as interpreters and transformations) for more than thirty languages (not counting different representation types) with Prolog, Haskell, Java, and Python being used as implementation languages. The importance of this work follows from the significant costs implied by regression testing and build management and also from the complexity of SLRs which calls for means to help with understanding.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑