主要议题:
掌握高级语言、低级语言的特点和应用场景;
程序编译,记词法、文法规则;
表达式主要考察中缀表达式和后缀表达式之间的相互转换;
传值与传址,分清特点,结合程序代码求值;
1.程序设计语言
机器语言:采用二进制方式编写的程序;
缺点:效率差(人手输入)、易出错;
优点:机器可以直接运行(运行效率高);
汇编语言:使用单词或字母缩写代替相关的指令;
汇编程序:用于写汇编语言的软件;
汇编语言程序:使用汇编语言写的代码;
高级语言种类较多,特点记下就行:
但凡产生目标程序,是编译器;比如.exe文件直接用就行,不需要它的源代码;
解释器不产生目标程序;需要源代码或者中间代码+解释器一起运行;
语义:语句运行时的含义;分为静态语义和动态语义;
语用:程序与用户之间的关系;
区分静态/动态类型语言:定义变量时,是否要明确它的数据类型;
2.程序编译
部分编译器没有中间代码生成、代码优化的过程,但是所有编译器都有词法分析、语法分析、语义分析、目标代码生成四个过程;
词法分析:从左往右扫描,识别一个个单词;
语法分析:查看代码是否符合语法规则;
语义分析:在编译过程中,只检查静态语义,即看看表达式的数据类型是否匹配,如int 1.0;错误;而动态语义是需要运行程序才能明确含义的;
符号表管理、出错处理,贯穿整个编译过程;
零除数、死循环都属于动态语义错误;