编译原理课堂笔记之第一章-引论

本文介绍了编译程序的基本概念,包括编译程序与解释程序的区别,详细阐述了编译过程的五个阶段:词法分析、语法分析、中间代码产生、优化和目标代码产生。此外,还提到了编译程序的结构、错误处理以及在程序设计环境中的作用。编译程序的优化和移植性是其重要特点。
摘要由CSDN通过智能技术生成

编译原理课堂笔记之第一章-引论

什么是编译程序

编译程序:先把源程序翻译成机器语言,然后再执行。

解释程序:每次读源程序的一句,边翻译边执行。

编译过程

编译过程:把英文翻译成中文(类比)

  • 编译过程 : 五个阶段
    • 词法分析
      • 任务:输入源程序,识别出一个个单词
      • 依循原则:构词规则
      • 描述工具:有限自动机
    • 语法分析
      • 任务:根据语言的语法规则把单词符号分解成各类语法单位(语法范畴)
      • 依循原则:语法规则
      • 描述工具:上下文无关文法
    • 中间代码产生
      • 任务:队各类不同语法范畴按语言的语义进行初步翻译
      • 依循原则:语义规则
      • 中间代码:三元式、四元式,树,…
    • 优化
      • 任务:对中间代码进行加工变换,希望在最后阶段产生更高效的目标代码
      • 依循原则:程序的等价变换规则
    • 目标代码产生
      • 任务:把中间代码变成特定机器上的目标代码
      • 依赖于硬件系统结构和机器指令的含义
      • 目标代码三种形式
        • 绝对指令代码:可直接运行
        • 可重定位指令代码:需要连接装配
        • 汇编指令代码:需要进行汇编

编译程序

  • 编译程序总框
    • image-20210222111403400
  • 表格与表格管理
  • 出错处理
    • 语法错误
    • 语义错误
    • 对源程序或源程序的中间表示从头到尾扫描一次
  • 编译前端和后端
    • image-20210222112452532
    • 好处
      • 程序罗技结构清晰
      • 优化更充分,便于移植

编译程序与程序设计环境

  • 编辑程序
  • 编译程序
  • 连接程序
  • 调试工具

编译程序生成

  • 以汇编语言和机器语言为工具
  • 高级语言书写
  • 移植方法:把一种机器上的编译程序移植到另一种机器上
  • 自展技术
  • 编译程序自动产生
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值