编译原理是什么?
编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。
学习编译原理的好处
可以用语法分析来分析出一段用户上传是否含有代码,从而让你的网站更健壮。
分析和分解用户输入的SQL语句,理解是否有害和是否有SQL注入。
在业务软件中结算方面允许用户输入条件表达式和四则运算,允许用户自定义结算公式或条件,使软件上一个档次。
甚至可以实现自己创造的编程语言,以后编程全用自语言来做,然后编译成老板要的那种语言。有的公司要JAVA,有的公司要C#,C++,VB等等你都不必每样都费心了。这样做还有一个好处,你的源程序其实是自语言,目标代码则是社会上公认的源程序,所以是可以公开的。如果以这种技术为核心技术开公司的话,则有着技术上更高一层的先进性,这种核心竞争力是很值钱的。
试想,你公司的员工只会用自语言,他们跳槽的机会就少了。而你公司的用户总是可以得到全套的他们认为的源程序,则市场机会就大了。别的一般软件公司可不敢给出全套源程序,总要多少保留一点的。
不学习编译原理有什么损失?
编译原理和信安概论于个人而言能拓宽的视野相对来说会比所谓的“高级Java编程技术”好一点
说这一句的原因是可能许多人之前跟计算机底层的知识接触不太多,比如被C/C++中的指针搞得昏头转向,比如搞不清Java中值传递、对象传递而导致的各种bug等等,而编译原理能为你提供一个契机去了解计算机底层的知识(我这里指的主要是上文“后端”的知识),这些知识能让你更了解怎样利用编程语言这一个程序猿的工具去和机器沟通,让机器去做符合你目的的事。
而信安概论可能是一个能让你提起对信息安全方面兴趣的契机,让你了解原来除了正向地去编写程序为人们服务之外,还有一群人是利用各种手段去入侵程序来获取数据的。就我个人而言,我觉得随着计算机技术、互联网的不断普及,信息安全方面是有一个持续的发展前景的。
而所谓的“高级Java编程技术”,我觉得即使你能抽出总课时的1/5来好好阅读官方文档、做一个具体的应用出来,或者实习即使半个月,学到的东西都比你花一学期去学这门课要多。
如何学好编译原理