【发布时间】:2012-01-31 12:36:44
【问题描述】:
我发现了解给定软件语言的编译方式是了解最佳实践和充分利用该语言的关键。对于 C++,这似乎是双重事实。是否有从编译器的角度描述 C++ 的好的入门或文档(对于凡人)? (显然每个编译器都有点不同。)
我认为在 Stroustrup 的书的开头可能有类似的内容。
【问题讨论】:
-
并不是我在阻止您对编译器如何工作的好奇心,而是我认为您对“最佳实践”有错误的想法。最佳实践并不是要了解编译器的内部结构。它是关于可维护性、可靠性和生产力的编程。 C++ 的最佳实践适用于所有编译器,并且经常溢出到其他编程语言。
-
@EmileCormier - 我同意;但是/例如,我发现在某些/许多情况下,如果人们查看给定的最佳实践并询问“为什么”,最终会达到规范或编译器的一个方面,该方面规定了人们想要鼓励或减轻的某种行为.
-
@LuchianGrigore - 谢谢你的链接。它肯定回答了部分问题。我正在寻找更具描述性的东西。
-
@Colin:我的书架上有 Meyers 和 Sutter 编写的每一本 C++“最佳实践”书籍,但我没有一次将编译器实现细节视为特定指南的基本原理。您说您发现许多情况下编译器的实现解释了最佳实践。愿意举个例子吗? :)
-
@Colin:别等了,我可能错了。 :-) 通过引用传递大对象将是最佳实践的一个示例,这是由于编译器的内部行为所致。另一种方法是避免过深和过宽的递归,这种递归可能会消耗所有堆栈内存,其中堆栈内存是编译器实现的细节。
标签: c++