# nwpu-2018-compiler-homework
## 简介
西北工业大学2018级编译原理试点班大作业
一个很简单的编译器,编译后缀为.hhx的文件代码,支持多文件编译
语法为类似c0的语法,详细信息请查看[语法分析介绍](https://github.com/obrr-hhx/nwpu-2018-compiler-homework/blob/master/%E8%AF%AD%E6%B3%95%E5%88%86%E6%9E%90.txt)
生成的汇编为arm和mips
运行平台 OS X
---
## 运行方式
下载代码后编译即可运行
```bash
$ git clone https://github.com/obrr-hhx/nwpu-2018-compiler-homework.git
$ cd ./compiler
$ make
```
编译完成之后会生成hhx可执行文件
执行hhx的命令格式如下
```bash
$ ./hhx -h #显示帮助信息
This is help information
Default Assembly is ARM
Command Format: ./hhx filename.hhx flag
flag:
-o #execute optimization
-char #display the character
-token #display lexical token
-symbol #display the table of symbol
-ir #display the intermediate code
-or #display the intermediate code after executing optimization
-mips #generate MIPS code
-h #display the help information
-v #display the version of hhx
-rm #delete file that is not hhx
```
### MIPS
生成的*_mips.asm汇编文件可以使用mars来仿真,以此来验证正确性,关于mips的介绍请参考[quick start](https://minnie.tuhs.org/CompArch/Resources/mips_quick_tutorial.html)
### ARM
本编译器默认生成arm汇编,*.asm的就是arm,如果想要仿真的话,可以直接买一个树莓派的板子,当然,也可以用qemu模拟环境,关于如何使用qemu模拟树莓派环境请看[这里](https://azeria-labs.com/emulate-raspberry-pi-with-qemu/)
tips:
如果是windows,建议使用WSL来运行,非常方便
由于时间原因,还没有写优化部分,也没有进行连接生成可执行文件,以后有时间会做的
没有合适的资源?快使用搜索试试~ 我知道了~
西北工业大学编译原理试点班大作业,一个编译器,编译后缀为.hhx的文件代码,支持多文件编译语法为类似c0+源代码+文档说明
共71个文件
asm:26个
cpp:14个
h:14个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 2 下载量 56 浏览量
2024-01-07
20:13:02
上传
评论 1
收藏 74KB ZIP 举报
温馨提示
西北工业大学编译原理试点班大作业,一个编译器,编译后缀为.hhx的文件代码,支持多文件编译语法为类似c0+源代码+文档说明 - 小白不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------
资源推荐
资源详情
资源评论
收起资源包目录
nwpu-2018-compiler-homework-master.zip (71个子文件)
nwpu-2018-compiler-homework-master
语法分析.txt 5KB
README.md 2KB
compiler
token.h 828B
makefile 284B
intercode.h 2KB
platform.h 1KB
compiler.cpp 903B
calc.py 319B
genir.cpp 18KB
mips.cpp 6KB
symtab.h 2KB
error.h 713B
symbol.cpp 12KB
selector.cpp 12KB
srcCode
pointer.asm 1KB
for.hhx 96B
break.asm 908B
break.hhx 127B
test.asm 3KB
switch.asm 2KB
fix_array_mips.asm 3KB
test.hhx 290B
do_while.hhx 100B
continue_mips.asm 1KB
fix_array.asm 3KB
array_mips.asm 3KB
pointer.hhx 138B
string_mips.asm 1KB
continue.hhx 184B
do_while_mips.asm 665B
do_while.asm 621B
fix_array.hhx 373B
switch.hhx 511B
while.hhx 112B
pointer_mips.asm 1KB
string.asm 1KB
break_mips.asm 924B
test_mips.asm 3KB
if_mips.asm 626B
while.asm 763B
continue.asm 1KB
callFun_mips.asm 1006B
string.hhx 260B
array.asm 3KB
if.asm 582B
callFun.hhx 153B
array.hhx 515B
callFun.asm 848B
switch_mips.asm 1KB
for.asm 791B
while_mips.asm 803B
if.hhx 131B
for_mips.asm 831B
main.cpp 3KB
iloc.cpp 9KB
lexer.h 1KB
common.h 5KB
genir.h 3KB
parser.cpp 19KB
token.cpp 1KB
iloc.h 2KB
symtab.cpp 12KB
parser.h 2KB
lexer.cpp 10KB
intercode.cpp 7KB
selector.h 366B
mips.h 2KB
platform.cpp 1KB
compiler.h 623B
symbol.h 4KB
error.cpp 3KB
共 71 条
- 1
资源评论
- m0_628713322024-04-18资源内容总结地很全面,值得借鉴,对我来说很有用,解决了我的燃眉之急。
- 2301_763260322024-03-14终于找到了超赞的宝藏资源,果断冲冲冲,支持!
机智的程序员zero
- 粉丝: 1535
- 资源: 4128
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功