南京大学计算机实验教程,南京大学 计算机系统基础 课程实验 2018(PA0 |
您所在的位置:网站首页 › 南大PA4 › 南京大学计算机实验教程,南京大学 计算机系统基础 课程实验 2018(PA0 |
申明,本人并非是南京大学的学生,此实验一共完成其中四部分,试验环境为Manjaro(并非PA0中间的docker) + SpaceVim, 此文为记录试验的部分心得。 PA0 正如在本课程试验中间反复提到的基础设施的重要性,比如PA1 中间gdb的构建,PA2 中间的diff test 创建,同样的搭建一个良好的试验环境也可以让自己注意力集中关键的部分。 方案一:vs code 方案二: vim 不推荐不熟悉vim的用户使用此方案。 无论采用哪一个方案,务必保证可以实现符号跳转,全局符号搜索和文件搜索的功能。 PA1 PA1 主要作用是熟悉工程的架构,有一个平缓的学习曲线,和后面试验关系不大(我完成了PA4,才把这一部分补充完整的, 个人感觉debug 主要依赖于diff test), 试验的难点主要有两个方面: 表达式的求值 watchpoint 的链表操作 表达式的求值 其中表达式的求值更加麻烦,我采用的方案并不是实验指导书中间的策略,而是使用的逆波兰表达式求值。 使用逆波兰表达式写了一半的时候突然发现似乎没有办法处理单目表达式的, 也就是说对于如下的表达式都是没有办法处理 12 +-12 // 没有办法正确的处理 -12 *0x4000000 + 12 // 无法处理取地址符 其实处理的办法很简单,在使用逆波兰表达式求值之前遍历一遍表达式,如果一个运算符的左侧不是数值那么改operator必定是单目的。 参看此链接实现普通表达式到逆波兰表达式的装换, https |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |