编译原理 廖力 第62讲 第63讲

正规式->正规文法(自动机)

正规文法->正规式(自动机/解方程)

根据这表格可以得到确定化后的自动机

最小化: 划分法:分成两个子集 带有终结符的子集和不带的

0,1无法划分,进行合并

LL1分析表 消除左递归,提取最左公因子

first集合获得,就不用回溯了,通过字符串就可以找到相应的产生式。follow集合为什么引入呢?因为非终结符可能是空串。

FIRST和LASTVT用于确定哪个先规约

重点在于移进规约冲突

 

要注意拉链,回填

 

 

 

 

 

 

1.1 编译器概述.flv 1.2 编译器结构.flv 1.3 编译器实例.flv 2.1 词分析的任务.flv 2.2.1 词分析器的手工构造1.flv 2.2.2 词分析器的手工构造2.flv 2.2.3 词分析器的手工构造3.flv 2.3.1 正则表达式1.flv 2.3.2 正则表达式2.flv 2.3.3 正则表达式3.flv 2.3.4 正则表达式4.flv 2.4.1 有限状态自动机1.flv 2.4.2 有限状态自动机2.flv 3.1.1 RE转换成NFA:Thompson算1.flv 3.1.2 RE转换成NFA:Thompson算2.flv 3.1.3 RE转换成NFA:Thompson算3.flv 3.2.1 NFA转换成DFA:子集构造算1.flv 3.2.2 NFA转换成DFA:子集构造算2.flv 3.2.3 NFA转换成DFA:子集构造算3.flv 3.2.4 NFA转换成DFA:子集构造算4.flv 3.3.1 DFA的最小化:Hopcroft算1.flv 3.3.2 DFA的最小化:Hopcroft算2.flv 3.3.3 DFA的最小化:Hopcroft算3.flv 3.4.1 从DFA生成分析算1.flv 3.4.2 从DFA生成分析算2.flv 3.4.3 从DFA生成分析算3.flv 4.1.1 语分析的任务1.flv 4.1.2 语分析的任务2.flv 4.1.3 语分析的任务3.flv 4.2.1 上下文无关文和推导1.flv 4.2.2 上下文无关文和推导2.flv 4.2.3 上下文无关文和推导3.flv 4.2.4 上下文无关文和推导4.flv 4.2.5 上下文无关文和推导5.flv 4.3.1 分析树和二义性文1.flv 4.3.2 分析树和二义性文2.flv 4.3.3 分析树和二义性文3.flv 4.3.4 分析树和二义性文4.flv 4.4.1 自顶向下分析1.flv 4.4.2 自顶向下分析2.flv 4.4.3 自顶向下分析3.flv 4.4.4 自顶向下分析4.flv 4.5.1 递归下降分析算1.flv 4.5.2 递归下降分析算2.flv 4.5.3 递归下降分析算3.flv 4.5.4 递归下降分析算4.flv 5.1.1 LL(1)分析算1.flv 5.1.2 LL(1)分析算2.flv 5.1.3 LL(1)分析算3.flv 5.1.4 LL(1)分析算4.flv 5.1.5 LL(1)分析算5.flv 5.1.6 LL(1)分析算6.flv 5.1.7 LL(1)分析算7.flv 5.1.8 LL(1)分析算8.flv 5.2 LL(1)分析的冲突处理.flv 5.3.1 LR(0)分析算1.flv 5.3.2 LR(0)分析算2.flv 5.3.3 LR(0)分析算3.flv 5.3.4 LR(0)分析算4.flv 5.4 SLR分析算.flv 5.5 LR(1)分析算.flv 5.6.1 LR(1)分析工具1.flv 5.6.2 LR(1)分析工具2.flv 5.6.3 LR(1)分析工具3.flv 6.1.1 语制导翻译1.flv 6.1.2 语制导翻译2.flv 6.1.3 语制导翻译3.flv 6.2.1 语制导翻译的实现原理1.flv 6.2.2 语制导翻译的实现原理2.flv 6.3.1 抽象语树1.flv 6.3.2 抽象语树2.flv 6.3.3 抽象语树3.flv 6.3.4 抽象语树4.flv 6.4.1 抽象语树的自动生成1.flv 6.4.2 抽象语树的自动生成2.flv 7.1.1 语义分析的任务1.flv 7.1.2 语义分析的任务2.flv 7.1.3 语义分析的任务3.flv 7.2.1 语义规则及实现1.flv 7.2.2 语义规则及实现2.flv 7.2.3 语义规则及实现3.flv 7.2.4 语义规则及实现4.flv 7.3.1 符号表1.flv 7.3.2 符号表2.flv 7.3.3 符号表3.flv 7.4 语义分析中的其它问题.flv
⒈ 题目 分析对象的BNF定义如下: 〈算术表达式〉∷=〈项〉|〈算术表达式〉+〈项〉|〈算术表达式〉-〈项〉 〈项〉∷=〈因式〉|〈项〉*〈因式〉|〈项〉/〈因式〉 〈因式〉∷=〈变量〉│(〈算术表达式〉) 〈变量〉∷=〈字母〉 〈字母〉∷=A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z (a)总程序过程 (b) ( E过程)算术表达式处理 (c)项处理(T过程) (d)因式处理过程)(F过程) (e) (f) 图2-7-5 递归下降分析表达式之框图 (a) ZC 过程;(b) E 过程;(c) T 过程; (d) F 过程;(e) 函数过程 SYM ;(f) 过程 ADVANCE ⒉ 算 用递归下降分析上述算术表达式的框图,如图2-7-5所示。这里,ZC过程为总控程序,主要完成: ⑴ 通知外界键入算术表达式; ⑵ 控制E过程分析算术表达式; ⑶ 根据分析结果之正误,分别通知外界不同的信息。 ZC过程被设计成可以分析无穷多个算术表达式。E、T和F三个过程分别对应〈算术表达式〉、〈项〉和〈因式〉三个产生式的处理。它们用到两个公共过程。一个是函数过程SYM,它负责从输入字符串ST中取出下一个字符,并存入SYM中等待分析。另一个过程ADVANCE负责剔除ST中的首字符。 算的书写和实现也请参考课堂教学所给出的方和实例,不一定照搬以上的框图。 ⒋ 小结 ⑴ 实习前的准备 按实习目的和要求,用PASCAL语言编写一个语分析程序,同时考虑相应的数据结构。 ⑵ 调试 调试例子应包括符合语规则的算术表达式,以及分析程序能够判别的若干错例。 ⑶ 输出 对于所输入的算术表达式,不论对错,都应有明确的信息告诉外界。 ⑷编写上机实习报告。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值