将任何程序转换为语义上等效的程序

将任何程序转换为语义上等效的程序,第1张

概述我最近发现这个定理 here,(在底部): 任何程序都可以转换为一个语义等效的程序,该程序包含一个while循环内的一个switch语句. 文章继续说: 这个定理的必然结果是任何程序都可以重写为一个程序,该程序由一个只包含条件语句的递归函数组成 我的问题是,这些定理今天都适用吗?同样改变计划是否会获得任何好处?我的意思是说,这样的代码是否经过优化? (虽然递归调用较慢,但我知道) 从here开始, 我最近发现这个定理 here,(在底部):

任何程序都可以转换为一个语义等效的程序,该程序包含一个while循环内的一个switch语句.

文章继续说:

这个定理的必然结果是任何程序都可以重写为一个程序,该程序由一个只包含条件语句的递归函数组成

我的问题是,这些定理今天都适用吗?同样改变计划是否会获得任何好处?我的意思是说,这样的代码是否经过优化? (虽然递归调用较慢,但我知道)

从here开始,我读到,在编译器优化后,开关案例几乎总是更快.这有什么区别吗. ?

PS:我试图从@L_502_2@了解编译器优化

我添加了c标签,因为这是我见过的唯一一种优化的语言.

解决方法 这是真的.图灵机本质上是一个关于符号的switch语句,它永远重复,因此它直接基于图灵机 – 计算一切. switch语句只是一堆条件,所以你可以清楚地把这样的程序写成一个只有条件的循环.一旦你有了这个,从递归开始循环很容易,尽管如果你的语言没有真正的词法作用域,你可能不得不将很多状态变量作为参数传递.

在实践中没有理由这样做.这些程序通常比原件运行得慢,并且可能占用更多空间.那么为什么你可能会减慢你的程序速度,和/或使其负载图像更大?

唯一有意义的地方是你打算混淆代码.这种技术通常用作“控制流混淆”.

总结

以上是内存溢出为你收集整理的将任何程序转换为语义上等效的程序全部内容,希望文章能够帮你解决将任何程序转换为语义上等效的程序所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1255606.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存