24、模板驱动的代码生成:Jeeves框架详解

模板驱动的代码生成:Jeeves框架详解

1. 代码生成概述

程序员在日常工作中常常会创建和使用各种小型的规范语言,像数据库模式、资源文件、用户界面规范以及网络接口规范等。这些规范语言能够让我们以高级、简洁且声明式的方式表达需求。例如,在Motif的用户界面语言(UIL)中,只需简单声明在表单内放置两个按钮,就能避免用C语言编写约20条语句来实现相同效果。

在规范语言与传统系统编程语言(如C或C++)之间的语义差距可以通过两种方式来弥合:
- 方式一 :C应用程序将规范视为元数据,即应用程序嵌入规范解析器,并使用C数据结构和内部API与之交换信息。
- 方式二 :使用独立的编译器将规范转换为C代码,然后将其链接到应用程序,RPC系统和CASE工具通常采用这种方式。

接下来,我们将研究第二种方式,并构建一个名为Jeeves的可配置代码生成框架。

2. 现有代码生成器的局限性

目前常见的代码生成器大多是特定领域的,并且在输出能力方面存在不必要的局限性,以下是一些具体示例:
| 代码生成器类型 | 说明 | 局限性 |
| ---- | ---- | ---- |
| RPC | 允许在不同地址空间调用过程,通过IDL编译器生成客户端和服务器端的C代码。 | 商业IDL编译器输出代码缺乏灵活性,难以插入监控探针或进行数据加密,修改输出代码易被覆盖。 |
| CASE | 从对象模型规范生成C代码,可生成数据库表维护代码和C++类代码。 | 只能生成固定模式的代码,难以适应新的数据库类型。 |
| P

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值