编译原理(哈工大)

  • 一、编译系统的结构
    • 1、编译的本质:翻译的过程
    • 2、编译流程:源程序---预处理器---编译器----汇编器----链接器/加载器---目标机器码
    • 3、字符流--词法分析--语法分析--语义分析
    • 4、编译器的结构
  • 词法分析器
    • 利用token形式,对不同单词类型进行分析,有关键字、标识符、常量、运算符、界限符
  • 语法分析器(parsing)
    • 语法分析器从词法分析器输出的token序列中识别各类短语,并构造语法分析树。
  • 语义分析器
    • 一是收集标识符的属性信息
    • 二是语义检查
  • 中间代码生成及编译器后端概述
    • 中间代码表示形式
    • 中间代码生成的例子
  • 目标代码生成
  • 代码优化

一、编译系统的结构

1、编译的本质:翻译的过程

2、编译流程:源程序—预处理器—编译器----汇编器----链接器/加载器—目标机器码



3、字符流–词法分析–语法分析–语义分析

(1)词法分析(Lexical Analysis)英[ˈleksɪkl əˈnæləsɪs]
(2)语法分析(Syntax Analysis)英 [ˈsɪntæks]
(3)语义分析(Semantic Analysis)英 [sɪˈmæntɪk]

4、编译器的结构

词法分析器

利用token形式,对不同单词类型进行分析,有关键字、标识符、常量、运算符、界限符


IDN(标识符)
关键词、运算符、界限符都是一词一码,所以属性值都为空。
词法分析器如何将源码指令分析为token序列,第三章详细讲解。

语法分析器(parsing)

语法分析器从词法分析器输出的token序列中识别各类短语,并构造语法分析树。



语义分析器

一是收集标识符的属性信息


二是语义检查

变量是否声明?是否重复声明?
类型不匹配?操作符与操作数之间不匹配?
函数返回类型有误?

中间代码生成及编译器后端概述

中间代码表示形式




中间代码生成的例子

j:jump
100:(j < a,b,102)
第100行执行指令:当a小于b时,跳向102行

目标代码生成

代码优化

编译原理(哈工大)绪论相关推荐

  1. java pl0 四元式,【编译原理】c++实现自下而上语法分析及中间代码(四元式)生成...

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  2. 【最新合集】编译原理习题(含答案)_1 绪论_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 编译是对(). A. 机器语言的执行 B. 汇编语言的翻译 C. 高级语言的翻译 D. 高级语言程序的解释执行 2 用高级语言编 ...

  3. 【最新合集】编译原理习题(含答案)_答案全集_MOOC慕课 哈工大陈鄞

    [最新合集]编译原理习题(含答案)_1 绪论_MOOC慕课 哈工大陈鄞 [最新合集]编译原理习题(含答案)_2程序设计语言及其文法_MOOC慕课 哈工大陈鄞 [最新合集]编译原理习题(含答案)_3词法 ...

  4. 【最新合集】编译原理习题(含答案)_15运行存储分配_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 运行存储分配 1 在目标代码生成阶段,符号表用于(). A. 目标代码生成 B. 语义检查 C. 语法检查 D. 地址分配     ...

  5. 【最新合集】编译原理习题(含答案)_11-14中间代码生成_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 中间代码生成_1 1 中间代码生成时所依据的是( ). A. 语法规则 B. 词法规则 C. 语义规则 D. 等价变换规则     ...

  6. 【最新合集】编译原理习题(含答案)_8-10语法制导翻译_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 文法G[S]及其语法制导翻译定义如下: 产生式 语义动作 S' → S print( S.num) S → ( L) S.num ...

  7. 【最新合集】编译原理习题(含答案)_4-7语法分析_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 如果文法G是无二义的,则它的任何句子α( ). A. 最左推导和最右推导对应的语法树必定相同 B. 最左推导和最右推导对应的语法 ...

  8. 【最新合集】编译原理习题(含答案)_2程序设计语言及其文法_MOOC慕课 哈工大陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 文法:G:S→xSx | y所识别的语言是( ). 2 给定文法A→bA|ca,为该文法句子的是( ). A. bba B. c ...

  9. 【最新合集】编译原理习题(含答案)_20代码生成_MOOC慕课 哈工大 陈鄞

    [最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 代码生成 1 在目标代码生成阶段,符号表用于( ). A. 目标代码生成 B. 语义检查 C. 语法检查 D. 地址分配 2 经编译 ...

最新文章

  1. 机器学习基础---架构设计
  2. [心情]说说作为新手的困惑
  3. redis中的string
  4. input的readonly属性与TextBox的ReadOnly和Enabled属性区别
  5. 使用REVERSE INDEX改善大规模数据插入【IMPROVE INSERT STATEMENT USING REVERSE INDEX】
  6. MongoDB非关系型数据库开发手册
  7. Hadoop配置项整理(hdfs-site.xml)
  8. (转)RabbitMQ学习之安装
  9. 永磁同步电机转子磁链_采用冻结磁导率的瞬态场永磁同步电机交直轴电感计算...
  10. Android 内存数据库
  11. C++ static_cast和dynamic_cast
  12. 同样是编译jogl,不同平台的编译速度相差几十倍?
  13. java集合试题_Java练习题 - 集合
  14. css3实现奔跑的小人动画
  15. MIPS shellcode
  16. SpringBoot 前后端分离 实现验证码操作
  17. 推荐一款很好用的调试JS的Eclipse插件
  18. 安超云与PingCAP完成兼容互认证 携手打造协同生态
  19. spring boot+iview 前后端分离架构之文件上传的实现(三十一)
  20. 杰理之关于 SPI 主机配置参数的几个说明:【篇】

热门文章

  1. 钱多多第二阶段冲刺03
  2. R语言怎么写积分_手记(4):定积分
  3. SEO快排的行业秘密,原来SEO快排套路这么深
  4. OpenSSL SAN 证书
  5. 冬天来了,春天还远吗
  6. AttributeError: module ‘tensorflow_core.compat.v1‘ has no attribute ‘contrib‘
  7. 压在心底慢慢体会__珍藏的句子
  8. cocos 切换精灵图片
  9. LeetCode 力扣每日一题 488.祖玛游戏
  10. 第二章 2.1 机器视觉——图像《2022年斯坦福AI指数报告》中文全解读