794得票17回答
什么是应用程序二进制接口(ABI)?

我从未清楚地理解什么是ABI。请不要指向维基百科文章。如果我能理解它,我就不会在这里发布如此冗长的帖子了。 这是我对不同接口的看法: 电视遥控器是用户和电视之间的接口。它是一个现有实体,但本身无用(不提供任何功能)。遥控器上每个按钮的所有功能都在电视机中实现。 接口:它是位于“功能”和该...

697得票38回答
学习编写编译器

首选语言: C/C++,Java和Ruby。 我正在寻找一些有用的书籍/教程,以便出于教育目的编写自己的编译器。我最熟悉的是C/C++,Java和Ruby,因此,我更喜欢使用这三种语言中的任何一种来提供资源,但是任何好的资源都可以接受。

635得票18回答
即时编译器(JIT)是什么?

相对于非JIT编译器,JIT编译器具体做什么? 能否简洁易懂地描述一下? JIT编译器会在程序运行时动态编译字节码为本机代码,从而提高程序的执行效率。而非JIT编译器则会在程序启动时将整个程序的字节码编译为本机代码,这可能会导致启动时间延长。

518得票5回答
编译/链接过程是如何工作的?

编译和链接过程是如何工作的? (注:此文旨在成为Stack Overflow C++ FAQ的一部分。如果您想批评提供这种形式的FAQ的想法,那么meta上的这篇发帖就是该去的地方。那个问题的答案将在C++ chatroom中进行监控,FAQ的想法最初就是从那里开始的,所以您的回答很可能会被...

322得票13回答
编译型语言 vs 解释型语言

我试着更好地理解它们的区别。我在网上找到了很多解释,但它们倾向于抽象的差异而不是实际的影响。 我的大部分编程经验都是使用CPython(动态、解释型)和Java(静态、编译型)。然而,我知道还有其他种类的解释型和编译型语言。除了可以从编译型语言编写的程序分发可执行文件的事实外,每种类型都有什...

294得票7回答
Clang和GCC - 哪个可以生成更快的二进制文件?

我目前正在使用GCC,但我最近发现了Clang,并考虑转换。然而有一个决定性的因素-生成的二进制文件的质量(速度、内存占用和可靠性) - 如果gcc -O3可以生成1%更快运行的二进制文件,或者Clang二进制文件的内存占用更大,或仅因编译器错误而失败,则这将成为一项交易破坏者。 Clang...

286得票5回答
为什么Java在连续的整数上使用switch似乎添加了情况会更快?

我正在编写一些Java代码,需要进行高度优化,因为它将在我的主程序逻辑的许多点上调用热函数。这段代码的一部分涉及将double变量乘以任意非负intexponent。一种快速的方法(编辑:但不是最快的可能方法,请参见下面的Update 2)是对exponent switch: double ...

272得票4回答
LL解析和LR解析有什么区别?

有人能给我提供一个简单的 LL 分析和 LR 分析的例子吗?

251得票5回答
编译警告: 没有处理适用于i386架构的文件的规则。

我该如何解决这个警告? [WARN]警告:没有规则处理$(PROJECT_DIR)/MyApp/MessageCell.h文件,类型为sourcecode.objj.h,适用于架构i386。 提示信息指出缺少针对架构i386的源代码处理规则,导致在构建时无法处理指定文件。需要针对此...