zoukankan      html  css  js  c++  java
  • 编译原理-第二章-高级语言及其语法描述总结

    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.上下文无关:

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

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

    特点:独立性

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

    感悟:

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

  • 相关阅读:
    人月神话阅读笔记之二
    第二阶段:团队开发Fooks第三天
    第二阶段:团队开发Fooks第二天
    第二阶段:团队开发Fooks第一天
    第十三周进度总结
    人月神话阅读笔记之一
    第一阶段意见评论
    拓扑排序
    欧拉回路
    矩阵优化
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/8603617.html
Copyright © 2011-2022 走看看