最近在看Bjarne Stroustrup的那本经典C++之作。有些感触啊,人家写的游刃有余,可是我看的没有觉得深入浅出。怪只怪自己水平还比较低,只能理解一些,而赞叹另一些。
这种牛人写东西,总是喜欢挂靠美学、哲学,仔细想想,那点纯技术的东西已经不是人家的追求了,他们在更高层的位置上统筹着IT的江山。如果想走的更远,站的更高,还是去读经典吧。正如这本书的序言里写着:把时间花在“经典”上,或许生命的分量将从此不同。
只有真的去读了才能体会这句话多重要。还是这本书,BS可以去说为什么有C++,C++为什么这样,而且说的理所当然。为什么C++的标准库有人诟病他还不为所动,在设计者的理念里,只有最普遍的东西以最通用的实现,才值得放入标准库里;他会告诫读者,最重要的事情就是集中关注概念,不要迷失在语言的技术细节中;他也会谈到C++的理想,一种“尽量接近机器的语言”和一种“尽量接近需要解决的问题的语言”保留C就是为了前者,扩展的面向对象等就是为了后者等等。
摘录一小段,我挺惊奇的,就是他老人家在第6章讲解表达式和语句时开篇举了个小例子——计算器。计算器就计算器呗,人家搞得跟个编译器。。。
“这个计算器由四部分组成:一个分析器,一个输入函数,一个符号表和一个驱动程序。其中的分析器做语法分析工作,输入函数处理输入和词法分析,符号表保存持久性信息,驱动程序处理初始化、输出和错误等。”
在分析器中,他对整个需要输入的(表达式、符号的大集合,就像一个语言。)递归下降的处理,从表达式集合到到单个表达式到组成表达式的项目到组成项目的基本元素。因为可以先声明定义一个变量,后去计算,所以需要一个符号表保存变量和对应值。输入函数处理从标准输入设备读入(之后改进从任意istream读入),因为是按字符读入,所以要识别,把该放一起的一起读入,并把状态和内容存储在该存放的全局变量里以提供给分析器处理。驱动程序就是主函数,初始化一些东西,然后把前面的东西组织起来。
CSDN博客上的那个“恒”字太吸引人了,我要拿到它,以上一点点感悟而已,但是不积跬步无以至千里。把时间花在“经典”上,或许生命的分量将从此不同。