美文网首页
读书笔记-编译之美

读书笔记-编译之美

作者: clever哲思 | 来源:发表于2020-04-09 13:19 被阅读0次

    一. 编译器的前端技术

    • 编译分前端技术后端技术 image.png

      这里的“前端”指的是编译器对程序代码的分析和理解过程, 而与之对应的“后端”则是生成目标代码的过程,跟目标机器有关

    • 编译器的“前端”技术分为词法分析、语法分析和语义分析三个部分
    • 词法分析是把程序分割成一个个Token的过程,可以通过构造有限自动机来实现。
    • 语法分析是把程序的结构识别出来,并形成一棵便于由计算机处理的抽象语法树。可以用递归下降的算法 来实现。
    • 语义分析是消除语义模糊,生成一些属性信息,让计算机能够依据这些信息生成目标代码。

    二. 正则文法和有限自动机

    • 一个严格意义上的有限自动机 是下面这种画法: image.png
    • 1.初始状态:刚开始启动词法分析的时候,程序所处的状态。2.标识符状态:在初始状态时,当第一个字符是字母的时候,迁移到状态2。当后续字符是字母和数字时, 保留在状态2。如果不是,就离开状态2,写下该Token,回到初始状态。3.大于操作符(GT):在初始状态时,当第一个字符是>时,进入这个状态。它是比较操作符的一种情况。4.大于等于操作符(GE):如果状态3的下一个字符是=,就进入状态4,变成>=。它也是比较操作符的一种情况。5.数字字面量:在初始状态时,下一个字符是数字,进入这个状态。如果后续仍是数字,就保持在状态5。

    相关文章

      网友评论

          本文标题:读书笔记-编译之美

          本文链接:https://www.haomeiwen.com/subject/ayfcmhtx.html