编译器构造:SimpliC语言x86-64汇编代码生成任务指南
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
编程作业6是Lund University计算机科学课程的一部分,由Jesper Oqvist和Görel Hedin教授编写的《编译器构造》(Compiler Construction)教材EDAN65于2017年9月23日发布的。该作业的主要目标是让学生了解并实践代码生成在编译器中的实现,特别是针对SimpliC语言的x86-64(64位x86,也称为AMD64或EM64T)汇编语言生成。 完成这个任务需要在Linux环境中工作,学生可以通过SSH连接到实验室电脑,如:`ssh username@login.student.lth.se`。所有的任务将在远程终端上进行。这项作业的关键挑战在于熟悉x86-64汇编语言的语法规则,这可能需要投入相当的时间去学习和理解。 x86-64 Assembly部分提供了一个快速的架构概述,虽然足够应对当前的作业,但对于对x86架构有深入兴趣的学生,可以进一步研究。作业主要包括以下主要任务: 1. **x86-64汇编基础**:学生需掌握x86-64架构的基础知识,包括指令集、寻址方式、寄存器系统以及数据类型,这些都是编写和阅读x86-64汇编代码的基础。 2. **SimpliC语言到x86-64汇编转换**:你需要设计并实现一个编译器后端,将SimpliC语言源代码转换成对应的x86-64汇编指令。这涉及到词法分析、语法分析、中间代码生成和优化,最后是目标代码生成。 3. **代码生成算法**:学习如何生成有效的x86-64机器码,包括循环展开、条件分支处理、函数调用和内存管理等,这些都是代码生成的重要组成部分。 4. **性能与效率**:理解代码生成如何影响程序的运行速度和内存使用,通过调整优化策略来提升生成代码的性能。 5. **黑三角标记任务**:特别标注的任务可能需要额外的关注和深度思考,它们可能是关键的学习点或者对整体作业理解有较大帮助的部分。 6. **逐步执行和调试**:在编写代码生成的过程中,可能会遇到问题,学会使用调试工具和调试策略来识别并修复错误是必不可少的。 编程作业6是一次实战性质的项目,旨在深化学生对编译器实现过程的理解,并通过实际操作提升汇编语言技能。遵循文档中的指导,系统地完成每个步骤,并利用课堂讨论和实验室时间解决遇到的问题,将有助于顺利完成这个大型但富有价值的项目。
![](https://csdnimg.cn/release/download_crawler_static/67893453/bg5.jpg)
剩余22页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/d9015d976fd6446d9e23ca0e81689236_weixin_44906759.jpg!1)
- 粉丝: 1182
- 资源: 5492
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Vue实现iOS原生Picker组件:详细解析与实现思路
- Arduino蓝牙小车:参数调试与功能控制
- 百度Java面试精华:200页精选资源涵盖核心知识点
- Swift使用CoreData填坑指南:CoreData在Swift 3.0的变化
- 微距离无线充电器创新设计及其实验探索
- MTK Android平台开发全攻略:44步详解流程
- RecyclerView全面解析:替代ListView的新选择
- Android开发:自动适配中英文键盘解决方案
- Android调用WebService接口教程
- Android开发:BitmapUtil图片处理全解析与实例
- Android多线程断点续传实现详解
- PCA算法在人脸识别会议签到系统中的应用
- EventBus 3.0:Android事件总线详解与实战应用
- Android FileUtil:全面解析文件操作实用技巧与实例
- RecyclerView添加头部和尾部实战教程
- Android实现微博滑动固定顶部栏实战与优化
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)