我们作为一个程序员,可能服务于各行各业,比如有点是用java写网页,做金融这一块的程序,有点用c语言做底层嵌入式方面的程序,有点是做操作系统这一块,有点是做算法这一块,有点是做驱动这一块,有点是做上层应用这一块,比如用python进行神经网络训练。
无论是哪一种程序源,使用哪一种语言,其基本上从功能上划分,都离不开这三种类型,分为数值运算、符号处理和I/O操作三类。
数值运算类型,就是相关一些科学计算的加减乘除方面的运算,这个里面比较复杂的就是除法运算,有点时候需要lut方法解决。
I/O操作,就是数据的输入和输出,比如从一个文件中读入一定格式数据,将数据写入到文件中,还有手动输入字符,将对应文本输入控制台界面。
最后一个符号处理,符号处理程序占相当大的比例,符号处理程序无处不在,编译器、浏览器、Office套件等程序的主要功能都是符号处理。
编译器符号处理策略:每一个符号应该包含尽可能多的字符,“贪心法”;
编译器将程序分解成符号方法为:从左到右一个一个的字符读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部分;可能则继续读入下一个字符,重复上述判断,直到读入字符组成的字符串已不再可能组成一个有意义的符号