打算花两年潜心研究编译器与虚拟机实现,2008创造一门新语言,高手进来灌水指点
打算花两年潜心研究编译器与虚拟机实现,2008创造一门新语言,高手进来灌水指点
我2006年1月15号辞职,本想休息3年,一时好奇,3月22号开始复习考研,谁知报那个
计算机应用专业有2000多人报考,招120人,又了解到研究生的学位课就只有几门
算法设计与分析
计算机数学
计算机软件新技术
操作系统分析
软件工程技术
导师也就是忙着拉项目做,气愤的是还没我以前拉的项目钱多,
考研数学也是垃圾,英语更是rubbish,
想不通各大高校为啥把垃圾桶中严婆婆的<<数据结构>>当成宝了,
看了一大堆的政治,还不如看看卡耐基的<<人性的弱点>>有用。
浪费了8个月时间,最后还算觉悟了,11月23号放弃考研
从此我这个没上过大学的农村子弟美好的大学梦破灭。。。
2006年11月23号做了个长远的计划,准备花1到两年时间潜心研究编译器与虚拟机实现
目前买了
1.<<Modern Compiler Implementation in C>>
2.<<Programming abstractions in c>>
3.<<算法分析与设计>>
4.<<算法设计与分析基础>>
另外还下载了lcc,gcc,FreeBSD,linux,jdk-1_5_0-src-scsl的源码,准备好好研究一下,
其他的还会去研究java,ruby等语言的一些优点和不足,准备创造一门全新的语言。
最后,当烦躁、想休息时,准备用以下几种方式轻松一下:
1.弹吉他狂吼
2.背NCE
3.看名著
4.来CSDN回答技术问题
5.上QQ或英语论坛跟MM瞎聊
6.没想到。。。
过一个月就25了,2001年毕业,没什么爱好优点,就是自学能力强点,就是喜欢
把自己的思路用程序实现。
最后请各位再介绍点好的专业书吧,国内的教材除外。
以后我会阶段性的来报告一下成果,
两年以后最佳结果是XXX语言之父,
最差结果是只会找找各类OS,VM的BUG
最最差结果是Coder
狂人+善人=神
问题点数:80、回复次数:224Top
1 楼eceg(背井离乡也是出于无奈)回复于 2006-12-02 12:42:08 得分 1
sfTop
2 楼Bible_Chou(日子在发霉)回复于 2006-12-02 12:44:59 得分 1
想法很好,
但是不太现实。
Top
3 楼liangqingzhi(老之)回复于 2006-12-02 12:48:18 得分 1
接分Top
4 楼J2ME_IS_ALL()回复于 2006-12-02 12:50:52 得分 1
想法好,不现实Top
5 楼jxfengzi(子丰)回复于 2006-12-02 12:54:17 得分 1
upTop
6 楼CsdnPlayer()回复于 2006-12-02 12:56:12 得分 1
再现实点就好了。Top
7 楼baiyu123(学习JAVAing)回复于 2006-12-02 13:02:36 得分 1
jfTop
8 楼cyrys()回复于 2006-12-02 13:13:50 得分 1
牛
狂顶Top
9 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-02 13:28:23 得分 0
刚吃完午饭回来。
计划已进行了8天
<<Programming abstractions in c>>差不多看完,
FreeBSD,linux已装到VMware Workstation,研究了一下,
还OK了。
走极端生活才更精彩。。。
下线了,休息时再上来看看。Top
10 楼wtzmax()回复于 2006-12-02 13:32:34 得分 1
又看到了一个吃饱了撑着的SBTop
11 楼schopendauer(http://paiming.org/bbs)回复于 2006-12-02 14:08:48 得分 1
来吧,这里
http://www.paiming.org/bbsTop
12 楼WiseNeuro(春之舞)回复于 2006-12-02 14:54:53 得分 1
计划已进行了8天
<<Programming abstractions in c>>差不多看完,
FreeBSD,linux已装到VMware Workstation,研究了一下,
还OK了。
--------------------------------------------
感觉很奇怪,8天看完,怎么看的?我以前看本<AJAX编程基础>都花了一个月呢
。作程序设计语言在linux下要比在windows下多出很多辅助工具,而且还有强大的gcc,为什么
不直接安装linux,研究GCC呢?而且完全可以基于GCC做二次开发。
Top
13 楼ilove8(千里|你去哪里了,我等了你很久了!)回复于 2006-12-02 14:58:12 得分 1
jfTop
14 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-02 15:35:20 得分 0
又看到了一个吃饱了撑着的SB
===========================
兄弟,有空介始几本好书吧,多说几个SB也不能证明我是SB
计划已进行了8天
<<Programming abstractions in c>>差不多看完,
FreeBSD,linux已装到VMware Workstation,研究了一下,
还OK了。
--------------------------------------------
感觉很奇怪,8天看完,怎么看的?我以前看本<AJAX编程基础>都花了一个月呢
。作程序设计语言在linux下要比在windows下多出很多辅助工具,而且还有强大的gcc,为什么
不直接安装linux,研究GCC呢?而且完全可以基于GCC做二次开发。
=================================================================================
我不是从零开始学的,基础还行,看书知道作者解决问题的思路就行了。
<<Programming abstractions in c>>写得很好,还有最后四章没看,晚上再看几个小时就结束了。
linux直接装没装成功,我的华硕笔记本太新了,很多驱动找不到。
再说看源码在windows上也能看
去书城了,各位想吐口水继续。。。
Top
15 楼argenCHN(【夷不谋夏,胡不乱华】)回复于 2006-12-02 16:08:08 得分 1
我支持你Top
16 楼Ivy_zheng(最后一只恐龙)回复于 2006-12-02 16:16:52 得分 1
hahaTop
17 楼pingyou(裸男.NET)回复于 2006-12-02 16:53:01 得分 1
不会又弄出一个Sonix出来吧?Top
18 楼insnowind(喜欢穿着厚厚的棉衣~戴着围巾和手套~踏雪而行的感觉~~~)回复于 2006-12-02 17:01:57 得分 1
只有偏执狂才能生存
楼主,我看好你!Top
19 楼yko2008(¥一分一分又一分,数钱数到手抽筋$)回复于 2006-12-02 17:08:32 得分 0
mark一下.Top
20 楼51Crack()回复于 2006-12-02 17:38:48 得分 0
造个OSTop
21 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2006-12-02 18:19:12 得分 1
支持Top
22 楼liujianhui()回复于 2006-12-02 18:28:55 得分 1
我很欣赏你的理想行为,但人还是要先解决生存问题,再考虑其它。Top
23 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-02 18:53:14 得分 0
我很欣赏你的理想行为,但人还是要先解决生存问题,再考虑其它。
==========================================================
三年内只要家人自己不出什么大病,不工作也不用愁生存问题。
工作不是生活的全部。
我的生活哲学是:努力工作两年后努力“玩”两年
吃完饭上来灌灌水,闪。。。。。。
Top
24 楼colorslife(刚才进车里时,周围的人都看我在哭,就拍窗子让你看见我!)回复于 2006-12-02 18:55:44 得分 1
楼主家一定很有money吧,要不没工作,怎么支撑下去啊Top
25 楼qq7338367(深秋小雨:让一切归于简单 快乐在指尖绽放)回复于 2006-12-02 19:03:39 得分 1
汉语?Top
26 楼qq7338367(深秋小雨:让一切归于简单 快乐在指尖绽放)回复于 2006-12-02 19:04:10 得分 1
加油!CHINA!Top
27 楼icehouse(冰室之UP无罪)回复于 2006-12-02 20:38:14 得分 1
语言的艺术有很多种解释!
计算机和人的沟通可以是人机语言!
人与人的沟通可以是广泛意义上的语言!
思想的沟通可以是深度意义上的语言!
定位挺重要!
程序员好!
技术没前途!
老板好!
老板每天做事想事管理公司难!
·····看你自己了!Top
28 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-03 00:30:07 得分 0
楼主家一定很有money吧,要不没工作,怎么支撑下去啊
=================================================
我是正宗的农民出身,抓过10(8到18岁)年牛、猪、人粪,
插过10年秧,割过10年稻,放过10年牛。
3年学费8600RMB借了6000,工作后个人有幸还了4000。
在我这5000/年,可以过“富人”的生活,除了没小车没三奶之外Top
29 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-03 00:30:47 得分 0
语言的艺术有很多种解释!
计算机和人的沟通可以是人机语言!
人与人的沟通可以是广泛意义上的语言!
思想的沟通可以是深度意义上的语言!
定位挺重要!
程序员好!
技术没前途!
老板好!
老板每天做事想事管理公司难!
·····看你自己了!
=============================
有哲理!Top
30 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-03 00:32:06 得分 0
第一次在CSDN注册,多灌了点水。
休息,睡觉Top
31 楼rawa459()回复于 2006-12-03 00:55:24 得分 1
r03@sohu.com,QQ:160404973,正在做一个精简型C编译器,希望联络一下。Top
32 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-03 08:45:48 得分 0
有意将此帖当做学习记录,不知CSDN的帖子能留多久?
昨晚已将<<Programming abstractions in c>>看完(只看大部分认为有用的)
最大收获如下:
1.第一次体会到递归在算法中的强大作用(重点4-7章)
2.表达式树(第14章),为编译原理入门建立一点初级概念
3.C程序也能写出类OOP的风格
<<Programming abstractions in c>>斯坦福大学教材
作者:Eric S.Roberts
页数:665
原书出版时间:1996
译者:闪四清
中译本最大缺点:程序代码有N多错误(还好不影响看书)
学习时间:约50小时
出一道算法题,有兴趣的可以做做:
试设计一个递归算法,产生n!个不同的全排列
答案在“考研论坛”,可惜无人帮顶.
http://bbs.kaoyan.com/thread-1697273-1-2.html
下一部进入<<编译原理>>
2006-12-03 08:00Top
33 楼jihailong(谁给我分我和谁急)回复于 2006-12-03 13:25:54 得分 1
先看看自然语义学方面的理论书籍
语言开发其实和代码没多大关系,核心是表达思想/组织思想的方式
bj研究c++用了十年,前5年都是玩语义学和理论数学
精神不能当饭吃,理性的分析更为可贵
希望楼主能早日成功Top
34 楼abenboy()回复于 2006-12-03 13:31:45 得分 1
愿望是美好的,现实是残酷的。
希望你是那个可以冲出残酷走向成功的人,祝福。Top
35 楼wanilyer(缘随影去)回复于 2006-12-03 13:35:11 得分 1
顶 希望楼主能坚持不懈的去追求自己的梦想。。。
先不管现实不现实。。很多伟大的成就和思想刚开始不也被人认为是不现实的吗?
佩服楼主的勇气。。
像我就没那么潇洒了。。我必须为了生活而学习。。而不是为了理想而学习。Top
36 楼c_aimilan()回复于 2006-12-03 16:19:06 得分 1
浮躁!Top
37 楼ttoth12(命运的角斗士)回复于 2006-12-03 16:26:43 得分 1
只有偏执狂才能生存,有道理,不过列宁说过一句话,就是,这个世界上面99%的人都不能把自己的言语落实到自己的行动上,希望lz成为那个1%的人!!!Top
38 楼breakind(冰舞,把练街舞的精神拿来编程,必有所成.)回复于 2006-12-03 16:26:51 得分 1
要坚持下来Top
39 楼FengYuanMSFT((6.4 被封杀)袁峰 http://fengyuancom.spaces.live.com)回复于 2006-12-03 16:30:48 得分 1
新语言有什么用? 有什么好处? 别人为什么要用你的语言.
你要研究语言, 起码要看: http://acm.org/sigplan/Top
40 楼ansff()回复于 2006-12-03 19:07:40 得分 1
楼主,我相信你肯定可以成功的!只要你坚持下去!
会一直关注你的贴。
其实不管三年后结果怎样,你都会成功的!!钻了多么多年,你起码也有一定成就了。比你读研好多了Top
41 楼oolongTea(顶者)回复于 2006-12-03 20:42:05 得分 1
强帖留名
据说同一帖只能回复30次,楼主一个月来顶一次帖就差不多了
Top
42 楼seu_cose(专注于通信技术)回复于 2006-12-03 20:43:47 得分 1
楼主可以再开帖~~~~强贴留名~~~Top
43 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-03 20:46:16 得分 0
2006-12-03
08:40至11:20
看完<<Modern Compiler Implementation in C>>中译本第一章p1-p9(共9页)
至少10处错语,翻译拗口,不流畅。
12:30至19:20
跑遍全市有计算机的大小书店,除了
<<Modern Compiler Implementation in C>>的中译本之外
竟然找不到第二本编译相关的书,感叹。。。。
下一步网上邮购英文版书籍,
翻译类开始戒备。
发此帖动机:
1.从(袁峰VS金旭亮)的论述中受益
2.CSDN还是有高人存在
3.很新运今年租的房子有宽带
4.旁人的嘲笑更能激发学习的兴趣
5...........
Top
44 楼ControlCOder80()回复于 2006-12-03 20:59:00 得分 1
坚持就是胜利
不过只有真正潜下心去研究才会成功
切忌浮躁
Top
45 楼TEST_n(成长是一种过程。)回复于 2006-12-03 21:10:37 得分 1
先顶了再说。Top
46 楼ohming(QQ帕拉图)回复于 2006-12-03 21:33:09 得分 1
一个软件,甚至设计语言的架构不是一个人的力量可以完成的,前些年,我留意到一个一张软盘可以载得下的桌面OS,以为是一种很好的嵌入系统,但是现在已经渺无音信了。
开创Linux的那个小子是个奇迹,可能不会有第二个了......
如果有,如果是中国的,那就应该是楼主了......Top
47 楼pankun(剑神一笑 Console下面干革命)回复于 2006-12-03 22:19:52 得分 1
实现一门语言和设计一门语言完全是二回事.你能自学二个月编译原理实现一个面向过程语言的解译器,但要设计好一门新语言,你至少还需要十年.
语言不止是词法语法,语义设计更是需要功力.Top
48 楼pankun(剑神一笑 Console下面干革命)回复于 2006-12-03 22:36:27 得分 1
我大三就自学实现过一个pascal编译器,当时也是雄心勃勃,想自创一门新的语言,但实践发现,我目前能做的,顶多是一些语法上便利性的改变而已,而任何成功的语言,背后都是有自己的设计思想的.别认为设计语言==实现编译器.
好心奉劝,非泼冷水,真想在这上面有建树,二年别提,做好二十年的准备.
另外谢谢袁老大的给出的urlTop
49 楼swimmer2000(时间是用来浪费的,所以每当我做了一点事都觉得很自豪)回复于 2006-12-03 23:12:46 得分 1
不太现实,
学编译原理推荐看看龙书.
---------------------------------------------------
to pingyou(裸男.NET)
不会又弄出一个Sonix出来吧?
那个SB东西是sinox,不要搞错了.Top
50 楼richincsdn2(闲人马加爵)回复于 2006-12-03 23:40:19 得分 1
建议考研,学学人家的研究方法也好过自己胡乱Top
51 楼cccloveyf(春虫虫)回复于 2006-12-04 10:36:14 得分 1
你想好你要创造的语言要做什么的嘛?
在什么领域?
要填补哪些空白?
还是仅仅再模仿一个XX语言?Top
52 楼changemyself(心有灵犀鬼才心)回复于 2006-12-04 13:00:42 得分 1
个人需求是第一生产力Top
53 楼yunshanwuzao(云山雾罩)回复于 2006-12-04 13:06:52 得分 1
快回火星吧,地球很危险的。Top
54 楼AFIC(A Fool In China)回复于 2006-12-04 13:23:11 得分 1
先花10年去看算法再说Top
55 楼edzhcom(http://edzh.com 技术文章,美女贴图)回复于 2006-12-04 13:31:43 得分 1
lz应该向你的前辈Sinox请教一下Top
56 楼osoftware(白菜)回复于 2006-12-04 13:52:31 得分 1
支持LZ
强贴留名Top
57 楼zzw_happy(蒹葭苍苍)回复于 2006-12-04 17:41:43 得分 1
老袁的url不错,有价值,正在看。Top
58 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-06 16:11:28 得分 0
2006-12-06 15:20
关于翻译:
例1 英文
------------------------------------------------
Many of the important data structures used in a compiler are intermediate
representations of the program being compiled.
中文
------------------------------------------------
编译器中使用的许多重要数据结构都是被编译程序的中间表示。
例2 英文
------------------------------------------------
an expression sequence (s,e) behaves like the C language “comma” operator, evaluating the
statement s for side effects before evaluating (and returning the result of) the expression e.
中文
------------------------------------------------
表达式序列(s,e)的行为类似于C语言中的逗号操作符,在计算表达示e(并返回其结果)之前先计算语句s的副作用。
备注:
side effect
n.
(药物等到的)副作用
出自金山词霸<<简明英汉词典>>
side effect
n.
A peripheral or secondary effect, especially an undesirable secondary effect of a drug or therapy.
副作用一种次要的或起第二作用的效应,尤指一种药物或治疗方法产生的不合需要的副作用
出自金山词霸<<美国传统辞典(双解)>>
学习相关:
1.<<Modern Compiler Implementation in C>>英文版邮购事项暂搁,准考证都没办法保证收到,担心中...
2.从http://www.cs.princeton.edu/找到了英文版第1章
3.清华版<<编译原理>>前5章(p1-p93),理论不错,编译各阶段实现例子全无,附录中唯一的PL/0编译程序实现也是全抄。
学习编译知识3天有感:
传说中“<<编译原理>>是计算机本科专业课程中最难的一门”纯属扯蛋!
Top
59 楼fdlm_dark()回复于 2006-12-06 16:49:26 得分 1
传说中“<<编译原理>>是计算机本科专业课程中最难的一门”纯属扯蛋
我怎么感觉是模拟电子技术最难汗。。。Top
60 楼abinleo(南无阿弥陀佛)回复于 2006-12-06 17:27:17 得分 1
支持,等开发出来先给我用.Top
61 楼yyyyssss(Song)回复于 2006-12-06 17:32:53 得分 1
偏执狂。楼主哪里人啊Top
62 楼pankun(剑神一笑 Console下面干革命)回复于 2006-12-06 19:50:14 得分 1
学习编译知识3天有感:
传说中“<<编译原理>>是计算机本科专业课程中最难的一门”纯属扯蛋!
-----------------------
浮燥,都不想说你了Top
63 楼Aaron9979215(秀庭)回复于 2006-12-06 19:50:28 得分 1
顶你!Top
64 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-06 22:23:51 得分 0
2006-12-06 22:00
定义:什么叫浮躁?
您要是一个连高中都没上过的人您会来发这样的帖吗?
您能坚持8个月平均每天8小时看考研的书吗?
您有信心3个月能把新概念英语1-3册背下来吗?
您是从20岁开始就不向家里要过一分钱的人吗?
您还是单身吗?
您认为每小时3页的看书速度很快吗?
您理解成语“废寝忘食”吗?
您知道一个完完全全的自学者最需要的是什么吗?
要是您的回答全是肯定的,我在CSDN改名叫“我很浮躁”!
避免争论的方法就是停止争论----引自卡耐基<<人性的弱点>>
谢谢!
Top
65 楼hszj(hszj)回复于 2006-12-06 22:54:51 得分 1
支持楼主的精神,搞程序确实是需要一定天分的,不是每个人都能明白指向指针的指针,如果你能在一晚上看完C语言并且理解指针(我当年就是这么干得,之前没有写过程序),那么你就具有程序的天分,努力吧。我们公司现在在全力推广我们的表格控件,如果达到一定的实力很愿意资助这样的朋友的。我们产品网址是http://www.ejun.cn 让我们共同努力Top
66 楼netying()回复于 2006-12-06 23:22:57 得分 1
是否该考虑在此帖做点广告Top
67 楼ciahi(爪哇乞丐)回复于 2006-12-06 23:29:43 得分 1
支持!!!Top
68 楼taol(taol)回复于 2006-12-06 23:47:50 得分 1
搞编译器好像应该先学习形式语言和自动机啊Top
69 楼rawa459()回复于 2006-12-07 00:35:34 得分 1
编译器是计算机技术中最顶尖的技术,相对最稳定,我也是爱好者之一。联络QQ:160404973Top
70 楼pankun(剑神一笑 Console下面干革命)回复于 2006-12-07 00:46:23 得分 1
回复人:KRplusSRequalGOD(狂人+善人=神) ( 一级(初级)) 信誉:100 2006-12-06 22:23:51 得分:0
?
2006-12-06 22:00
定义:什么叫浮躁?
您要是一个连高中都没上过的人您会来发这样的帖吗?
您能坚持8个月平均每天8小时看考研的书吗?
您有信心3个月能把新概念英语1-3册背下来吗?
您是从20岁开始就不向家里要过一分钱的人吗?
您还是单身吗?
您认为每小时3页的看书速度很快吗?
您理解成语“废寝忘食”吗?
您知道一个完完全全的自学者最需要的是什么吗?
要是您的回答全是肯定的,我在CSDN改名叫“我很浮躁”!
------------------------------------------------
我坚持了5年每天6小时以上开发相关的书
我有信心3个月背新概念英语1-2册背下来,以前也这样做过,三册没背
我18岁后就没向家里要过钱(大一,大二学费除外)
单不单身我倒不晓得你是啥意思.
我说你浮燥,是因为这句"学习编译知识3天有感:传说中“<<编译原理>>是计算机本科专业课程中最难的一门”纯属扯蛋!"
三天你能对编译原理有多大的理解?我倒要请教一下,你认为计算机本科专业课程中最难的是什么Top
71 楼pankun(剑神一笑 Console下面干革命)回复于 2006-12-07 00:51:12 得分 1
以后我会阶段性的来报告一下成果,
两年以后最佳结果是XXX语言之父,
---------------------------
这还不浮燥?搞大跃进Top
72 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-07 01:13:38 得分 0
2006-12-07 01:00
对清华大学计算机系三位教授编写的发行了超过20万册的<<编译原理>>的一点置疑:
第32页:
“字母表 字母表是元素的非空有穷集合,我们把字母表中的元素称为符号,因此字母表也称为符号集。”
“符号串 由字母表中的符号组成的任何有穷序列称为符号串”
第33页:
“指定字母表∑之后,可用∑*表示∑上的所有有穷长的串的集合。例如,如∑={0,1},
则∑*={ε,0,1,00,01,10,11,000,001,010,...}”
“∑*称为集合∑的闭包”
“∑+=∑∑*=∑*∑”
“∑+称为∑的正闭包”
第34页:
“规则,也称重写规则、产生式或生成式,是形如а->в或а::=в的(а,в)有序对,其中а是某
字母表V的正闭包V+中的一个符号,в是V*中的一个符号。а称为规则的左部,в称作规则的右部”
疑问1:
到底字母表∑的闭包集合∑*中的元素是符号?还是符号串?
疑问2:
设∑*中的元素是符号的话,如∑={0,1}
当∑*={ε,0,1,00,01,10,11,000,001,010,...}
001能做为规则а->в中的左部或右部吗?
疑问3:
设∑*中的元素是符号串的话,
在“规则,也称重写规则、产生式或生成式,是形如а->в或а::=в的(а,в)有序对,其中а是某
字母表V的正闭包V+中的一个符号,в是V*中的一个符号。а称为规则的左部,в称作规则的右部”
这段话中的“符号”是不是应换成“符号串”?
Top
73 楼Momoass(小泉涌出琼珠液,巨树顶向艳阳天)回复于 2006-12-07 01:16:23 得分 1
为楼主的远大理想而顶!Top
74 楼saliengu(想吃油条)回复于 2006-12-07 10:44:01 得分 1
强烈支持搂主,中国需要这样的青年,哪怕做不出来,哪怕失败了,都很值得尊敬,让那些不懂脑筋就知道骂人的人滚远点,你还不配做人!
楼主,有时间可以加我qq:12201540 很想结交你这位朋友,我目前在上海工作!
祝一切顺利Top
75 楼zhangbin888(防火墙)回复于 2006-12-07 14:08:33 得分 1
楼主要想好,你的东西作出来在中国是否有市场,在世界上是否有市场,没有市场的东西就要悠着点搞了...Top
76 楼leehwy(冰风火燎)回复于 2006-12-07 14:23:50 得分 1
LZ有这种理想,真是令人PF。不过如果做出来的东西没有市场,花这么大的代价去做就有些不值得了。LZ三四而后行。Top
77 楼tony1978(突击召唤师)回复于 2006-12-07 14:27:10 得分 1
听说有个太极语言的构想不错,嘿嘿。
另外,要以发展的眼光看问题。个人感觉语言本身已经不是那么重要了。Top
78 楼lurenfu(具有中国特色的社会主义初级阶段,一百年不变)回复于 2006-12-07 16:02:27 得分 1
楼主的想法很出众,但楼主的能力离开发语言、开发编译器还差得太远,你对编译原理的理解还太肤浅,看看袁老大给出的链接吧:http://acm.org/sigplan/
楼主先看看形式语言和自动机,然后再来看编译原理吧
同意某楼一位同志的观点,研究编译器,二年时间不够,做好二十年的打算吧Top
79 楼rookie_one(猩猩会武术,流氓挡不住)回复于 2006-12-07 16:42:46 得分 1
楼主太有魄力了,太有男人味了,我爱你:)Top
80 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-07 19:17:57 得分 0
2006-12-07 19:00
感谢所有来顶帖的CSDNer!
所有的回帖我都会细看,
另外,我这人基本上不上QQ,也没有过在网上
交友的记录,也不喜欢交,请见谅,好意心领了。
我学编译相关的知识也纯属兴趣,没任何商业目的,能走多远走多远。
要是所有兴趣全没了,生活也无味了。
过去的苦日子早已过去,
今天过得好吗?
未来的生活自有未来的样子。
Top
81 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-16 15:53:40 得分 0
2006-12-16 15:50
只是低着头不停的看书,没想到刚一抬头,又过了10来天。
编译理论知识将近看完,
主要学习用书<<编译原理(第二版)>>华中科技大学老师写的,
其他交叉学习用书:
清华版<<编译原理>>
<<Crafting A Compiler with C>>
<<形式语言与自动机>>南开大学,陈有祺
对于初学者来学,单独看那一本都不是最佳选择,
选定一本好懂的,其他的用来参考,互相比较学习效果最佳。
其实如果是看国内<<编译原理>>教材的话,
并不需要专门看<<形式语言与自动机>>,
<<编译原理>>中只用到正规文法,上下文无关文法及简单的DFA,
国内<<编译原理>>教材开始的几张都有介绍,只是直接给出定理
不讲证明,证明过程不比证明高数定理简单,有兴趣再看<<形式语言与自动机>>
国内大学本科专业课也很少开<<形式语言与自动机>>这门课,这是研究生的课
程,我在两个大学的书店讯问过,竟然没卖过<<形式语言与自动机>>相关的书!!
最后花了3块钱,在一旧书店的角落里找到了一本<<形式语言与自动机>>,
要是一开始就看国外的教材,真得先看<<形式语言与自动机>>
我在看
<<Modern Compiler Implementation in C>>
<<Crafting A Compiler with C>>
这些算是初级的编译教材时关于形式语言与自动机理论的知识
确实没国内教材讲得多,有时一开始就冒出个CFG让你想好久。。。
学习<<编译原理>>关键点是了解一些概念和算法
从写程序的角度去理解文法,理解算法,
想像一下,给你一个程序源文件你怎样分出各个token,
每个token怎样排列才是正确的。
(国内教材讲文法时,一些字母表,字符,字符串,符号串,单词记号,记号,符号
一大堆术语,很容易让人混乱。好简单的一件事都说不清楚,无非就是各种合法的字符
构成了一个源程序,然后按正规文法(或正则表达式)把源程序分成一个个的token,再按
上下文无关文法判断组合在一起的token序列是否符合上下文无关文法规则。)
(token:国内教材一般写成单词记号或符号,从源程序的角度理解就是语言的保留字,
标识符(如变量名、函数名等),常数,其他可以出现在源程序中的字符(+ - * / , ; = < > .....))
学到LL(1),LR(0),SLR(1),LR(1),LALR(1)时,
要时刻想像每个token是放在一个队列中,
不停的取队列下一个token,不停的放入一个堆栈中,
不停的对栈中的数分析,不停的用另一符号替换
栈中的数。
语义分析也简单,就是像你写程序一样,程序某个变量满足什么
条件,就采取什么动作。
其他的IR,符号表,没什么难的,有点耐心就行,
代码优化,存储,目标代码生成只要汇编学得不差
都是些技巧性问题。
有时间再批批国内教材写书风格,
全然不懂得怎样的书才符合人类的认知过程,
也难怪说<<编译原理>>难学
接下来的学习任务准备深入<<编译原理>>细节
用java或C实现个简单但五脏俱全的编译器,
然后研究JVM,用编译器将源文件编译成.class,放在
JVM运行,最后再构造一个类VM。
另外,最近看到有几本程序语言理论的书很不错,准备购买。
Top
82 楼muxiujh(小河)回复于 2006-12-16 16:08:32 得分 1
我帮你联系张艺谋,拍个大片 狂想黑客帝国Top
83 楼pzhuyy(喝小酒泡尼姑)回复于 2006-12-16 16:11:40 得分 1
不知道lz打字会不会我比我们快上个几十倍:)Top
84 楼xiaoyetao08(人尚未成为人)回复于 2006-12-16 16:22:56 得分 1
得涩!!!Top
85 楼lauxp(我不是超人,只因把内裤穿在里面)回复于 2006-12-16 17:44:23 得分 1
实现一门语言和设计一门语言完全是二回事.你能自学二个月编译原理实现一个面向过程语言的解译器,但要设计好一门新语言,你至少还需要十年.
语言不止是词法语法,语义设计更是需要功力.
===
严重同意
language >> compiler
天才的程序员很常见,优秀的设计师可是需要时间磨练的
anyway, 支持lz, 国产的编译器
Top
86 楼redboot(^@^ )(猪头三头猪)(^@^)回复于 2006-12-16 17:50:07 得分 1
加油,我看好你哦!Top
87 楼tangqiuzheng(恭喜发财万事如意)回复于 2006-12-16 18:22:17 得分 1
这样不好,我必须要教你一个非常吓人的东东.
当你再大一两岁,体内雄性激素水平在将近三十岁的某一天突然下降到一定水平,再不想拼,完全变了一个人,只想吃现成的,那你现在的人生设计给自己添大麻烦了.你走的这条路要持续努力很多年,不好.还是把一些东西现成拿到手再说Top
88 楼djwdd111(前世的先知)回复于 2006-12-16 19:08:28 得分 1
支持 关注 我喜欢超人Top
89 楼Ivy_zheng(最后一只恐龙)回复于 2006-12-16 23:17:03 得分 2
对清华大学计算机系三位教授编写的发行了超过20万册的<<编译原理>>的一点置疑:
第32页:
“字母表 字母表是元素的非空有穷集合,我们把字母表中的元素称为符号,因此字母表也称为符号集。”
“符号串 由字母表中的符号组成的任何有穷序列称为符号串”
第33页:
“指定字母表∑之后,可用∑*表示∑上的所有有穷长的串的集合。例如,如∑={0,1},
则∑*={ε,0,1,00,01,10,11,000,001,010,...}”
“∑*称为集合∑的闭包”
“∑+=∑∑*=∑*∑”
“∑+称为∑的正闭包”
第34页:
“规则,也称重写规则、产生式或生成式,是形如а->в或а::=в的(а,в)有序对,其中а是某
字母表V的正闭包V+中的一个符号,в是V*中的一个符号。а称为规则的左部,в称作规则的右部”
疑问1:
到底字母表∑的闭包集合∑*中的元素是符号?还是符号串?
////////////////////////////////////////////////////
符号串,疑问2就不必答了吧,呵呵
疑问3:
设∑*中的元素是符号串的话,
在“规则,也称重写规则、产生式或生成式,是形如а->в或а::=в的(а,в)有序对,其中а是某
字母表V的正闭包V+中的一个符号,в是V*中的一个符号。а称为规则的左部,в称作规则的右部”
这段话中的“符号”是不是应换成“符号串”?
////////////////////////////////////////////////////
应该是符号串
写个编译器确实不难,楼上一位说的对,难的是设计一门好的语言,可不要设计一个像JavaScript的东东Top
90 楼tiger0607(瞄一眼)回复于 2006-12-16 23:47:46 得分 1
楼主所提Σ*中的符号应该是元素的意思,Σ*的元素是字符串是无疑的Top
91 楼YouTuBe(天不言自高,地不言自厚,人不言自无能,水不言自下流)回复于 2006-12-17 12:57:06 得分 1
Ding:)Top
92 楼wind44(心如死灰)回复于 2006-12-17 13:35:00 得分 1
帮楼主顶一下~Top
93 楼zdf9218(众里寻丫千百度, 丫儿却在灯火阑珊处)回复于 2006-12-17 14:45:54 得分 1
不废话。支持楼主。
少年强则中国强。
有激情,有汗水。实现什么都够了Top
94 楼gjb999(老鼠老鼠还是一只老鼠!)回复于 2006-12-17 15:04:59 得分 1
不管怎么说 支持你
相信你会有成就的Top
95 楼luoyingbao(哈哈哈^_^)回复于 2006-12-19 12:44:40 得分 0
大家的眼睛都在看你,努力呀!
我们应该向LZ学习啊,精神可佳。中国如果多这样的人,我们还要用别人的东西吗?
Top
96 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-21 13:35:35 得分 0
2006-12-21 13:30
好想写个<<24年回忆录>>,就怕好莱坞各类名导没能力拍,
为什么?为什么?为什么?24年啊!24年啊!24年啊!
那年初3,班里统一办身份证,回家问老爸老妈,我是哪年哪
月哪日生的,二老只想了想,只说是农历11月29,年份太过久
元了,早已忘记。我觉得公历1月15号不错(躲得了初一,躲不过十五),
跟农历11月29也挺接近,1月15号前多加个1982年,就变成了现在的身份证。
今年年初跟一位“老”女同学闲聊,聊到了生日的话题,她是公历1月17号
为了查明我俩是否有“缘分”,在网上找到了万年历,打电话回家确认,打听
童年伙伴年龄,最后终于得出“本人于公历1981年11月24日出生”的“伟大结论”
终于知道我比耶稣大一天了,我也是只另类的“摩羯”,只是24年都不知生日是何物?
回忆录回到这。
最后再帖上一个日常时间表:
时间段:星期日----------->星期五
07:20 手机闹钟响 刷牙 洗脸 早餐
08:00至11:30 计算机(编译器、虚拟机、程序语言理论)(一般会去学校自习室看书,PLMM无数,无心欣赏)
11:30至13:30 午饭、上网时间
13:30至16:00 新概念英语NCE(主要:听读写 次要:说)
16:00至17:30 吉他、乐理(偶尔运动一下下)
17:30至19:00 晚饭、休息时间
19:00至22:30 计算机(编译器、虚拟机、程序语言理论)(一般会去学校自习室看书)
23:00至00:00 心理学、小说名著(靠着床头看)
00:00 睡了。。。。。。
时间段:星期六
自由的一天:逛书店、漫步校园、老同学闲聊、运动、晚上弹吉他狂OK等等等等
现在的生活跟考研相比,只差一个字:
前者是“享受”,后者是“忍受”。
Top
97 楼idAnts(此广告位招租)回复于 2006-12-21 13:45:52 得分 0
祝你成功Top
98 楼haha52(执子之手,敛其半世癫狂;吻子之眸,遮其半世流离)回复于 2006-12-21 14:29:15 得分 0
http://www.china-pub.com/computers/common/info.asp?id=19854
自动机理论、语言和计算导论
作者:(美)John E.Hopcroft,Rajeev Motwani,Jeffrey D.Ullman
http://www.china-pub.com/computers/common/info.asp?id=13733
编译原理(龙书)
作者:[美]Alfred V.Aho,Ravi Sethi, Jeffrey D.Ullman
http://www.china-pub.com/computers/common/info.asp?id=17992
计算机程序的构造和解释
【作者】 (美)Harold Abelson,Gerald Jay Sussman,Julie Sussman
这三本都是好书啊.
比较抽象,2个月能认真看完就很不错了。
偶1,3本看了一半.
2本没看.
另外,传说国外编译原理,教材中有三本"圣经",除了龙书,还有两本.
偶也是自学计算机,现在工作快2年了.
也想能静下心来看看数学.Top
99 楼Tawtg()回复于 2006-12-21 14:59:34 得分 0
有理想是好的,但是要实事求是!Top
100 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-21 15:23:21 得分 0
刚才忙于备份公司以前的数据,然后再刻碟。
忙完后,瞄了一下发到CSDN的记录发现打错了个数字:
应将“11月24日”改成“12月24日”
CSDN怎么有这样的规定:犯了错不能改。
唉!也好!可以让人少犯点错。
引用“另外,传说国外编译原理,教材中有三本"圣经",除了龙书,还有两本.”
=================================
虎书:
Modern Compiler Implementation in C
Modern Compiler Implementation in ML
Modern Compiler Implementation in JAVA
龙书:
COMPILERS:PRINCIPLES,TECHNIQUES,AND TOOLS
鲸书:
Advanced Compiler Design and Implementation
在www.china-pub.com网站上都有。
下线。。。。。。。。。
Top
101 楼levinknight(Coral)回复于 2006-12-23 19:50:42 得分 0
在我这5000/年,可以过“富人”的生活,除了没小车没三奶之外
_______________________________
牛人,请问下,你在哪个城市生活?Top
102 楼djwdd111(前世的先知)回复于 2006-12-23 20:43:45 得分 0
牛人,你好强悍,关注。Top
103 楼firstaking(黄宝)回复于 2006-12-24 09:05:49 得分 0
不如开发个操作系统Top
104 楼saillovemeng(扬凡)回复于 2006-12-24 09:51:04 得分 0
把C都编译成中文的,挺不错的,全用中文表达式
Top
105 楼cm4ever(小P[Fly Away])回复于 2006-12-24 15:46:03 得分 0
比较羡慕楼主能够这样生活。
我要是回家乡非得被世俗的眼光杀死,所以目前还是得在城市艰难的混着。
不过看得出来你折腾linux还不够彻底。
建议你再买一台电脑,加3个硬盘装linux/bsd/solaris,当然这样的话你的5k/y的预算就不够了。对于计算机研发来说,一台电脑是不够用的。
其实本身我比较怀疑你的5k/y包括宽带费了吗?Top
106 楼xlh67xlh67xlh67(文文)回复于 2006-12-24 16:26:24 得分 0
有志气,我要向你学习Top
107 楼jin_lei()回复于 2006-12-25 10:34:45 得分 0
我没那么伟大
我继续自杀好了!Top
108 楼surge_diligent()回复于 2006-12-25 11:44:49 得分 0
收藏,老弟所为为我梦中所想,可惜没有老弟的这种魄力和毅力.没有这种想法的注定平凡,有想法,实施了才可能成功,共勉!Top
109 楼lshuy2001(洋洋)回复于 2006-12-25 11:50:24 得分 0
好像看到了祖国的希望,但是搞一个语言我想一两个有点玄乎Top
110 楼iamwarrior(i am a warrior)回复于 2006-12-25 11:56:31 得分 0
初学者的呓语而已
你一定会在学上1到2年后明白你今天的想法有多么愚昧和可笑Top
111 楼wd_6532(用frontpage写asp,jsp,php,ace)回复于 2006-12-25 12:45:19 得分 0
这样不好,我必须要教你一个非常吓人的东东.
当你再大一两岁,体内雄性激素水平在将近三十岁的某一天突然下降到一定水平,再不想拼,完全变了一个人,只想吃现成的,那你现在的人生设计给自己添大麻烦了.你走的这条路要持续努力很多年,不好.还是把一些东西现成拿到手再说
===================
同感。Top
112 楼tangren()回复于 2006-12-25 13:06:41 得分 0
不管怎样,行动是真理!!!,付出就有回报!!Top
113 楼KRplusSRequalGOD(狂人+善人=神)回复于 2006-12-25 20:33:20 得分 0
2006-12-25 20:30
心情极度复杂的一天
1.关于生日
好想感受一下被人关心、在意的感觉,
要是12月24号手机里能出现亲朋好友的
哪怕是简单的短信祝福或许都能让我
兴奋一整天,结果怎么还是一样的失落?
难道别人收到我的短信时不觉得是惊喜吗?
我想应该没有多大感觉吧?少了我一个,后面还有
更漂亮的礼物。对于我,一条短信都是奢望!
==========================================
“人类的天性是容易忘记感激别人,所以,如果
我们施一点点恩惠都希望别人感激的话,那一定
会使我们大为头痛。
如果我们想得到快乐,我们就不要去想感恩或忘
恩,而只享受施予的快乐”
==========================================
引自 卡耐基<<人性的弱点>>
2.关于考研
等了一个月都没等到苏州大学的准考证,终于等
到12月25号了,苏州大学规定12月25号开始,没收
到准考证的考生可以补发,虽然11月23号已决
定不考研,为了过年回家找个借口向二老交代,上
午在合适的时间给苏州大学研招办打电话咨询,没
想到对方服务态度如此恶劣,号称全国10大美丽
校园的苏州大学的对外咨询部门竟然没有一点服务
意识。还好,心已不在考研上,不然将军还没上
战场就已遭小人暗算,死得比窦娥还冤。
3.编译书籍
<<Modern Compiler Implementation in C>>中文版太过简洁,
很多问题没有细化,要是你是第一次学编译也不推荐此书。
中文翻译也不顺畅。
<<Crafting A Compiler with C>>
前7章翻译还顺畅,只在65页发现一个大一点的错语.
第7章以后的,可能是换了个译者的原因,看得莫明其妙,只能
对照着英文版看。
<<编译原理>>华中科技大学版
第5章讲得很糟糕,第124页竟然有5处错误
其他章节还不错,浅显易懂,此书非常适合编译入门者。
<<编译原理>>清华版
第1章讲得还不错,其他的只能说把简单问题复杂化!错误也多!
不知为何发行量会超过20万册?就因为是清华????
先前买到的这些编译书籍已经不起推敲,今天中午第6次去书店
老板看我跑得勤快,这次终于进书回来了,找本好书不容易啊!
书目如下(只有中文版):
龙书:<<编译原理>>
鲸书:<<高级编译器设计与实现>>
<<编译器工程>>
<<算法导论>>
本来准备看LCC源码的,
可惜LCC编译器两位开发者写的书
<<可变目标C编译器——设计与实现>>还没买到
4. “陌生的她”
第一次见到她是在师大的食堂里,当时她坐我对面,
相距不到半米,对着一位陌生女生吃饭我会尴尬,会
脸红,那顿午饭比平常至少慢了8分钟。
从那之后,也不知道为什么,总会碰面,有时会在食堂
门口碰到,她也是常常一个人来。晚上,我去师大自习室复
习考研的时候,还常常在教室及楼道上碰到她。这样持续了
一个学期。
暑假食堂不开饭了,学校自习室也不能看书了,一直到开学后1个
多月都没见到她,还以为她毕业了。
那晚,5楼自习室人不多,我坐在最后排,看<<操作系统概念>>看得
连她什么时候走进来都不知道,只是偶然间伸伸脖子时才看到她也
坐在最后一排。此后,在食堂又见到她了,只是没以前那么频繁,
有一次我在自习室看书时,她就坐在我前面,只是都在互相偷看而已。
师大食堂很多,也很大,自习室也无数,每次遇到她总是会心跳不停。
今天在买书回来的路上,第一次在师大门前那条之前从未见到她的路上见到了
她,迎面走来,在她身边还有一位男生,看来两人挺亲密的,我想她也应该看到我了,
只是匆匆而过,只是少了心跳,只是。。。
想起上学期有次下自习后鬼鬼祟祟的跟在她后面就想笑,
看着以前写在备课本后关于她的日记更让人哭笑不得!
感情的事对我来说又好奇又害怕,
好几次了,都只是还没开始就已结束。。。。。。。
5. 不只是程序人生
看着现在的Blog越来越火,看看自己发的帖子竟然有110多的回复了,
明白了为什么人类总有喜欢让人关注,喜欢透露“隐私”的心理,
本想写个<<24年回忆录>>作为对有关回贴的回复,顺便让CSDNer们
对我24年的“畸形”的不只是程序人生的人生吐吐口水。
可惜写不下去了。。。。。。
从15:30写到现在,才写到这里,写出来的连自己都不想多看一次,
也许某一天会有个<<XX年回忆录>>但不会是<<24年回忆录>>
6. 感谢
再次感谢所有来顶帖的CSDNer们!
差不多一个月过去了,还有人关注,真是出乎意外。
以后不会常来回帖了,最多每月回两次,写写学习总结。
谢谢!
Top
114 楼seu_cose(专注于通信技术)回复于 2006-12-25 21:23:25 得分 0
楼主,感情是你的杀手,切忌
Top
115 楼worinimei(一切都很迷茫)回复于 2006-12-25 21:28:16 得分 0
留个名!看LZ进展!Top
116 楼carrotmin(carrotmin)回复于 2006-12-26 00:24:40 得分 0
看着眼晕。。。
当然能够完全自由的选择自己的生活是令人羡慕的
但是LZ是否曾经想过自己身上也会有一点责任?
是否也曾经想过让自己的家人能够有更好一些的生活而不仅仅是不再需要他们负担?是否也曾经希望不让自己的父母为自己担心?
我大概可以猜想LZ的生活方式,以前读书时候就见过。大学里的边缘人,天天泡在学校里,一个月几百块大概也可以罢,如果不计算房租的话。很多都是所谓的“考研专家”。
刚背到新概念英语第三册的人是考不上研的,那本书我初中毕业就背过了,至今还记得几篇呢,单词量不是那个级别的。
LZ现在想做的事,大概每个计算机系学生在大学里都做过的,写一个编译器的原形,那通常是编译原理这门课的课程设计,当然不是每个学生自己都能写得出来,反正写不出也不见得就不能过
其实人有点理想没什么不好,我闲的时候也会幻想下自己写个什么软件玩玩之类,不过也就限于想想而已。不过,为什么不先找一份合适的工作,让自己保持一种正常的生活状态,在闲暇时候做这些事情呢?
Top
117 楼cndeer(还是王子)回复于 2006-12-26 02:52:19 得分 0
markTop
118 楼haha52(执子之手,敛其半世癫狂;吻子之眸,遮其半世流离)回复于 2006-12-26 10:28:02 得分 0
不光看。自己多动手写啊。
两码事.
两年下来,不能成为大师,至少也是个技术牛人。Top
119 楼gjb999(老鼠老鼠还是一只老鼠!)回复于 2006-12-26 16:32:44 得分 0
继续。。。。。Top
120 楼Sniperlxw(狙击手)回复于 2006-12-26 19:22:57 得分 0
生活费用那里来???Top
121 楼djwdd111(前世的先知)回复于 2006-12-26 19:23:36 得分 0
怎么要两个月才来一次啊!!那可要好等了.Top
122 楼fj881520(我爱ASP.NET)回复于 2006-12-26 23:11:03 得分 0
..........................................Top
123 楼lin_style(﹏.贾诩(某人语:矮子也高潮))回复于 2006-12-27 00:21:10 得分 0
支持LZ
思想思想。 。。。Top
124 楼leo2003(【健者天行】谁伴我闯荡)回复于 2006-12-27 09:37:49 得分 0
纯支持Top
125 楼rawa459()回复于 2006-12-27 14:30:21 得分 0
JavaScript怎么了,ajax就是javaScript的脚本,大多流行的电子地图就是这个编写的。Top
126 楼royeleo(煨灶猫||(只要一颗★))回复于 2006-12-27 15:45:25 得分 0
PFTop
127 楼deathwing_zl()回复于 2006-12-31 20:37:16 得分 0
强,我最喜欢狂人的那句"先者是享受,后者是忍受",关注中Top
128 楼BinaryTreeEx(狂徒(完全抵制日货))回复于 2007-01-01 06:40:33 得分 0
搂住可以先实现一个非常简单的C的编译器,比如只有整型数的四则运算的C语言的子集。
然后用VC的命令行来编译,看看你的快还是微软的快。依次为方法,逐步加入功能,目标
是的编译器比微软的快。
你能做多少就作多少,至少希望搂住以最小代价尽早的获得成功或失败Top
129 楼universee(吾乃太极语言之父)回复于 2007-01-01 13:23:53 得分 0
顶,支持,编译器是极度好玩的东西Top
130 楼universee(吾乃太极语言之父)回复于 2007-01-01 13:25:23 得分 0
楼主说“过一个月就25了,2001年毕业”,
20岁就毕业了?那么年轻Top
131 楼cndeer(还是王子)回复于 2007-01-01 13:45:25 得分 0
我20岁刚上大学Top
132 楼shl6894(越学越无知)回复于 2007-01-01 14:05:23 得分 0
实现一门语言和设计一门语言完全是二回事.你能自学二个月编译原理实现一个面向过程语言的解译器,但要设计好一门新语言,你至少还需要十年.
语言不止是词法语法,语义设计更是需要功力.
===
多一点沉稳,少一点浮躁,狂而不傲Top
133 楼kate007(df)回复于 2007-01-01 15:53:08 得分 0
其实计算机也是很容易的,俺学法律大四读了半年,靠计算机研究生,kao,303 去年分数线305 , 其实用心读书很容易的。Top
134 楼kangji(尾鱼头)回复于 2007-01-01 17:32:47 得分 0
精神可嘉,希望你能坚持到底
我平身最烦口是心非、半途而废的人Top
135 楼kaukiyou(小全)回复于 2007-01-01 22:49:51 得分 0
支持,名字就叫O++Top
136 楼solo_w(男人有钱可以找到女人,有才华可以让女人爱上你。有才华又有钱,女人你随便挑。)回复于 2007-01-01 23:01:16 得分 0
想起linus,想起李安,想起。。
LZ加油,我也在家学习,不过不如你这么潇洒就是。愿与君共勉。年轻即是一切。
只要梦还在。Top
137 楼dsj1234(http://www.dianshijin.net/)(http://dianshijin.cn)回复于 2007-01-02 09:00:21 得分 0
不错, 留名看进展Top
138 楼macongbin88(小马)回复于 2007-01-02 10:04:01 得分 0
liumingTop
139 楼Non_miracle(CSDN小七)回复于 2007-01-02 11:45:53 得分 0
不是天涯的“法哥”降临CSDN了吧。。。。Top
140 楼LinZhongBao(【豹哥】)回复于 2007-01-02 11:46:55 得分 0
ooTop
141 楼KRplusSRequalGOD(狂人+善人=神)回复于 2007-01-09 22:44:35 得分 0
************************
2007.01.09 22:40
************************
1.学习记录:
2006.12.26---2006.12 .29
主要看“龙书:<<编译原理>>” 看了2/5,书不错,不过没看到什么新内容,暂缓...
2006.12.30---2007.01.09
疯狂的11天!人为什么得花时间吃饭睡觉?
那天,蹲在房间墙角那堆书前,随意浏览一下书目,
找到了一本几乎被遗忘的好书: <<深入Java虚拟机(原书第2版)>>
呵呵,发现书是2004年03月27日购买的,到现在还是9成新,
那时一定是在公司忙着做项目了,好书都没来得急看,直到现在才发现。
书的内容不多介绍了,看书名就知道了,5,6,7,8章+附录讲得很精采
光盘的Applet记得看看,会有收获
作者:Bill Venners
译者:曹晓钢,蒋靖
不过书上还是有点错误:如第157 161 164 167 177 185 192 207 209 217 236页等
中文版地址:
http://www.china-pub.com/computers/common/info.asp?id=14719
Bill Venners维护的网站:
http://www.artima.com/insidejvm/resources/
SUN的The Java Virtual Machine Specification
(class文件格式的设计真是太棒了)
http://java.sun.com/docs/books/vmspec/2nd-edition/html/VMSpecTOC.doc.html
在这篇日记的最后面有一个分析class文件的初级java程序,花了整整三
天写好的。一年多不碰JAVA了,得先装JDK与UltraEdit,还得不停的查看
“Java 2 Platform, Standard Edition, v 1.4.2 API Specification”
才能完成。
发程序上来只希望内行人看了能得到一点窃喜...
2.我的学习路线循环图:
语言理论---->编译器---->虚拟机---->应用服务器---->应用框架
| |
|<---------------------------------------------------|
3.最想达到的目标:
原创新语言+原创编译器+原创虚拟机+原创应用服务器+原创应用框架==>让80%的程序员改行或失业
(目标越不能实现,学习越有趣)
4.灵感起源
时间:2005年
事件:花了1个半月研究爱立信BSC,MSC网元告警,半个月实现一套系统,
为公司赚了11万RMB,用户少了80%的工作量
灵感:1) 当你研究客户的管理、业务流程到了能顶替客户上班的程度,你一定会有很多奇妙的想法;
2) 要是客户有能力做自己的IT系统一定比你这外行做的好
5.私人问题
我不爱经常挂在网上,休息时只到163看看新闻,到983看看娱乐节目,到国外网站查查资料、下下软件。
在网上发帖次数+回帖次数>1次的只有CSDN,考研论坛(用户名是“考研=浪费时间”)
及旺旺英语论坛(用户名忘了,已经不记得多久没回或发过帖了),
前几天因台湾地震,没地方查资料,在chinajavaworld.com注册了个新用户
目前回过及发过的内容没有发现有说谎的成分,有“强烈偷窥心理”的天才可以google一
下,或许可以找到“惊喜”。
来CSDN发此帖也是为了用此帖“强奸”“程序人生”中无数的“YY帖,女人帖,月经帖”
6. 梦
2007年01月04日晚上8点打电话回家,老妈一个人在家,聊天其间老妈突然说她前几天
做了个梦,梦里听老爸说我考完试了,还考了0分。听后,让我尴尬、惊讶、欣喜了好一阵,
要是有时间在弗洛伊德的理论之上深究下去或许会成为下一个精神分析学派的鼻祖。
我只是没收到考研准考证而已,只是最近才决定不考研,本无心向家里说考研的事,
老妈竟然能梦到我考0分???
7.“坚持”与“浮躁”
感谢在CSDN给我发短信的CSDNer们,但我一般不会登录CSDN论坛,要进的话只是匿名登录,
只在想回帖的时候才用用户名登录,所以短信会很久才发现,发现后可能也不是很爱回短信
只为了说“谢谢”,但这不代表我没仔细看短信内容。
另外,也不用担心或鼓励我会不会“坚持”之类的,担心我会不会“坚持”就
好比担心我会不会“坚持”每天吃饭一样好笑,当你一直处于“坚持”的状
态时,就意味着你在痛苦的挣扎什么,学会放手,才能学会生活。
狂而不躁,才能激情不断
8.分析class文件的初级java程序(可单独运行)
只做了一个基本框架,能顺利读完整个class文件,但有很多细节没做
(如占2,3个字节的字符没解析,float,double值,access_flags,错语处理,单字节指令码等)
程序关键思路: 从最初尝试一大堆if,for,switch语句,最后改进到递归和代码生成,
充分利用面向接口编程的思想
算法时间复杂度:O(n) n=每个class文件字节数
Top
142 楼KRplusSRequalGOD(狂人+善人=神)回复于 2007-01-09 22:45:44 得分 0
/*
*******************
MyCodeFactory.java
*******************
*/
import java.io.*;
public class MyCodeFactory {
/*
两位一组的表示:(类名下标,字段个数),字段有先后顺序
三位一组的表示:(字段类型,字段名下标(或类名下标),占用字节)
字段类型:0:类实例引用 1:int 2:String 3:long 4:float 5:double
占用字节:当字段类型=0时,0:特殊的常量池类 -2:特殊的属性类 -1都表示读取的字节数由前面字段算出
*/
public static int VALUE[]={
15,16,
1,40, 4, 1,41,2, 1,42,2, 1,50,2, 0,16,-1, 1,43,2, 1,44,2, 1,45,2, 1,49,2,
0,17,-1, 1,46,2, 0,18,-1, 1,47,2, 0,19,-1, 1,48,2, 0,20,-1,
16,2, 1,58,1, 0, 0,0, 17,1, 1,52,2,
1,2, 1,53,2, 2,55,-1, 3,1, 1,55,4, 4,1, 4,55,4, 5,1, 3,55,8,
6,1, 5,55,8, 7, 1, 1,51,2, 8,1, 1,54,2, 9,2, 1,52,2, 1,57,2,
10,2, 1,52,2, 1,57,2, 11,2, 1,52,2, 1,57,2, 12,2, 1,51,2, 1,56,2,
18,5, 1,43,2, 1,51,2, 1,56,2, 1,48,2, 0,20,-1,
19,5, 1,43,2, 1,51,2, 1,56,2, 1,48,2, 0,20,-1,
20,2, 1,59,2, 0,0,-2,
21,4, 1,67,2, 1,68,2, 1,69,2, 1,70,2,
22,1, 1,52,2,
23,4, 1,73,2, 1,74,2, 1,75,2, 1,76,2,
25,9, 1,60,4, 1,62,2, 1,63,2, 1,64,4, 1,65,-1, 1,66,2, 0,21,-1, 1,48,2, 0,20,-1,
26,2, 1,60,4, 1,61,2,
27,1, 1,60,4,
28,3, 1,60,4, 1,71,2, 0,22,-1,
29,3, 1,60,4, 1,72,2, 0,23,-1,
30,3, 1,60,4, 1,80,2, 0,24,-1,
24,2, 1,67,2, 1,79,2,
31,3, 1,60,4, 1,78,2, 0,14,-1,
14,5, 1,67,2, 1,53,2, 1,51,2, 1,56,2, 1,81,2,
32,2, 1,60,4, 1,77,2,
33,1, 1,60,4,
};
public static String NAME[]={
/*****下面的是类名, "0"是占位串,下标0-33的类名固定,其他可自由变动*******/
"ClassData"/*(0)*/,"CONSTANT_Utf8"/*(1)*/, "0","CONSTANT_Integer" /*(3)*/,
"CONSTANT_Float",//4
"CONSTANT_Long",//5
"CONSTANT_Double",//6
"CONSTANT_Class",//7
"CONSTANT_String",//8
"CONSTANT_Fieldref",//9
"CONSTANT_Methodref",//10
"CONSTANT_InterfaceMethodref",//11
"CONSTANT_NameAndType"/*(12)*/,"0", "LocalVariableInfo"/*(14)*/,
"ClassFile"/*(15)*/, "ConstantPool" /*(16)*/, "Interfaces"/*(17)*/,
"Fields" /*(18)*/, "Methods" /*(19)*/, "Attributes"/*(20)*/,
"ExceptionTable"/*(21)*/,"ExceptionIndexTable"/*(22)*/,"InnerClassesTable"/*(23)*/,
"LineNumberInfo"/*(24)*/,
"Code" /*(25)*/, "ConstantValue" /*(26)*/, "Deprecated" /*(27)*/,
"Exceptions" /*(28)*/, "InnerClasses" /*(29)*/, "LineNumberTable" /*(30)*/,
"LocalVariableTable"/*(31)*/, "SourceFile" /*(32)*/, "Synthetic" /*(33)*/,
"0","0","0","0","0","0",
/*****下面的是字段名*****************************************************************/
"magic" /*(40)*/, "minor_version" /*(41)*/, "major_version" /*(42)*/,
"access_flags" /*(43)*/, "this_class" /*(44)*/, "super_class" /*(45)*/,
"fields_count" /*(46)*/, "methods_count" /*(47)*/, "attributes_count" /*(48)*/,
"interfaces_count" /*(49)*/, "constant_pool_count"/*(50)*/,
"name_index" /*(51)*/, "class_index" /*(52)*/, "F_length" /*(53)*/,
"string_index" /*(54)*/, "bytes" /*(55)*/, "descriptor_index" /*(56)*/,
"name_and_type_index"/*(57)*/, "tag" /*(58)*/, "attribute_name_index"/*(59)*/,
"attribute_length" /*(60)*/, "constantvalue_index"/*(61)*/,
"max_stack" /*(62)*/, "max_locals" /*(63)*/, "code_length" /*(64)*/,
"codes" /*(65)*/, "exception_table_length"/*(66)*/,
"start_pc" /*(67)*/, "end_pc" /*(68)*/, "handler_pc" /*(69)*/,
"catch_type" /*(70)*/, "number_of_exceptions"/*(71)*/,
"number_of_classes" /*(72)*/, "inner_class_info_index"/*(73)*/,"outer_class_info_index"/*(74)*/,
"inner_name_index" /*(75)*/, "inner_class_access_flags"/*(76)*/,
"sourcefile_index" /*(77)*/, "local_variable_table_length"/*(78)*/,
"line_number" /*(79)*/, "line_number_table_length" /*(80)*/,
"index" /*(81)*/,
};
private static String DIR="com" + File.separatorChar + "myCodeFactory" + File.separatorChar;
&

