编译技术的简介
㈠ 编译原理除了可以用来编写编译器,还在哪些领域可以用到编译原理的知识
很多的,例如MASM编译器。
编译原理内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成等,这门课大部分人听起来比较困难,介绍编译程序构造的一般原理和基本方法,虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对我们提供了系统而有效的训练,有利于提高软件人员的素质和能力。
㈡ 编译原理及实践的内容简介
本书系统介绍了经典的编译理论和技术,同时也包含了面向对象语言等当前较新语言的编译技术。本书更可贵之处在于提供了较完整的适用于教学实践的样例语言,是一本理论和实践内容相结合的、不可多得的好书。本书可用作大专院校教材、教师参考书以及编译器研究人员的参考资料。
作者简介
Kenneth C.Louden,加拿大麦吉尔大学获得博士学位之后,曾在多所大学任教。他的主要研究领域是统和统译器,涉及范畴论及其编程、形式语义、编译器优化与自动化技术等。1985年在美国圣何塞州立大学任教至今。所撰写的教材还有Programming Languages、Programming Languages Text和 Compiler Constuction Text等。
㈢ 什么是编译程序
编译程序指将某一种程序设计语言写的程序翻译成等价的另一种语言的程序的程序, 称之为编译程序
编译程序也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。编译程序属于采用生成性实现途径实现的翻译程序。
它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。编译出的目标程序通常还要经历运行阶段,以便在运行程序的支持下运行,加工初始数据,算出所需的计算结果。
编译程序的实现算法较为复杂,这是因为它所翻译的语句与目标语言的指令不是一一对应关系,而是一多对应关系,同时也因为它要处理递归调用、动态存储分配、多种数据类型,以及语句间的紧密依赖关系。
由于高级程序设计语言书写的程序具有易读、易移植和表达能力强等特点,编译程序广泛地用于翻译规模较大、复杂性较高、且需要高效运行的高级语言书写的源程序。
(3)编译技术的简介扩展阅读:
编译流程分为了四个步骤:
1.预处理,生成预编译文件(.文件)
2.编译,生成汇编代码(.s文件)
3.汇编,生成目标文件(.o文件)
4.链接,生成可执行文件
㈣ 编译技术的发展历程
1954年至1957年间,IBM的John Backus带领一个小组开发FORTRAN语言及其编译器,使得上面的担忧不必要了。
但由于当时处理中所涉及到的大多数程序设计语言的翻译并不为人所掌握,所以这个项目的成功也伴随着巨大的辛劳。
几乎与此同时,人们也在开发着第一个编译器,Noam Chomsky开始自然语言结构的研究。使得编译器结构异常简单,甚至还带有了一些自动化。
Chomsky的研究导致了根据语言文法(grammar,结构规则)的难易程度以及识别它们所需的算法来为语言分类。文法有4个层次:0型、1型、2型和3型文法,且其中的每一个都是其前者的专门化。2型(或上下文无关文法context-free grammar)是程序设计语言中最有用的,代表着程序设计语言结构的标准方式。
人们接着又深化了生成有效的目标代码的方法,这就是最初的编译器,它们被一直使用至今。人们通常将其误称为优化技术(optimization technique),但因其从未真正地得到过被优化了的目标代码而仅仅改进了它的有效性,因此实际上应称作代码改进技术(code improvement technique)。
在70年代后期和80年代早期,大量的项目都关注于编译器其他部分的生成自动化,这其中就包括了代码生成。这些尝试并未取得多少成功,这大概是因为操作太复杂而人们又对其不甚了解。
㈤ C语言编译原理是什么
编译共分为四个阶段:预处理阶段、编译阶段、汇编阶段、链接阶段。
1、预处理阶段:
主要工作是将头文件插入到所写的代码中,生成扩展名为“.i”的文件替换原来的扩展名为“.c”的文件,但是原来的文件仍然保留,只是执行过程中的实际文件发生了改变。(这里所说的替换并不是指原来的文件被删除)
2、汇编阶段:
插入汇编语言程序,将代码翻译成汇编语言。编译器首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,编译器把代码翻译成汇编语言,同时将扩展名为“.i”的文件翻译成扩展名为“.s”的文件。
3、编译阶段:
将汇编语言翻译成机器语言指令,并将指令打包封存成可重定位目标程序的格式,将扩展名为“.s”的文件翻译成扩展名为“.o”的二进制文件。
4、链接阶段:
在示例代码中,改代码文件调用了标准库中printf函数。而printf函数的实际存储位置是一个单独编译的目标文件(编译的结果也是扩展名为“.o”的文件),所以此时主函数调用的时候,需要将该文件(即printf函数所在的编译文件)与hello world文件整合到一起,此时链接器就可以大显神通了,将两个文件合并后生成一个可执行目标文件。
㈥ 什么是即时编译技术
JIT(just-in-time compilation)指计算机领域里,即时编译也被成为动态翻译,是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技术。即时编译前期的两个运行时理论是字节码编译和动态编译。
在编译为字节码的系统如 Limb 编程语言,Smalltalk, UCSD P-System, Perl, GNU CLISP, 和 Java 的早期版本中, 源代码被翻译为一种中间表示即字节码。 字节码不是任何特定计算机的机器码, 它可以在多种计算机体系中移植。字节码被解释着运行在虚拟机里。
动态编译环境是一种在执行时使用编译器的编译环境。 例如, 多数 Common Lisp 系统有一个编译函数,他可以编译在运行时创建的函数。
在即时编译环境下, 字节码的编译是第一步, 它将源代码递归到可移植和可优化的中间表示。字节码被部署到目标系统。 当执行代码时,运行时环境的编译器将字节码翻译为本地机器码。 基于每个文件或每个函数:函数仅仅在他们要被执行时才会被编译。
目标是要组合利用本地和字节码编译的多种优势:多数重量级的任务如源代码解析和基本性能的优化在编译时处理,将字节码编译为机器码比起从源代码编译为机器码要快得多。部署字节码是可移植的,而机器码只限于特定的系统结构。从字节码到机器码编译器的实现更容易,因为大部分工作已经在实现字节码编译器时完成。
㈦ 编译原理
编译原理):利用编译程序从源语言编写的源程序产生目标程序的过程; 用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成
(7)编译技术的简介扩展阅读:
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。
编译程序的语法规则可用上下文无关文法来刻画。语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。
而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。
㈧ 什么是编译原理
编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。
这门课程关注的是编译器方面的产生原理和技术问题,似乎和计算机的基础领域不沾边,可是编译原理却一直作为大学本科的 必修课程,同时也成为了研究生入学考试的必考内容。编译原理及技术从本质上来讲就是一个算法问题而已,当然由于这个问题十分复杂,其解决算法也相对复杂。 我们学的数据结构与算法分析也是讲算法的,不过讲的基础算法,换句话说讲的是算法导论,而编译原理这门课程讲的就是比较专注解决一种的算法了。在20世纪 50年代,编译器的编写一直被认为是十分困难的事情,第一Fortran的编译器据说花了18年的时间才完成。在人们尝试编写编译器的同时,诞生了许多跟 编译相关的理论和技术,而这些理论和技术比一个实际的编译器本身价值更大。就犹如数学家们在解决着名的哥德巴赫猜想一样,虽然没有最终解决问题,但是其间 诞生不少名着的相关数论。
㈨ 编译原理技术有哪些应用呢
编译原理,说得通俗易懂一些就是:让机器通过某种机制和规则,将一种由人们书写的高级程序代码,经过若干步骤,最终翻译成机器可理解执行的二进制代码。
编译原理技术的具体应用,例如:
(1)、我们用户通常编写的 C/C++ 程序源代码(*.C/*.CPP),通过 Microsoft Visual C++ 编译器,将由人工书写的 C/C++ 语言程序源代码(*.C/*.CPP),最终翻译成机器可执行的二进制代码(*.EXE);
(2)、人工智能领域中的自然语言处理、机器翻译技术(例如:英/汉翻译、日/汉翻译系统等)等,都需要使用到编译原理技术。
㈩ 编译原理的内容简介
本书介绍编译器构造的一般原理和基本实现方法,主要内容包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成等。除了介绍命令式编程语言的编译技术外,本书还介绍面向对象语言和函数式编程语言的实现技术。本书还强调一些相关的理论知识,如形式语言和自动机理论、语法制导的定义和属性文法、类型论和类型系统等。
本书取材广泛新颖、图文并茂,注意理论联系实际。本书可作为高等学校计算机科学及相关专业的教材,也可供计算机软件工程技术人员参考使用。