c4编译器源码剖析

本文深入剖析了C4编译器的源码,涵盖了主流程、中间代码的生成,包括基础概念、运算、系统调用以及各种符号表的详细解释。此外,还介绍了配置文件、VM环境的设置、符号表初始化、源代码读取、词法和语法分析的过程,以及如何执行中间代码。
摘要由CSDN通过智能技术生成

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</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值