查看: 2249|回复: 6
收起左侧

Stanford Compiler Week 1

|只看干货
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (142)
 
 
2% (4)    👎

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 czbnlzd920706 于 2018-3-12 06:52 编辑

这周工作比较忙。好久没开一亩三分地了。本来打算放弃这门课了。今天打开网站,发现还是有好些人想跟着一起上的。
决心带好这个头,不能自己给自己打脸。至少先撑一个月。

第一周很幸运,没有家庭作业。
课程主要介绍了下Compiler, 分成五个部分。

- Lexical Analysis
- Parsing
- Semantic Analysis
- Optimization
- Code Generation
我本人最感兴趣的是第五部分。

然后介绍了教授为这门课自己开发的语言 cool。
看完介绍这门语言的几个视频后,不得不惊叹,这竟然是一个OOP语言,跟Java的概念和基本功能上,没有太大的区别。本来打算放弃的我,还是决心把这门课上完。应该会对程序语言到底怎么玩的,有更深入的理解。

虽然这周没作业,但是强烈建议大家把作业环境搭配好。需要安装这门课搞的 image,然后在虚拟机上跑。
https://lagunita.stanford.edu/co ... eba0969a5a7592916d/
https://lagunita.stanford.edu/co ... 3c89d2ed498f26a019/

在配置环境的时候碰到了几个问题,估计大家也会碰到,放在这里。
1. 没有权限 mkdir, ...
我的解决方法是直接输入: sudo su
拿去超级权限吧。懒得烦了,反正是虚拟机。上完课就删了。

2. 找不到 coolc, spim
这个有些棘手,尤其是当你打算用 apt-get install spim, 发现还失败了。
其实这门课的老师都帮你把可执行文件存在这个image里面了。
我的解决方法是:
> which coolc
现在应该是什么输出都没有,因为环境变量没配置。
> ls -l /home/compilers/cool/bin/
你可以看到,你要的 coolc, spim 都在这里。所以需要配置一个全局环境变量指向这里
> sudo vim ~/.bash_profile
进入后,输入 i, 进入 vim 编辑模式
复制下面的
# configure path of compiler
export PATH=$PATH:/home/compilers/cool/bin


然后输入
:wq
保存并退出。这样就会让bash看到这些可执行文件

> which coolc
还是没输出??怎么回事
我们需要重新扫描下bash_profile

> source ~/.bash_profile
> which coolc
> which spim

现在应该啥都有了。

尝试着用coolc&spim 跑下程序吧。作为开课的第一个作业,就把跑完 hello_world.cl 的内容粘贴在这个帖子下面吧。
hello_world.cl 是课程提供的一个example, 在:[size=1em]/usr/class/cs143/examples/hello_world.cl
你可以把他复制到你的文件夹下:
cp /usr/class/cs143/examples/hello_world.cl .

coolc hello_world.cl


spim hello_world.s

Output:


SPIM Version 6.5 of January 4, 2003Copyright 1990-2003 by James R. Larus (larus@cs.wisc.edu).All Rights Reserved.See the file README for a full copyright notice.Loaded: /usr/class/cs143/cool/lib/trap.handlerHello, World.COOL program successfully executedStats -- #instructions : 152         #reads : 27  #writes 22  #branches 28  #other 75
如果你遇到了什么问题,麻烦在下面留言。相信其他人应该会有解决方案的。如果感兴趣,可以看下 hello_world.s, 还是很有趣的。希望上完这门课后,可以知道,这个文件是如何生成的,之后是怎么用的。






评分

参与人数 1大米 +5 收起 理由
debuger + 5 感谢!

查看全部评分


上一篇:ASIC Bootcamp: STA Basic Concepts
下一篇:每天打卡IC学习记录
luochenhuan 2018-3-13 02:21:40 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   95% (276)
 
 
4% (14)    👎
给lz点赞👍
回复

使用道具 举报

lulu_0386 2018-6-10 07:37:15 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (45)
 
 
2% (1)    👎
楼主是用print 看 match 了什么来debug 吗 ? 写的作业match得不对。。。
回复

使用道具 举报

本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   94% (286)
 
 
5% (16)    👎
lulu_0386 发表于 2018-6-10 07:37
楼主是用print 看 match 了什么来debug 吗 ? 写的作业match得不对。。。

可以跑一下他给的grading script. 会generate出来一个grading的directory里面有test case和expected output. 可以照着这个debug. 感觉有些corner case直接写还是挺难cover到的,比如说各种奇怪的white space...
回复

使用道具 举报

lulu_0386 2018-7-19 10:16:05 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   97% (45)
 
 
2% (1)    👎
嘎嘎嘎嘎大魔王 发表于 2018-7-19 05:27
可以跑一下他给的grading script. 会generate出来一个grading的directory里面有test case和expected outp ...

嗯嗯,谢谢~
回复

使用道具 举报

子竺 2020-11-17 20:40:29 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   0% (0)
 
 
0% (0)    👎
楼主,求助,coolc和spim都可以运行,但是spim运行出来的结果是加载的是exceptions.s而不是trap.handler。这里的文件路径问题可以从哪里更改呀?
回复

使用道具 举报

子竺 2020-11-17 20:48:08 | 显示全部楼层
本楼: 👍   0% (0)
 
 
0% (0)   👎
全局: 👍   0% (0)
 
 
0% (0)    👎
大佬,求助,在coolc和spim都可以运行后,spim运行出的结果不对,loaded出来的不是trap.handler而是exceptions.s,这个问题可以怎么处理呀
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表