哎,这样的老师没药救了
2008-05-01 02:16AM | Comments(2) | Category:胡诌 | Tags:胡诌
教我们计算机专业英语的老师徐某人,是个混饭吃的。
一门选修课,他竟然为我们订了四本教材,上课的时候却只用一本。其他三本他美其名曰辅助教材。我看他显然是拿回扣的。据我所知,不但是我上的这门课,只要是他上的任何课都是这样。
第一小节课上听力,他只说一句话,%ldquo同学们,我们再听一遍%rdquo,45分钟就反复听一篇课文。第二小节课,他假装翻译课文。他以为我们没看见,其实我全看见了,他把书后的翻译撕下来在那里读。读完后,离下课还有20分钟,他又说:同学们,给你们20分钟时间把课后习题做一下。一节课就这样没了。
我们人人都知道这老师脾气好,上课从来不点名,所以缺席的相当厉害。这课选的人本来就少,同学还缺席,最后就我一人去上了。不过令我十分佩服的是,徐某人看见只有我一人,照样%ldquo同学们,我们再听一遍%rdquo,%ldquo同学们,给你们20分钟时间把课后习题做一下%rdquo,我狂晕
如何得到 GCC 编译时各阶段的结果
2008-05-01 02:13AM | Comments(0) | Category:Compiler | Tags:gcc
1.预处理
-E
2.词法、语法分析
-fdump-translation-unit
可以使用-address,-all,-slim后缀
3.中间代码生成
-fdump-tree-original
得到优化前的中间代码
-fdump-tree-optimized
得到优化后的中间代码
-fdump-tree-inlined
内联函数是在生成中间代码时处理的,并且你可以通过该选项查看
以上3个参数也可以使用-address,-all,-slim后缀
4.汇编代码
-S
莎士比亚语言(二)
2008-05-01 02:09AM | Comments(0) | Category:Compiler | Tags:language
在继续分析源程序之前,先说说如何表示常量数字。任何 名词 是一个常量数字 1 或 -1,取决于这个名词是否 nice, 囧。例如,"flower" 是 1,因为 flower 是 nice 的;"pig"是 -1,因为 pig 很脏;中性词,例如 "tree",记为 1。
有 n 个形容词修饰名词,就意味着此名词代表的常量数字乘以
。
举个例子:
莎士比亚语言(一)
2008-05-01 02:05AM | Comments(0) | Category:Compiler | Tags:language
这几天在网上查找关于 GCC 前端的资料,偶然发现一个很有趣的编程语言%mdash%mdash莎士比亚 语言。作者发明这个语言,最初是作为语法分析课的课程设计,所以没有编译器,只有一个 C 语言的翻译器。现在已经有一个外国人为此语言写了一个 GCC 前端。我特地找来了此语言的文档翻看了一下,大囧,不愧为世界十大另类语言之一。
我们来看看著名的 莎士比亚版 Hello World。
%nbsp第一行是 标题 ,只起装饰作用,对翻译器来说,相当于注释。
%nbsp以下四行是剧本中出场的人物。他们相当于变量,可以保存有符号的整数值。
%nbsp当然你只能使用莎士比亚剧本中的角色作为变量名。
%nbsp逗号后面是对角色的描述,相当于注释。
英语啊,英语。。。为伊消得人憔悴
2008-05-01 01:51AM | Comments(1) | Category:胡诌 | Tags:English
与计算机打交道越久,就越能体会到英语的重要性。想要学好计算机,不会英语真的不行。
我觉得我们老师的一句话讲得很有道理:一项新技术的兴起,首先有的是英语的文档,谁叫那计算机的老祖宗在西方啊。等有了中文的翻译,那项技术是已经被别人嚼烂的了,我们还如获至宝。所以说真正先进的技术只掌握在一部分人手里。
最近在查找关于 GCC 的资料,我才真正体会到%ldquo书到用时方恨少%rdquo的感觉。那个资料本身就不多,中文的就更少了。linus 说中国对开源贡献的太少,我认为其中一个主要原因就是语言和文化阻碍,你看连一个像样的中文文档都没有。我只能硬着头皮,慢慢啃原版文档,那个是相当的累。
可能有的人说,开源在中国没前途。没有中文文档不是语言的问题,而是没有人去翻译。可是事实并不是这样子,就算有人去翻译,那质量多数是不该恭维的。就拿我现在在看的机械工业出版社的《现代操作系统》作为例子。其中第43页关于进程与线程,有这么一句:
使 cp rm 在文件覆盖或删除之前进行提示
2008-05-01 01:38AM | Comments(2) | Category:Linux | Tags:linux hack
shell 命令 cp 和 rm 都有一个 -i (--interactive)参数,可以使文件在被覆盖以及删除之前进行提示。如果不使用带 -i 参数的 cp 和 rm 命令很可能导致文件被误删除或覆盖,要恢复起来可就不像 windows 那么容易了。但是每次使用命令都要多加一个参数比较麻烦,也不是一个好方法。因为很多 shell 脚本以及 makefile 文件可能都要用到这两个命令,而且这些命令没有加 -i 参数。如果哪个人不怀好意在脚本中添加诸如 %ldquo rm -rf * & %rdquo 等语句,那就要欲哭无泪了。
如何创建 deb 软件包
2008-05-01 01:30AM | Comments(2) | Category:Linux | Tags:ubuntu package
摘录自 creating and distributing deb files written by Andrew Min
创建一个 deb 软件包有多种方式:
1. 使用 CheckInstall
asic-linux.com.mx/~izto/checkinstall/
最简单也是最糟糕的一种方式。你要做就是运行
make
编译源代码,然后运行 checkinstall 创建 deb 软件包。但是这种方式不会安装依赖也不允许你声明依赖。所以用户必须手动安装依赖。
AutoApt%nbsp%nbsp
help.ubuntu.com/community/AutoApt
和 AutoDeb%nbsp%nbsp
wiki.ubuntu.com/AutoDeb
可能可以解决依赖问题,但他们现在还是带有实验性质的。
关于 checkinstall 的教程:
help.ubuntu.com/community/CheckInstall
2. 使用 Debian Package Tools FE
url.fullcirclemagazine.org/927dc1
一个基于 Qt 的带界面的工具,比 checkinstall 好,但也不是很理想。
3. 手动创建软件包
linux 下多进程模拟哲学家就餐问题
2008-05-01 01:04AM | Comments(0) | Category:Operating System | Tags:processes
问题描述:
五个哲学家围坐在一张圆桌周围,每个哲学家面前都有一盘通心粉。由于通心粉很滑,所以需要两把叉子才能夹住。相邻两个盘子之间放有一把叉子。哲学家 的生活中有两种交替的活动:吃饭和思考(其他活动对哲学家来说都无关紧要)。当一个哲学家感到饿了时,他就试图分两次去取左边和右边的叉子,每次拿一把, 但不分次序。如果成功得到了两把叉子,就开始吃饭,吃完后放下叉子继续思考。请为每一个哲学家写一段描述其行为的程序,而且不会死锁。