目录
编译程序可以生成可执行文件,运行时无法控制源程序,解释不可以生成可执行文件,但是可以逐一解释执行
不管是解释还是编译,都需要进行语法和语义方面的分析
数据成分:指一种程序设计语言的数据和数据类型
运算成分:指允许使用的运算符号和运算规则
控制成分:指明语句允许表述的控制结果,包括顺序结构、选择结构、循环结构
传输成分:指明语言 允许的数据传输方式,如赋值处理、数据的输入输出
在编程中,要改变参数数值就传址,不改变就传值
词法分析:检查字符是否有误,是否是关键字等
语法分析:在词法分析的基础上判断源程序在结构上是否正确
语义分析:对源文件进行类型审查,分为静态语义错误和动态语义错误
中间代码:移植性强,不依赖具体机器,可使用树或图表示
文法定义
文法类型
语义分析一般上下文有关,语法一般上下文无关
正规式
正规式的正轨集就是正规式的闭包,但是不要‘,’分割
闭包就是 a的次方的集合即{a,aa,aaa,aaaa,....,∑}
∑是a^0;
有限自动机
判断是否是确定的有限自动机和 不确定有限自动机,输入一个字符看是否能得出唯一的后继,能就是确定的
语法分析方法
自上而下语法分析:最左推导,从左到右,从开始符号S推导到字符串
递归下降思想:自上而下语法分析
自下而上语法分析:从右到左,从字符串找到开始符号S
移进-规约思想:自下而上语法分析