有没有办法将 Ocaml 可执行文件反编译为源代码?

Is there a way to decompile an Ocaml executable file into Source code?

有没有办法将 *.out 可执行 Ocaml 文件完全或部分反编译为源代码?

简短的回答是“不”。 OCaml 没有什么比其他语言更容易做到这一点的。没有标准的 OCAML 工具可以执行此操作,我不希望有。

我不清楚你说的 *.out 是什么意思。您是在谈论本机可执行文件还是字节代码可执行文件?有一个有时名为 ocamldumpobj 的工具可以转储 OCaml 字节码文件的代码。这看起来一点也不像源代码,但它至少是以稍微抽象的形式表示代码。

对于本机可执行文件,您真的不能期望太多。原始源代码经过了很多很多(不可逆转的)转换。您可以使用反汇编程序查看机器代码。同样,这看起来一点也不像来源。

OCaml 编译为本机代码,并且我知道没有反编译器可以将二进制文件反编译为 OCaml。所以在实践中答案是否定的。但是,当然,您可以自己编写一个反编译器。但这不是一件容易的事。