c4编译器源码剖析

c4_source

1. 概述

c4是500行代码实现一个c语言编译器
简单暴力,适合了解基础的编译器原理

2. 主流程

1.建立系统符号表
2.读取源代码
3.一次遍历源代码,同时进行词法分析,语法分析和中间代码生成。
4.执行中间代码

3. 中间代码

3.1. 基础
中间代码 操作 意义
LEA 2 将栈往上的2个位置变量加载到寄存器 加载本地变量
IMM 将代码区位置指定的代码加载到寄存器 加载到全局变量
JMP 2 将代码区跳转到2这个位置 跳转
JSR 2 将下一个代码区位置保存到栈顶,并将代码区跳转到2这个位置 跳转到子程序
BZ 2 如果全局变量为a,则跳转到下一个代码区域,否则跳转到2这个位置 零跳转
BNZ 2 如果全局变量不为a,则跳转到下一个代码区域,否则跳转到2这个位置 非零跳转
ENT 2</
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值