首页 > 代码库 > 软考之 编译原理

软考之 编译原理

         看完书后做了一套真题,都是眼泪呀,经过对试题的分析,发现弱点是编译原理和组成原理部分;因为这两块本来就是薄弱地带,再加上看书之后没有认真地总结过,就开始了真题,难免在做题时遇到困难,下面针对编译原理做一下总结,从一张思维导图开始:


    从导图中可以看出,程序语言的部分都不是难点,分类和基本成分都是平时接触的,唯一需要去理解的就是可能平时不太去关注的,低级语言、高级语言、编译程序、解释程序的特点。

     把中重点放在语言处理程序的部分,其中分为三部分:

      1、汇编程序

     其中需要明白的就是指令语句,伪指令语句和宏指令语句;指令语句和伪指令语句的差别是:(1)伪指令语句汇编后不产生机器代码,指令语句汇编后产生响应的机器代码;(2)伪指令语句所指示的操作是在源程序被汇编时完成的,指令语句操作必须在程序运行时完成

     2、解释程序

     解释程序的执行过程,解释程序不产生源程序的目标程序


 其中C的方式,中间代码更接近机器语言,使得这类程序有较好的移植性。

 3、编译程序

 

4、编译程序和解释程序的差异:

1)效率:编译比解释可能取的更高的效率

2)灵活性:解释程序反复检查源程序,使得在运行中修改程序是可能的,所以解释方式比编译方式更灵活

3)可移植性:解释器也是用某种程序设计语言编写的,所以对解释器进行重新编译,就可以使得解释器在不通环境中运行。

 

自我感觉难点是文法的部分:

       1、定义 :描述语言语法结构的形式规则成为文法,就是在语言分析阶段的一种规则;

       2、分类:

  0型文法—图灵机:α>βα中至少含有一个非终结符。(左侧一定有非终结符)0型语言()

  1型文法—有限自动机:α>β|α| <= |β|,特例:a>ε。(左边的长度小于等于右边的长度)上下文有关语言

  2型文法—下推自动机:A>βA是一个非终结符。(左边都是非终结符)上下文无关语言

   3型文法—有限状态自动机:A>a|aB Aa|Ba。正规语言,等价于正规式

       3、正规文法和正规式的转化规则


   4、有限自动机与正规式的转化

1)有限自动机转换为正规式


2)正规式转化为有限自动机


 

差不多就理解了这些,希望可以在真题中继续磨练!