首页 . 理学 . 计算机科学技术 . 计算机软件 . 软件基础理论 . 形式化开发方法

程序变换

/program transportation/
条目作者冯新宇

冯新宇

最后更新 2024-12-05
浏览 76
最后更新 2024-12-05
浏览 76
0 意见反馈 条目引用

将一种程序输入变换为另一种程序输出的操作。

英文名称
program transportation
所属学科
计算机科学技术

将输入程序称为源程序,输出程序称为目标程序。相应地,源程序所使用的程序设计语言被称为源语言,目标程序的语言被称为目标语言。程序变换的源语言和目标语言可以是同一种语言,也可以是不同语言。编译和程序优化可以看作是两种典型的程序变换,前者源语言和目标语言不同,后者相同。

程序变换大多由相应的程序变换算法和系统自动完成。程序变换系统往往包括源语言的编译器前端作为其子系统,对源程序进行语法分析并将其转化为系统内部表示(如抽象语法树)。此外,程序变换系统往往还需要各种程序分析技术,以确保目标程序和源程序的行为的一致性。最终,需要将目标程序的系统内部表示反向转化为符合目标语言语法的合法程序。

程序变换在软件工程领域有着重要的应用,除了上述的编译和程序优化外,还包括程序合成、不同语言之间的程序翻译、反向工程、程序正则化、程序混淆(program obfuscation)、文档生成和程序可视化等。

大多数程序变换要求要么源程序和目标程序等价,即它们分别在源语言和目标语言的语义定义下具有相同的行为;要么目标程序是对源程序的精化,即目标程序的行为比源程序行为具有更强的确定性。

相关条目

阅读历史

    意见反馈

    提 交

    感谢您的反馈

    我们会尽快处理您的反馈!
    您可以进入个人中心的反馈栏目查看反馈详情。
    谢谢!