编译原理与技术(第二版)个人总结1

   编译的每个阶段都有可能检测出源程序中存在的错误,比如:词法分析程序检测非法字符,语法分析程序能够发现不合语法规则的错误(如括号不匹配,缺少运算符对象),语义分析程序针对的是语法正确但所涉及的运算毫无意义(比如运算对象的类型不匹配,变量没有声明,数组下标越界,除数为0)
   字母表指的是符号的非空有限集合
   假设字符串的长度为n
   符号串a的前缀指的是从符号串a的末尾删除0个或者多个符号之后得到的符号串(n+1)
   符号串a的后缀指的是从符号串a的开头删除0个或者多个符号之后得到的符号串(n+1)
   符号串a的子串指的是删除了符号串a的前缀或/和后缀后得到的符号串(n的累和+1)
   符号串a的子序列指的是删除了符号串a的0个或者多个符号之后后得到的符号串(2 的n次方)
   符号串ab(是将b连接在a之后得到的符号串)
   语言指的是在某个确定字母表上的符号串集合(空串也是语言)
   语言L的n次幂是其与自身(n-1)次的连接。
   语言与其0次以上的连接成为闭包。
   语言与其1次以上的连接成为正闭包。
   文法的定义G=(VT,VN,S,产生式的字母代替FAI(暂时没有找出这个符号的打出方法))书本21页有
   VT是终结符,VN是非终结符,S是文法开始符号
   两种重要的文法:
   上下文无关文和正规文法(书本22页)
   终结符推出符号串就是上下文无关文法
   A->a或者A->aB右线性文法
   A->a或者A->Ba左线性文法
   判断是什么线性就看右侧表达式非终结符的位置(在那边就是那个)
   推导过程中E代表表达式,F代表因子,T代表项
   子树与短语的定义在书本26页(太多,看了很多题目好像设计很少,而且语法分析表好像用的比较多)
   左递归的消除
   通俗点讲就是见到A->Aa1|Aa2|Aa3|......B这种样子的直接替换成
   A->BA撇
   A撇->a1A撇|a2A撇|a3A撇| ......空串
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值