软考复习之路——编译原理

          编译原理用一句话来说就是,源程序生成目标代码的过程。编译原理听起很熟悉,因为我们每天写代码,

系统,这些都离不开代码的编译,经过编译以后的程序就可以运行了。

 

         编译原理简单总结了一下文法,词法分析,语法推导树,算符优先。这几部分都是贯穿在编译的过程中,

是编译过程中的一些规则和方法。

 


1、文法

    文法指根据一些指定的规则来确定编程语言的语法,从而实现编译器的功能。




0型文法:α(VTVN) * 且至少含有一个非终结符,而β(VTVN) *

      例子:Aa,Aaa,aAa(左边至少有一个大写字母)


1型文法:在0型文法的基础上,再满足右边长度大于等于左边

        例子:Aab,AaBac

      特例:αε

 

2型文法:在1型文法的基础上满足左边只有一个非终结符

       例子:Aa,Aab

 

3型文法:在2型文法的基础上满足右边只有一个终结符或者终结符与非终结符的结合

        例子:Aa,AaB,Ba,BcB

 

4种文法的关系为

 

2、词法分析

    词法分析的任务是把构成源程序的字符串转换成单词符号序列。词法规则可用3型文法或正规表达式描述,

产生的集合成为正规集。而有限自动机能准确地识别正规集。

 

    正规式是描述单词符号的工具,也算得上是一种规则吧。

    有限自动机是描述程序设计语言中的单词的识别过程。

 


  

     正规式与正规文法之间的转换,正规式是另一种形式的文法


 

     文法与有限自动机的对应关系

 


 

     首先要弄明白每个名词的含义,其次是这几者之间的转换关系帮助加深理解。

 

3、语法推导树与算符优先

    语法树以图示化的形式把句子分解成各个组成部分来描述或分析句子的语法结构。语法推导树相比文法要

更为直观和完整。

    算法优先分析法是定义算符之间的某种优先关系。


 


总结


        上面这些知识主要涉及在编译程序的前两个阶段词法分析以及语法分析。词法分析是输入源程序,对构成

源程序的字符串进行扫描和分解,识别出一个个的单词;而语法分析是在词法分析的基础上,根据语言的语法

规则,把单词符号串分解成各类语法单位。最终表示成语法树。


          即上面知识涉及到的编译过程是把源码中的单词找出来,然后把分散的单词按预先定义好的语法组装成有

意义的表达式,最终形成一个抽象的语法树的过程。

 

          文法,有限自动机等这些名词有些抽象,还是需要多看看书,多总结总结加深理解。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 42
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值