案例研究:jABC 的代码生成器
1. jABC 与代码生成
jABC 不仅是 Genesys 框架的基础,自身也是代码生成的应用领域。jABC 所基于的 XMDD 范式采用单向代码生成方法,避免了往返工程。因此,jABC 需要强大且易用的代码生成工具,以满足其用户(通常是缺乏深厚技术知识的应用专家)的需求。这与 Genesys 方法的基本要求(如完全代码生成、简单性)相契合。
由于 jABC 应用场景广泛,为不同目标平台构建代码生成器提供了机会,每个目标平台都有其特定需求,可作为独立的案例研究。实际上,Genesys 框架本身就是 jABC 的一个应用场景,因为它基于 jABC。用 Genesys 开发代码生成器等同于将 jABC 应用于“代码生成”领域,同时 Genesys 也用于为 jABC 开发代码生成器,两者相互受益。
2. 引导式开发:Java 类提取器
Genesys 的核心思想之一是基于已有的服务和模型迭代、渐进地开发代码生成器。但项目初期,没有现成的服务和模型,也缺乏特定的代码生成工具支持。因此,第一个代码生成器——Java 类提取器,只能从零开始开发,仅使用 jABC 及其插件(如 Tracer)。
Java 类提取器将 jABC 中建模的分层 SLG 转换为 Java 类,该类可通过 main 方法或适当的 API 方法执行。选择 Java 作为目标语言有两个原因:
- 当时所有可用的 SIB 都提供了 Java 实现,便于从生成的 Java 代码中调用 SLG 中使用的服务。
- Tracer 可作为独立的 Java 库用于执行 SLG,能在生成的代码中应用 Tracer 并受益于其特性。 <
超级会员免费看
订阅专栏 解锁全文
25

被折叠的 条评论
为什么被折叠?



