软件开发: 07 2009存档

      上周末把借来的龙书通览了一遍(希望以后细看),看了才知道为什么大家都说是经典——因为《编译程序设计原理》连例子都是抄的它!(国内的编译原理教材大抵如此)很多例图也一模一样。好在除了例子,《编译程序设计原理》里还把龙书里的练习题做为范例和引子介绍下一章,也算是有所发展。
      新版龙书前面的内容就是讲语法分析、自动机、词法分析、LL(1)分析表、SLR分析表、LALR分析表,耳熟能详的内容,后面几章讲back-end的 优化,算是“赶时髦”,和鲸书似乎有些重叠。例子明明白白,讲解扎扎实实,算法清清楚楚,既是教材也是手册,沉甸甸的一本书,作者们多年的成果。
      经典之作,不敢多说,拜服。

财大气粗

| | Comments (0) | TrackBacks (0)
      一般IT类新闻我都不爱评论(因为看不懂),但这个我就忍不住要说两句了。
      国内的重点大学经常会收到大企业(比如微软、IBM等)的“援助”,按说有钱挺好,但微软是公司,不是学术基金会,给钱的道理很简单:要么用我的机器、要么 用我的软件、要么让你的学生学我的那套软件开发设计方式。记得以前上操作系统课,老师讲完原理讲实例,讲的是windows的“内核原理 ”....windows还有“内核原理”?它的原理就是微软的技术手册上罗列的那一堆东西,具体细节根本是未知,因为没有源码,也就没有实现细节,没有 具体实现怎么能拿来教学?但是没有办法,实验室拿了微软的钱,实验室的老师就得给盖茨点面子,讲讲windows,至于不能深入讲解,那也是没办法的事。 其它的课也是讲微软的开发模式、思维模式,最后你就成了一个微软工厂的后备软件工人,你学的windows并不通用、你学的visual c++并不通用、你学的“大教堂式”的软件开发方式也不适用,你毕 业以后如果不能到微软或在windows下工作,你就只能重学一套开发方法....
      现在学校资金“紧张”,微软的钱学校是收定了,微软的那一套老 师也是讲定了,所以做为学生,能自我解救的唯一方法就是:自己多看看其它操作系统、开发模式下的资料。比如转转linux论坛,学学类unix的开发方 式;找找开源运动的文章,看看顶级程序员(而不是顶级代码工人)是怎么思考和解决问题的。这才能开阔思维,解放大脑。
      如果没记错的话,应该是02年的某个冬天。快期末考试了,我复习化学复习得脑袋发胀,就顶着寒风去周末书市转了转,正好看到了一本二手的《编译程序设计原理》(2000年第一版),我当时简直不能想象什么时候才有时间去看,但 既然便宜,机会难得,所以就买了。后来抽空看到了自动机就没再看了,毕竟时间紧迫。由于化学又无聊又麻烦,所以为了应付,我没敢辅修计算机,同班的有同学 研究编译原理,我却只能干瞪眼(我恨化学系!)。等到读研(04年),去蹭编译原理课,一直跟到SLR分析表那一章,但由于找实习的压力,又没听完。
      今年端午节又把书翻了出来,接着看,还请了一天年假,边休息变做习题。直到前天周日,终于全部看完(第一遍,以后应该还会翻阅的)。
      我真有毅力,七年读一本书。

      书评:典型的抄袭龙书,不过也不怪编者,龙书之外,他还能抄谁?抄得足够清楚,让我都能理解,也算功力吧。
      linux上top命令可以显示进程所占的虚地址空间(VIRT)和物理内存(RES),假如一个进程open一个100M的文件,再mmap之,则 top看到该进程VIRT和RES都是大约100M,但如果针对这用一个文件,此进程再open、mmap一次,照理只是虚地址空间增加到200M,占用 内存还是100M,但我top发现,该进程现在VIRT和RES都是200M。接着实验,就这样 open、mmap 20次,top看进程的VIRT和RES到了2G,而用free命令看系统的cache,也才100M。看来top是有些小问题的,ps命令也是一样。

      注:我的linux是redhat AS 4