编译原理概述

程序设计语言的发展

机器语言01
汇编语言MOV
高级语言while

高级语言的实现方式:

编译方式:源语言为高级语言,目标语言为低级语言的翻译程序
解释方式:一边翻译一边执行,翻译完的同时也执行完了程序

编译器和解释器的比较

编译器:转换系统,一次编译目标程序可执行多次
解释器:执行系统,一词翻译目标程序只能执行一次

编译程序的结构

  • 词法分析
    检查程序中是否有词法错误
    构造单词的内部表示
  • 语法分析
    程序设计语言的文法严格不允许有歧义
    分为自顶向下和自底向上的分析方法
  • 语义分析
    检查源程序有无语义错误
    为编译后续工作收集所需信息
  • 中间代码生成
    将源程序转换成一种称为中间代码的内部表示形式
    便于移植和优化
  • 中间代码的优化
    为了生成高效的目标程序而对用户所写的程序进行优化
    与程序的算法无关
    内部优化(执行级别)
  • 目标代码生成
    将中间代码变换为特定机器上的汇编指令代码或机器指令代码
  • 表处理
    为了合理的管理表格(token表、符号表),设立一些专门子程序称为表格管理程序
  • 错误处理
    使得发现错误后编译器能够继续进行下去,给用户提供更多的参考信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值