使用静态字节码分析来确定通过给定方法的所有可能路径是尝试解决停止问题的一种变体吗?

发布于 2024-11-01 04:46:06 字数 278 浏览 0 评论 0原文

是否可以通过读取给定方法的字节码来确定所有可能的执行路径,或者这是否相当于尝试解决暂停问题?如果不能将其简化为停机问题,那么在不跨越尝试解决停机问题的边界的情况下,静态分析能走多远?

相关问题:“查找给定二进制文件中的所有代码相当于停止问题。”真的吗?

Is it possible to determine all the possible execution paths by reading the bytecode of a given method, or will that be equivalent to trying to solve the halting problem? If it can't be reduced to the halting problem, then how far can I go with static analysis without crossing the boundary of trying to solve the halting problem?

Related question: "Finding all the code in a given binary is equivalent to the Halting problem." Really?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清浅ˋ旧时光 2024-11-08 04:46:06

是的,这很容易等同于解决停机问题。考虑以下 if 语句:

if (TuringMachine(x)) then goto fred;

好吧,真的可以去找 Fred 吗?只有能够分析图灵机才能回答这个问题。
为此有一组等效的字节码。

现在,如果唯一的问题是确定所有看似合理的路径,并且您不关心是否会得到一些误报,那么答案是否定的。考虑以下程序:

if (false) then x else y ;

可能的路径: eval(false );do x 和 eval(false);do y 是一个完整的枚举。

如果您想要一个可计算的答案,则必须将循环特殊对待,如零次、一次、两次或某个最大有界迭代次数。如果循环可以永远重复,那么您的某些路径将无限长,并且您无法使用算法和有限时间来报告它们:-{

Yes, this is easily equivalent to solving the halting problem. Consider the following if statement:

if (TuringMachine(x)) then goto fred;

OK, is it really possible to goto fred? You can only answer this question if you can analyze a Turing machine.
There's an equivalent set of bytecodes for this.

Now, if the only problem is to determine all plausible paths, and you don't care if you get some false positives, the answer is No. Consider the following program:

if (false) then x else y ;

The possbile paths: eval(false);do x and eval(false);do y is a complete enumeration.

You have to treat loops specially, as zero, one, two, or some maximum bounded number of iterations, it you want a computable answer. If a loop can repeat forever, some of your paths will be infinitely long and you can't report them with a algorithm and finite time :-{

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文