0909编译原理

1.编译原理学什么?

编译原理这门课主要关注的是编译器方面的产生原理和技术问题,看似和软件开发不沾边,但从本质上来讲编译原理是属于一个算法问题。虽然我们学习的数据结构和算法分析也是在将算法,不过讲的是针对某些特定的问题而总结出的算法,而编译原理则是讲如何将高级计算机语言翻译成计算机能直接读懂的机器语言的算法。

主要学习的内容则是编译语言及文法的基础知识、词法分析、语法分析、语义分析几中间代码生成、符号表组织、运行时的存储组织分配、代码优化及目标代码生成等。

2.为什么学习编译原理?

操作系统和编译系统构成程序开发者与计算机之间的基本交流界面,通过学习编译原理这门课程掌握编译的基本理论、常用的编译技术,了解编译过程及编译系统结构和机理。通过学习编译原理可以更好的理解程序语言的内部机制,从而更好的理解和运用程序设计语言。

我们学习一门技术,不但要知其然,还要知其所以然,这样才能应对技术的不断更新,才能不被技术的发展所淘汰。编译原理就是这样一门课程,它教会我们的不只是编译器构造的基本原理和流程,同时,还教给我们如何去严谨的去思考、编写程序。

3.怎么学编译原理?

大家都认为编译原理是一门比较难学的课程,有些学习过的网友甚至说它是大本软件课程里最难的一门课,而且觉得学习的实用性并不大,因为这些知识并不能直接的表现在我们的某个方面,而且使用的频率并不高。

很多人都认为难就说明它肯定是没有那么好学的,但既然有这门课。我们还是得端正心态,一步一步慢慢学起。

由于编译原理在很大程度上偏向理论方面,毕竟我们学习的是一个原理性的知识,但这并不妨碍我们将理论和实际相结合。理论难学这是很明显的,但只要我们能够从实际的代码编写过程中找到理论的精髓,我们就能把它融会贯通。

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

首先定义出已知的关键词、函数等,在读取时直接进行匹配,如果相同就直接调用提前定义好的功能,不同就进行之后的判断。

主要是要正确的定义好每个函数模块的功能。

 

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