博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
2016/9/9
阅读量:5248 次
发布时间:2019-06-14

本文共 746 字,大约阅读时间需要 2 分钟。

1/编译原理是什么?

答:编译在我的看来,就是在于高级语言(如c语言)和汇编语言(机器语言)之间的一种工作。

因为一台单纯的硬件计算机只能够执行汇编语句,一条汇编完全对应计算机CPU的一条硬件的指令。

所以就需要一种介质介于两种语言之间,那就是编译原理。

2/学习编译原理有什么好处?

答:学好编译原理据网友回答:

1、可以更加容易的理解在一个语言种哪些写法是等价的,哪些是有差异的

2、可以更加客观的比较不同语言的差异
3、更不容易被某个特定语言的宣扬者忽悠
4、学习新的语言是效率也会更高
5、其实从语言a转换到语言b是一个通用的需求,学好编译原理处理此类需求时会更加游刃有余

3/不学有什么损失?

答:作为一个软件开发专业的学生,以后学的每门高级语言即使学得再好也就只是懂得了表层意思,

却不能知道它在下层是如何运行的。你学习它更多的是去追寻程序设计语言的本质,如它在寄存器

分配中将会使用到贪心算法,死代码消除中将会使用到图论算法,数据流分析中使用到的Fixed-Po

int Algorithm,词法分析与语法分析中使用到有限状态机与递归下降这样的重要思想等等,也许你

以后不会成为一个编译器开发工作者,但是编译原理的学习中所获,所思的东西足以让你终生获益。

4/如何学习编译原理?

答:学过编译原理课程的同学应该有体会,各种文法、各种词法语法分析算法,非常消磨人的耐心和

兴致;中间代码生成和优化,其实在很多应用场景下并不重要(当然这一块对于“编译原理”很重要)

;语义分析要处理很多很多细节,特别对于比较复杂的语言;最后的指令生成,可能需要读各种手册,

也比较枯燥。

转载于:https://www.cnblogs.com/zhu573514187/p/5856978.html

你可能感兴趣的文章
JSP的指令include和动作include的区别
查看>>
oracle数据库导出、导入
查看>>
C 筛选法找素数
查看>>
TCP为什么需要3次握手与4次挥手(转载)
查看>>
IOC容器
查看>>
grid - 隐式地命名网格区域名称
查看>>
计算机网络(谢希仁版)——第三章回顾(2)
查看>>
jQuery1.0图片截览
查看>>
Css实现元素的垂直居中
查看>>
ElasticSearch的x-pack配置查询
查看>>
织梦仿站第三课:网站的文件分割
查看>>
Windows 2003全面优化
查看>>
(转)AWK函数
查看>>
linux ---- diff命令
查看>>
URAL 1002 Phone Numbers(KMP+最短路orDP)
查看>>
day15前端(回顾+JavaScript)
查看>>
HttpUrlConnection 请求
查看>>
SpringBoot 之Actuator.
查看>>
全排列
查看>>
cve-2010-2553 CVDecompress 函数堆溢出漏洞
查看>>