按照软件产品线方法关注域特定语言(DSL)开发是否有意义?
是否有人知道同时创建和维护多个相关域特定语言的任何其他方法?请注意,要支持自定义语言,需要支持多种工具,从解析器,编译器,解释器到当前的IDE技术等。
答案 0 :(得分:1)
我认为按照软件产品线方法关注DSL是有道理的。如果正确定义了DSL,它实际上将定义一个框架,用于在域和它们执行的操作环境中创建应用程序。操作环境,我指的是操作系统,硬件和数据库,以及代码实现DSL的语义或运行时环境。框架和操作环境将是跨产品线重用的工件。您可能必须创建一个操作环境,该环境由多个DSL的运行时环境组成,以支持多个产品系列。
答案 1 :(得分:1)
我们的DMS Software Reengineering Toolkit 完全这个想法。 DMS提供通用解析,树构建,分析(名称解析,控制流分析,数据流分析,调用图和点分析,自定义分析器,任意转换)。它具有各种遗留语言前端,以及一些现成的DSL(例如,HTML,XML,时序逻辑方程,工业控制器语言......),但是对于定义其他DSL具有非常好的支持。
我们使用DMS来构建自定义分析器和转换工具,还使用产品线 generator 。例如,我们为各种语言提供测试覆盖率,分析器,智能差分器和克隆检测......因为DMS使这成为可能。是的,这降低了我们的开发和维护成本,因为这些工具类型中的每一种都直接使用DMS作为基础。从根本上说,它允许语言解析器,分析器和变换器的摊销,不仅可以跨特定语言,而且可以跨越这些语言甚至不同语言的方言。