0909对编译原理的理解

1.编译原理学什么?

编译原理旨在让人们学习编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成,而且这门课程关注的是编译器方面的产生原理和技术问题。回归到本质上,学习编译原理其实也就是学习一个相对复杂的算法。
 

2.为什么学编译原理?

编译原理这门课程实际蕴含着计算机学科中解决问题的思路、形式化问题和解决问题的方法,这些思路和方法除了对应用软件和系统软件的设计与开发有一定的启发和指导作用外,在提倡学科的交叉不断创新的时代背景下仍然具有非常重要的意义。编译程序构造的原理和技术在软件工程、逆向工程、软件再工程、语言转换及其他领域中都有广泛的应用。学生学习编译原理让学生们理解机器是如何理解高级语言的,更进一步的话,目前研究领域比较热的自然语言处理里面会用到,虽然不是直接用,但里面的思想很有用。同时,学生编译原理学过之后,可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的;可以更加客观的比较不同语言的差异;更不容易被某个特定语言的宣扬者忽悠;学习新的语言是效率也会更高;其实从语言a转换到语言b是一个通用的需求,学好编译原理处理此类需求时会更加游刃有余。

3.怎么学编译原理?

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

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

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

4.思考:在没有学习本书理论之前,如果让你写一个编译器,你是什么思路?

目前,我们只学习了C语言和数据结构,所以我的思路可能就只有C语言这个方向了,所以可以尝试用C语言来写一个编译器。对于现在的我来说,想要通过C语言写出一个编译器肯定是很有难度的。所以要更深层次的去了解C语言,去熟悉更多的表达式。

 

 

 

 

你可能感兴趣的:(0909对编译原理的理解)