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

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

1. 代码生成概述

程序员在日常工作中经常会创建和使用小型的规范语言,例如数据库模式、资源文件(如Unix中的.rc文件)、用户界面规范(如Motif UIL文件)以及网络接口规范(如RPC或CORBA IDL文件)等。这些规范语言能让我们以高级、紧凑且声明式的格式来表述需求。比如在Motif的UIL中,只需简单声明在表单中添加两个按钮,就能避免用C语言编写约20条语句来实现相同效果。

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

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

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

目前的代码生成器大多是特定领域的,并且在输出能力方面存在不必要的局限性,以下是一些具体例子:
| 工具类型 | 特点 | 局限性 |
| ---- | ---- | ---- |
| RPC | 允许在不同地址空间(可能是不同机器)调用过程,通过IDL编译器生成客户端和服务器端的C代码 | 商业IDL编译器在更改输出代码方面缺乏灵活性,难以插入监控网络性能或审计数据的探针,也难以对数据进行透明加密,且手动更改的代码会在下次运行编译器时被覆盖 |
| CASE |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值