17.3 章节概述
本章对应的是编译原理和程序设计语言基础的压缩版。课程里提到,这部分在软件设计师考试中平均能到接近 6 分,属于值得认真掌握的板块。
两大板块
| 板块 | 内容 | 高频程度 |
|---|---|---|
| 程序设计语言基础 | 编译/解释、语言特点、语言成分、函数调用 | 函数调用和编译/解释高频 |
| 语言处理程序基础 | 编译过程、文法、正规式、有限自动机、后缀表达式 | 编译阶段、自动机、后缀表达式高频 |
最该掌握的三条线
第一条线是“程序怎么执行”。机器语言直接执行,高级语言依赖编译或解释。编译方式生成目标程序,解释方式在运行时参与。
第二条线是“函数怎么传参”。传值只是复制,引用或地址会让函数接触到实参对象。递归依赖调用栈,所以递归层数过深会带来栈空间问题。
第三条线是“编译器怎么理解程序”。词法分析识别单词,语法分析组织结构,语义分析检查类型和含义。正规式和有限自动机服务词法层,文法和语法树服务语法层。
分值优先级
| 优先级 | 知识点 | 复习要求 |
|---|---|---|
| 第一优先级 | 编译过程、函数调用 | 能做错误归类和参数变化判断 |
| 第二优先级 | 有限自动机、正规式、后缀表达式 | 能识别字符串、找等价正规式、做后序遍历 |
| 第三优先级 | 语言特点、文法层次 | 能根据关键词快速选答案 |
常见干扰
| 干扰方式 | 正确处理 |
|---|---|
| 把解释程序说成完全不分析源程序 | 解释也需要词法、语法、语义分析 |
| 把中间代码生成说成所有编译器必需 | 不一定必需 |
| 把符号表当成中间代码 | 符号表是管理信息的数据结构 |
| 把递归当成基本控制结构 | 基本控制结构是顺序、选择、循环 |
| 只验证自动机能识别的串,不验证正规式能否多表示错误串 | 等价要双向成立 |
复习安排
建议先拿下编译过程和函数调用,因为它们几乎每次都能出题;再练有限自动机与正规式,因为这类题需要手算路径;最后补语言特点和文法层次,用表格记关键词即可。