引言 还是那句话,编译原理比较乏味,所以有一个感性的,直观的认识,很重要。上一节没有做这个事情,这一小节,就以《编译原理》(龙书)里的那个前端的源码为例,感受一下,一个真正的,完整的,我们的手可以摸得到的,编译器前端的工作情况和结果。 分三部分内容: 1》linux下安装JDK,用来编译front。 2》编译front,front的代码,我已经传上来了,在上一篇博客里有具体的下载地址。 3》看结果,小试牛刀。
7.1安装JDK 参考: http://blog.csdn.net/rital/article/details/5486021 内容如下。 注意:原文中有问题,版本前后不一,本文中已做更正。
Linux下JDK的安装步骤:
第一步:改权限
第二步:安装
结束时提示画面:
Press Enter to continue.....
第三步:设置环境变量
的变量。所以最好的方法还是修改.bashrc文件。(/root目录中的.bashrc是个隐含文件。需要ls –a来看)
以root用户身份修改.bashrc文件,文件末尾增加蓝色字体内容: # User specific aliases and functions
alias rm='rm -i'
# Source global definitions
当然也可以通过更改/etc/profile来实现,不过不推荐这么做,因为这样的设置将对所以用户的shell都生效,对系统安全会产生影响。方法如下: [root@localhost etc]# more /etc/profile 在文件最后加上以下内容即可: unset i
下面来验证一下变量设置是否生效,设置完环境变量最好重起一下,不然看不到效果。 这样,说明已经设置好啦~
第四步:测试
[root@wxr test_temp]# pwd
[root@wxr test_temp]# vi test.java
保存退出,下面来编译、执行;
7.2 编译 1》cd front 2》make
7.3 牛刀小试 1》把你想要测试的代码放到tests目录下,比如rill.t。以书上P628页的例子为例,如下:
2》执行 java main.Main <tests/rill.t >tmp/rill.i 说明:上面命令中‘<’,是将rill.t的内容作为输入,给main.Main 上面命令中‘>’,是将执行结果输出到rill.i 总之,一句话,重定向,或者叫管道。 3》cat rill.i 查看处理结果 结果如下:
4》如果想同时测试多个文件就执行以下make test,这个看一下Makefile就会明白的。
7.4 小结 可见和书上给出的结果一样。下一步就是试着改一下测试代码,或者改一下这个前端,看一下有什么不同。我相信,编译原理这个东西,这样学起来,或许会更有趣一些。 试一下吧。 |
|
来自: cjzhou > 《深入浅出说编译原理》