《编译原理》

第一章

1、高级程序语言的运行有两种方式;

编译方式;利用编译程序将高级语言程序翻译为机器语言。

解释方式;利用解释程序直接读取高级语言中的每个字句,翻译并直接执行。

  1. 高级语言编译的四个步骤(P.6、P.7)

预编译,编译,汇编,链接

预处理;C语言的预处理是对用户的源程序中的宏定义和文件包含等进行处理。

编译;编译的结果是某种机器上的汇编语言书写的程序。

汇编;汇编语言需要由汇编程序翻译为二进制的目标代码。大多数编译器生成的目标代码是扩展名为.obj的二进制文件。

链接;目标文件本身还不能直接运行。链接程序把目标文件转换为最终可以运行的程序。

  1. 编译技术的应用

编译器的设计技术不仅用于开发编译器,而且还应用于计算机科学的其他领域。

第二章词法的规则;正规文法

1、词法分析的主要任务 是从左至右逐个字符地对源程序进行扫描,按照构词法规则识别出每个单词,如果识别过程中发现错误或无法识别单词,输出有关错误信息。(读入源程序,识别出各个单词符号,并输出)

2、C语言中的关键字和main都作为保留字,不允许有其他的意义。关键字就是已被C语言本身使用, 不能作其它用途使用的字。

4、求闭包

Σ={a,b}  Σ*={ε,a,b,aa,ab,ba,bb,aaa,aab,…}

Σ+={a,b,aa,ab,ba,bb,aaa,aab,…}

U = {aa,bb}  V={00,11}  则UV={aa00,aa11,bb00,bb11}

V={0,1}  V* = {ε,0,1,00,01,10,11,000,001,010,011...........}    

V+ = {0,1,00,01,10,11,000,001,010,011...........}

5、正则表达式

7、递归的含义;程序调用自身的编程技巧称为递归( recursion)

8、有穷自动机;分为确定的有穷自动机和不确定的有穷自动机

(等价关系;转换用的是字集法)

9、如何分辨是确定的有穷自动机还是不确定的有穷自动机;

确定的有穷自动机是指在一个状态下输入一个符号,状态转换到唯一的下一个状态。

不确定的有穷自动机是指在一个状态下输入一个符号,可能有两个或两个以上的后继状态。

 

{0,1,2,3}是一个有穷状态集  {a,b}是一个有穷输入字母表

 δ是状态转换函数       状态0是唯一的初始状态      {3}终态集合

10、不确定的有穷状态机 

 

 

  • 语法分析(上下文无关文法)
  1. 主要任务;

在词法分析识别出正确的单词符号串的基础上,分析并判定这些正确的单词符号串是否能构成正确的表达式、语句或程序

  1. 语法分析主要分为自顶向下分析,自底向上分析

自底向上分析技术简单优先分析法算符优先分析法优先函数LR 分析法

自顶向下分析技术 ;LL(1)分析法、递归下降分析法

  1. 认识终结符和非终结符,文法的四个组成部分

文法的四个组成部分;非终结符,终结符,产生式,开始符号

终结符号:是组成该语言的最基本的符号,是不可再分的基本符号,如保留字、标识符等。

非终结符号:规则中用尖括号括起来的符号,表示一些语法成分,可以推导出其他的语法成分,表示一定符号串的集合,是一个类,如表达式。

开始符号:规则中的一个特殊的非终结符号,语言中的句子都从它开始推导,如程序、句子

产生式:定义语法成分的规则。

4、文法的二义性定义;如果一个文法存在某个句型对应两棵不同的语法树,则说这个文法是二义的。

(对二义文法中的某个句型的分析不是唯一的,因此总是希望文法是无二义的。但是二义文法有时也是有用的。)

5、推导: 连续使用产生式右部去替换左部某个非终结符的过程,得到的连续序列称为一个推导。

直接推导:又称一步推导(用 符号=>表示),就是用某条规则的右部去替换该规则的左部

归约:推导的逆过程。

直接归约:直接推导的逆过程

6、自上而下的语法分析的危害;(即左递归和回溯的危害)

回溯;使得分析器的动作不稳定

左递归;出现无限循环

  1. 怎么消除左递归(改造为等价文法)

    左递归;E->E+T|T  E->TE’   E’->+TE’|ε

           T->T*F|F  T->FT’  T’->*FT’|ε

     

     

     

     自下而上分析方法概述;自下而上语法分析的基本思想是“移进-规约”。设置一个栈,将输入符号串中的单词符号逐个移入栈中,边移入边分析,一旦栈顶形成某个产生式的右部时,就用该产生式左边的非终结符替代,这个过程称为规约。

  2. 算符优先分析的基本思想(有涉及FirstVT集)
  3. (思想源于表达式的分析,是利用相邻终结符号之间的关系来寻找可归约串。将句型中的终结符号当作“算符”,借助于算符之间的优先关系确定句柄,分析过程是自下而上的归约过程,不是一种严格的规范归约。)

     

     

     

     

     

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值