编译原理(1)

编译原理的一些总结

词法分析

把编写的代码字符串按照一定的规则识别为一个个的token,即变成小的字符串。这里会根据正则表达式进行识别,为了编码方便,先把正则表达式变成NFA有穷自动机,然后再变成DFA无穷自动机,最后按照DFA进行编码,对字符串进行识别。

语法分析

把词法分析得出来的字符串token,组合起来,变成一颗语法树,如果去构建语法树呢,需要去设计合适的文法,以及使用一系列的语法分析技术。

语法制导的翻译

计算和分析语法分析得出的语法树上的每个节点的综合属性和继承属性。定义一些语义动作来对各个节点上的属性进行处理。

中间代码生成

源语言->中间代码->目标语言。根据语法制导翻译对声明赋值表达式控制流进行翻译,并通过回填技术对地址进行填写,最后翻译成中间代码,中间代码使用三元式和四元式表示。

运行时刻环境

讲述了运行时动态存储和静态存储的规则,堆栈存储,全局非全局数据存储和符号表

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 链接地址:https://www.tutorialspoint.com/compiler_design/compi...
    dannyvi阅读 10,223评论 1 12
  • 编译器的结构(The Structure of a Compiler) 源程序的分析阶段分为:线性分析,层次分析,...
    牛程程阅读 3,130评论 0 0
  • 一个编译器的前端通常包括词法分析器和语法分析器。在分析过程中,文本输入词法分析器,根据词法规则解析出词法单元。词法...
    dannyvi阅读 5,785评论 0 1
  • 符号表创建阶段,语法分析阶段递归下降栈语法分析,附加节点特性,提供给语义分析使用 正规文法(3型文法)左线性文法:...
    丁狗子阅读 1,644评论 0 0
  • 以后,两三年后。会不会再没有乡了? 我指的当然不止是名字而已,你想想看,地球都成了地球村了。那还要区分那些难记甚至...
    鸡仔说阅读 2,662评论 0 0