编译原理学习笔记(一)体系结构

编译原理关键知识点

  • 词法分析:正则表达式、自动机DFA/NFA
  • 语法分析:BNF范式、抽象语法树、递归下降Parsing
  • 语义分析:属性文法、类型检查、符号表、作用域、中间代码生成
  • 代码优化:现代编译器常用的优化方法及其原理
  • 汇编指令:Stack based 与 Register based 虚拟机的原理与实现

编译原理学习资料

编译器的体系结构

基本的编译程序由词法分析、语法分析、语义分析与中间代码生成、代码优化、代码生成、符号表管理、出错处理七个功能模块构成。

编译器的工作阶段大致如下:

源代码 --> 扫描程序(scanner): Token
      --> 语法分析(parser): 语法树
      --> 语义分析(semantic analyzer): 注释树
      --> 源代码优化(source code optimizer): 中间代码
      --> 代码生成器(code generator): 目标代码
      --> 目标程序优化(target code optimizer): 目标代码
贯穿全部的有:文字表、符号表、错误处理器

涉及的算法与数据结构:

  • token,自动机算法
  • syntax tree,递归下降算法
  • symbol table,贯穿所有阶段,要求快速插入、删除与访问
  • literal table,存放在程序中用到的常量和字符串,要求要快速插入和查找
  • temporary file,保存多次用到的某些运行步骤中生成中间文件

掌握好编译原理,才能对编程有更深刻的认识。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值