通行证: 用户 密码
http://www.pconline.cn/
汽车网 | 游戏网 | 时尚女性
分站:北京 上海 广州 深圳 香港
广西 重庆 山东 江苏 辽宁 福建
首 页 | 今日报价 | 产业资讯 | 数码世界 | 硬件资讯 | 软件资讯 | 下 载 | 游 戏 |
论 坛 | 产 品 库 | 渠道商情 | 招聘培训 | 二    手 | 评 测 室 | 导 购 | 社 区 |
摄影
部落
手 机
数码相机
随身听
 DIY配件
笔记本
 台式机
摄像机
精品廊
-
您现在的位置: 招聘与培训 > 程序开发 > 其它开发认证 > 开发认证其它
  少走弯路:学习编译原理的相关建议 出处:CSDN.net
[ 2005-08-10 10:40:24 ] 作者:佚名 责任编辑:lujiezhen

 

  编译原理一般认为是较难的一门课。从网上的评论来看,有人说学了一年半软件理论,就一门编译看不懂;有人甚至说它是大本软件课程里最难的一门;有人抱怨国内的编译教材没有一本容易懂的 从笔者学习实践来看,第一次学了一个多月,理论部分一知半解,第二次学了一星期,基本看懂词法分析的理论部分,语法分析就一知半解了,第三次学了一星期,才基本看懂词法分析和语法分析。由此看来,这门课确实有难度。网上有的帖子,把编译器的编写搞得高深莫测一般,似乎难度极大,非常人能及。

  编译原理究竟难在哪里?笔者的体会,主要在这几点:

  1、错误认识: 很多人以为编译原理只能应用在写程序语言的编译器上,觉得用处不大,学习兴趣不高。而且可能觉得写编译器就必须完全手工来写。

  2、自动机理论: 象NFA,DFA之类,比较抽象,要费些脑子,特别如果学离散数学时没有学自动机理论的话,更是需要多花点时间。

  3、集合论的推演: 主要是一些闭包运算之类,数学基础不好的话,学起来也会感到吃力。

  4、LR文法: 主要是又引入了自动机

  不管哪本编译教材,即使是绝对经典"龙书"也不例外,都要涉及到这几个难点。由于这些内容本身不好懂,作者有再大的本事,也很难把书写得象小说那么流畅好懂。

  明确了难点,接着想对策。大致有这么几种:

  1、端正认识: 编译原理在静态文本处理上有广泛的应用,举个简单的例子,把HTML文件转化为纯文本,利用编译原理来实现"非常"简单。理解了编译原理的实用性,大概可以提高学习兴趣。

  2、反复看书: 这个办法看起来最笨,却是基本的方法。忘了是哪位名人说过,书只要多看,总能看得懂的。

  3、结合源码来看: 这是经典教材Compiler Design in C的作者Allen Hollub建议的方法。这本教材的特色就是包含了大段yacc,lex的代码。这也是个好方法,而且,只有看懂了代码,才能说在根本上理解了理论。当然,要完全看懂yacc的代码,工作量是很大的,而且同样要先理解理论。

  4、删繁就简,避重就轻。网上流传较广的一篇《编译原理学习导论》(作者四川大学唐良)就基本是这种思路,对于词法分析,作者避免了自动机理论和集合论推演的介绍,直接搬出源码来,大大降低了理解难度,对于语法分析,作者介绍了递归下降和LL文法及相应的源码,而对LR文法,只说"理解理论就可以了"。虽然这种方法回避了对于难点的学习,但是用这种方法学习,可以在较短时间内编写出一个能够运行的词法分析器和语法分析器,可以大大提高学习积极性。
 

[1] [2] [下一页]
正在加载评论,请稍候…

招聘与培训
潜入微软总部 感受微软企业文化(多图)
招聘与培训
Google新员工工作一年 70万美元购买豪宅
招聘与培训
外企文化大比较 德企、日企里的人情真相
招聘与培训
一个20岁工作了4年的男网管的真情自白书
 
发给好友 我要报错 投稿给我们 加入收藏 返回顶部
本栏今日更新
相关文章
·老婆没工作 深圳高薪IT白领的理财烦恼
·C++中使用union的几点思考
·一个让比尔·盖茨心惊肉跳的中国人
·通告:CISCO更新CCIE Lab考试
·11年职场之路-工作/年薪/生活的巨变(完)
·UNIX的Shell命令使用详解
·大学生打工遭残酷剥削 辛苦还倒贴钱(图)
·数据库设计中的14个技巧
·VB编程破解Windows屏幕保护密码
·据说是世界编程大赛第一名写的程序
·Delphi编程:QQ聊天记录怎样被记录下来
·从编程角度深入分析传奇木马
·C++编程中Windows图像编程概要
·网络编程:PHP语法速查表
·世界上三大编程武功最高的人(组图)
·世界500强高管给应聘者的11条建议
新闻搜索
高级搜索

本栏今日焦点
-