类型2文法(或上下文无关文法)已经被证明是程序设计语言中最有用的,今天它代表了程序设计语言结构的标准方式。类型2文法(或上下文无关文法)已经被证明是程序设计语言中最有用的,今天它代表了程序设计语言结构的标准方式,为什么大学课程要开设编译原理?为什么要学编译原理(为什么转学大学要开设编译原理。
1、有没有比龙书通俗易懂的编译原理书籍你说的还是抽象难懂。我觉得编译无非就是一个翻译过程,就是把用文字(主要是英文)写的程序语句翻译成计算机可以识别和执行的由0和1组成的机器代码。那么具体翻译过程是怎样的,比如C语言中的计算语句,inta0intb0intc0a BC;等等,这些句子在计算机里是怎么翻译成机器码的,也就是怎么编译?到目前为止,我还没有看到任何一本编译好的书有透彻易懂的解释。可能这些东西太低级,太基础了。
2、为什么要学习编译原理(转为什么大学课程要开设编译原理?这门课主要讲编译器的生成原理和技术问题,看起来和计算机基础领域没什么关系。但编译原理一直是本科生的必修课,也成为考研的必修部分。编译的原理和技术本质上只是一个算法问题。当然,由于这个问题非常复杂,其求解算法也相对复杂。我们学的数据结构和算法分析也讲了算法,但是基本算法,换句话说就是算法入门,而编译原理的课程重点是解一个新的算法。
在人们试图编写一个编译器的同时,许多与编译相关的理论和技术诞生了,这些理论和技术比一个实际的编译器本身更有价值。就像数学家在解决著名的哥德巴赫猜想一样,虽然问题没有最终解决,但是已经诞生了很多著名的相关数论。虽然推荐工具书的编译理论在今天已经发展到了比较成熟的部分,但是作为一个大学生,你应该写一本像TurbocC这样的书,
3、为什么要学习编译原理?为什么大学课程要开设编译原理?这门课主要讲编译器的生成原理和技术问题,看起来和计算机基础领域没什么关系。但编译原理一直是本科生的必修课,也成为考研的必修部分。编译的原理和技术本质上只是一个算法问题。当然,由于这个问题非常复杂,其求解算法也相对复杂。我们学的数据结构和算法分析也讲了算法,但是基本算法,换句话说就是算法入门,而编译原理的课程重点是解一个新的算法。
在人们试图编写一个编译器的同时,许多与编译相关的理论和技术诞生了,这些理论和技术比一个实际的编译器本身更有价值。就像数学家在解决著名的哥德巴赫猜想一样,虽然问题没有最终解决,但是已经诞生了很多著名的相关数论。虽然推荐工具书的编译理论在今天已经发展到了比较成熟的部分,但是作为一个大学生,你应该写一本像TurbocC这样的书,
4、交叉编译器的发展历史20世纪50年代,IBM的JohnBackus带领一个研究团队开发FORTRAN语言及其编译器。但由于当时人们对编译理论了解不多,开发工作变得复杂而艰巨。与此同时,诺姆乔姆斯基开始了他对自然语言结构的研究。他的发现最终使得编译器的结构变得极其简单,甚至带有一些自动化。乔姆斯基的研究导致根据语言语法的难易程度和识别语言所需的算法对语言进行分类。
5、编译器的历史20世纪50年代,IBM的JohnBackus带领一个研究团队开发FORTRAN语言及其编译器。但由于当时人们对编译理论了解不多,开发工作变得复杂而艰巨。与此同时,诺姆乔姆斯基开始了他对自然语言结构的研究。他的发现最终使得编译器的结构变得极其简单,甚至带有一些自动化。乔姆斯基的研究导致根据语言语法的难易程度和识别语言所需的算法对语言进行分类。
类型2文法(或上下文无关文法)已经被证明是程序设计语言中最有用的,今天它代表了程序设计语言结构的标准方式。分析问题(一种有效的上下文无关语法识别算法)是在20世纪60年代和70年代研究的,它完美地解决了这个问题,它已经成为编译原理的标准部分。