大三每日总结

学习软考

程序设计语言
机器语言和汇编语言为低级语言
语言之间翻译的基本形式,有汇编,解释和编译
源程序是用某种高级语言编写的则需要对应的解释程序或编译程序对其进行翻译
解释程序也可以称为解释器,直接解释执行源程序,或者将源程序翻译成某种中间代码后再加以执行
而编译程序(编译器)则将源程序翻译成目标语言程序,然后在计算机上运行目标程序.

解释器:翻译源程序时不生成独立的目标程序
解释程序和源程序要参与到程序的运行过程中
编译器:
翻译时将源程序翻译成独立保存的目标程序
机器上运行的是与源程序等价的目标程序
源程序和编译程序都不再参与目标程序的运行过程

程序设计语言的控制成分
顺序结构
选择结构
循环结构

编译方式:词法分析,语法分析,语义分析(前三个不能省略,顺序不可变),中间代码生成,代码优化(可省略),目标代码生成
解释方式:词法分析,语法分析,语义分析
编译器方式可以在词法分析,语法分析,语义分析阶段后直接生成目标代码

符号表
不断收集,记录和使用源程序中一些相关符号的类型和特征信息,并将器存入符号表中,记录源程序中各个字符的必要信息,以辅助语义的正确性检查和代码生成.

词法分析过程依据的是语言的词法规律
输入源程序,输出记号流

语法分析,确定语句结构是否有问题(经典问题,括号不匹配)
输入记号流,输出语法树
语法分析可以发现程序中的所有语法错误

输入:语法树(分析树)
语义分析阶段的主要作用是进行类型分析和检查
语义分析阶段不能发现程序中所有的语义错误
语义分析阶段可以发现静态语法错误
不能发现动态语义错误,动态语义错误运行时才能发现

目标代码生成阶段的工作与具体的机器密切相关
寄存器的分配处于目标代码生成阶段

中间代码与机器无关,最常用的中间代码,三地址代码,实现方式是四元式
常见的中间代码:后缀式,三地址码,三元式,四元式和树(图)等形式
中间代码与具体的机器无关,可以将不同的高级程序语言翻译成同一种中间代码
中间代码可以跨平台

因为与具体的机器无关,使用中间代码有利于进行与机器无关的优化处理和提高编译程序的可移植性

自动机,词法分析工具
中缀式
后缀式
都与树相关

posted @ 2023-09-16 18:07  摆烂达人  阅读(7)  评论(0编辑  收藏  举报