9、特定领域语言(DSL)开发中的可变性支持与DjDSL系统

特定领域语言(DSL)开发中的可变性支持与DjDSL系统

1. 可变性支持现状

1.1 目标与框架概述

在特定领域建模语言(DSL)的开发中,目标是实现外部和文本形式的DSL组合。主要动机是将数据建模与(特定领域)软件系统的架构(部署)描述符相结合。为实现这一目标,框架支持语言模型聚合、语言嵌入和语言继承等抽象语法层面的操作。抽象语法通过MontiCore语法(ANTLR的LL(k)语法变体)定义,并与UML类模型的变体作为领域模型(UML/P)相链接。

1.2 不同工具和框架介绍

1.2.1 Eco

Eco属于语法导向环境,旨在支持外部和文本DSL。其主要目标是在语言嵌入时支持增量解析。它基于LR解析器生成器,AST节点可延迟绑定到不同子树,每个子树代表另一个嵌套语言。Eco通过具体语法树提供通用语法树接口,每个语言框是一个包含语法、名称绑定规则和语法高亮规则的组合单元,支持扩展和统一。不过,它没有专门的可变性表示或管理,虽适合反应式DSL族开发,但作者强调主动式方法。

1.2.2 MetaDepth

MetaDepth支持基于元模型作为抽象语法模型的外部和文本DSL组合,涵盖抽象语法(AS)、具体语法(CS)和行为定义(PI)的范围。行为定义作为操作附加到元模型类,其主体以EOL程序实现。主要组合方式是基于Epsilon系列模型管理语言的模型模板和模型模板组合。模板实例化后,具体语法模型会转换为ANTLR语法和相关解析器。除模板配置外,未涉及可变性管理。

1.2.3 YAJCo

YAJCo将抽象语法和具体语法定义分开。抽象语法通过Java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值