1,ideal Lang
计算机科学,在程序设计语言上的发展,整体处在相对低级的阶段,主要是相对于 ideal Language 而言的。
这个世界上存在一种语言,及其编译器,它能够达到一个效果:
人类写得任何一段代码,ideal-compiler 都能够从程序最高阶同义的层面,生成效率最高的二进制 obj 文件。
我们首先要承认,
(1)人类并没有发明ideal Language;
(2)ideal Language 又肯定是可以存在的;
(3)但 ideal Language 确实还发明不出来。
2,实际的语言
基于 ideal Lang 的未出现,相当于我们承认了这样一个事实,任何编程语言的程序设计,都必须考虑它运行之上的目标机器和系统软件。
那么,在这个层面上,C++ 就是整个计算机科学
运行效率,开发效率,各种语法背后的机制,大量的 言规范本身的 api,都需要透视整个计算机系统来达到对 C++ 高效的应用,和各种错误的避免与解决。
STL 沉淀了最经典的数据结构与算法
模版增强了预编译器的作用
多态实现的原理
封装效果的实现
异常处理的产生与处理
多姿多彩的编译选项的实现原理
多线程机制的实现
原子操作的实现
这些工具怎么用是最佳实践,很多都依赖对整个编译系统和计算机系统的理解,依赖于理解 C++ 源码如何一步步变成机器码,以及理解为何变成这样的机器码才是最佳的。
3,编译器趋势
编译器理论,在框架层面是由形式语言来维持的,无论是前段词法语法等,代码优化也有很多图的算法在起作用。
往后随着AI的崛起,编译器开发,将有以前的计算机科学家开始转到数学家手上