编译原理-第二章-高级语言及其语法描述总结

1.语法:

  任何语言程序都可以看成是一定字符集上的字符串。但是怎么样产生这种”字符串“就要有语法

2.语义:

  一种语言,给出了词法和语法还要给出符号单位的意义。离开语义语言只不过是一堆符号的集合。

3.上下文无关文法:

  所谓上下文无关文法是指:他所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。

4.最左最右推导:

  就是优先推导最左(右)的非终结符。

  例题:

    令文法为:

      E -> T | E + T | E - T

      T -> F | T * F | T / F

      F -> (E) | i

    给出i + i * i的最左推导最右推导

    左:E -> E + T -> T + T -> F + T -> i + T -> i + T * F -> i + F * F -> i + i * i

    右:E -> E + F -> E + F * T -> E + F * F -> E + i * i -> F + i * i -> i + i * i   

5.语法分析树和二义性:

  如果对于不同的推导方式会产生不同的语法树,那么这个文法是二义

  语法分析树:简称语法树,用来表示推导过程。具有不唯一性。

  例题:

    令文法为:

      E→E+E|E*E|(E)|i

    关于(i*i+i)的推导形成语法树:

  

6.上下文无关:

文法是描述语言的语法结构的形式规则(即语法规则)。

   上下文无关文法的特点:它所定义的语法范畴(或语法单位)是完全独立于这种范畴可能出现的环境的。

特点:独立性

        缺点:不能用来描述自然语言

感悟:

  编译原理挺难的,很多东西很抽象,理解起来很麻烦。可能到后边的应用就会好些吧。

原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/8603617.html