Skip to content

关于本章

1、在前面章节已经描述了compile model,总结了compiler是如何编译生成最终的object file的

2、本章继续深入,探讨C++ compiler编译一个source file的细节,显然这会涉及非常多的内容。

3、对C++而言,它的implementation主要是由compiler来完成。

Compiler的局限

NOTE: 首先介绍compiler的局限性

TODO:

1、需要增加preshing的文章的链接,其中有很多关于这个topic的描述

1、compiler是无法知道function是否会被multithread执行的

2、compiler是无法知道一个variable是否是shared variable,即会被multithread来执行read、write

3、compiler能够在多大程度上了解我们的program: 它不知道multithread。

C++11引入了memory model,给予了programmer解决上述问题的手段。

编译流程

参见 Compile-flow 章节。

Compiler optimization

参见 Optimization 章节。

Implementation of polymorphism

参见 C++\Guide\Polymorphism 章节。