Component-Based Description of Programming Languages

Component-Based Description of Programming Languages
复制标题

编程语言的基于组件的描述

DOI:
--
复制
发表时间:
2008
期刊:
BCS International Academic Conference
影响因子:
--
通讯作者:
Peter D. Mosses
Peter D. Mosses
中科院分区:
--
文献类型:
--
作者:
Peter D. Mosses

文献摘要

被引文献

相似文献

在过去的四十年里,程序设计语言的形式化描述的研究取得了一些重大成就。这些包括完整的主要编程语言的正式语法和语义,以及可能包含在未来语言中的新功能的理论基础。尽管如此,使用传统框架对任何重要的编程语言进行完全正式的、有效的描述仍然是一项巨大的努力,与其预期的好处不成比例。这种令人失望的情况的原因,我们的诊断突出了两个主要的缺陷,在常规框架中的正式语言描述的实用方面:缺乏可重用的组件,和穷人的工具支持。 建议的补救措施的一部分是彻底转变为一个新的组件为基础的范式的发展完整的语言描述,基于简单的接口之间的描述的语法和语义方面,并采用框架,允许独立的描述个别编程构造。为通用编程结构引入了独立于语言的符号,最大限度地提高了组件的可重用性。正在使用ASF+SDF元环境开发对基于组件的语言描述的工具支持;目的是提供一个有效的基于组件的工作台,用于设计和实现未来的编程语言,并提供一个在线存储库,用于验证编程结构和语言的正式描述。
Research in formal description of programming languages over the past four decades has led to some significant achievements. These include formal syntax and semantics for complete major programming languages, and theoretical foundations for novel features that might be included in future languages. Nevertheless, to give a completely formal, validated description of any significant programming language using the conventional frameworks remains an immense effort, disproportionate to its perceived benefits. Our diagnosis of the causes of this disappointing situation highlights two major deficiencies in the pragmatic aspects of formal language descriptions in conventional frameworks: lack of reusable components, and poor tool support. Part of the proposed remedy is a radical shift to a novel component-based paradigm for the development of complete language descriptions, based on simple interfaces between descriptions of syntactic and semantic aspects, and employing frameworks that allow independent description of individual programming constructs. The introduction of a language-independent notation for common programming constructs maximises the reusability of components. Tool support for component-based language description is being developed using the ASF+SDF Meta-Environment; the aim is to provide an efficient component-based workbench for use in design and implementation of future programming languages, accompanied by an online repository for validated formal descriptions of programming constructs and languages.