面向语言的编程

面向语言的编程LOP )是一种软件开发范式,其中“语言”是一个与对象,模块和组件相同的软件构建块,而不是在通用编程语言中解决问题,而是创建一种或首先,有关问题的更多特定于域的语言(DSL),并以这些语言解决问题。首先在马丁·沃德(Martin Ward)1994年面向纸语言的编程中详细描述了面向语言的编程,该编程发表在软件 - 概念和工具上,第15卷,第4期,第147-161页,1994年。

概念

面向语言的编程的概念采用了用户术语捕获需求的方法,然后尝试将实现语言作为用户描述尽可能构成同构,以使要求和实现之间的映射尽可能直接。衡量这种同构的亲密关系是该语言的“冗余”,定义为实施要求独立的要求所需的编辑操作数量。没有假定A-priori是什么是实施新语言的最佳语言。相反,开发人员可以通过分析信息流来创建的选项中进行选择 - 获取了哪些信息,其结构,何时获取,从谁以及从中获得什么。

发展

球拍编程语言RascalMpl旨在从头开始支持面向语言的编程。其他语言工作台工具,例如JetBrains MPSKermetaXtext,提供了设计和实施DSL和面向语言的编程的工具。Erdweg,Sebastian(2013)。 “语言工作台中的艺术状况”。软件语言工程。计算机科学的讲义。卷。 8225.第197–217页。 doi:10.1007/978-3-319-02654-1_11。 ISBN 978-3-319-02653-4。 S2CID 5234848。检索2023年7月4日。

也可以看看