代码生成技术现状与XMDD范式解析
1. 代码生成的现状
1.1 全代码生成的可能性
全代码生成是否可行在很大程度上取决于源语言。挑战在于设计一种语言,它要包含足够的信息以生成完整的代码,同时又不必使其抽象级别与代码保持一致。例如,可执行UML(Executable UML)旨在通过精确定义的动作语义,使用像动作规范语言(ASL)这样的合规动作语言,使UML模型可执行。虽然这种技术改善了代码生成的结果,但代价是模型的抽象程度降低,更具技术性。
1.2 代码生成器的质量保证
代码生成器和其他软件产品一样,需要进行质量保证,如验证和确认(V&V)。代码生成器中的错误可能导致严重问题,如代码无法编译或生成系统出现意外行为。在编译器构建领域,有很多关于V&V的研究,包括编译器验证(如基于定理证明、精化代数、翻译验证、程序检查和携带证明的代码等技术)以及编译器测试。
1.3 代码生成器的验证和测试示例
- 定理证明 :Blech等人使用定理证明来验证状态图到Java子集的翻译,GeneAuto项目使用它来验证从数据流和状态模型生成C代码。
- 翻译验证 :Ryabtsev和Strichman将翻译验证应用于将Simulink模型转换为优化C代码的商业代码生成器。
- 证据-based方法 :Denney和Fischer提出了一种基于证据的方法来认证生成的代码,类似于携带证明的代码的思想。
- 测试架构 <
超级会员免费看
订阅专栏 解锁全文

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



