摘要:
解释则不同,解释性语言的程序不需要编译,省了道工序,解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器能够直接执行basic程序,每个语句都是执行的时候才翻译。 这样解释性语言每执行一次就要翻译一次,效率比较低。 解释是一句一句的翻译。 阅读全文
摘要:
一个是编译,一个是解释。 两种方式只是翻译的时间不同。 编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高,但也 阅读全文
摘要:
相对于编译型语言存在的,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。比如Python/JavaScript / Perl /Shell等都是解释型语言。 解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执 行一次都要翻译一次。因此效率比较低。比如 阅读全文
摘要:
解释性语言编写的程序不进行预先编译,以文本方式存储程序代码。在发布程序时,看起来省了道编译工序。 但是,在运行程序的时候,解释性语言必须先解释再运行。 比如解释性Basic语言,其专用的解释器在执行Basic程序时,会逐条读取解释每个语句,这个其实就是一个编译过程,然后再执行。 一般来说,现有的解释 阅读全文
摘要:
编译性语言例如c语言:用c语言开发了程序后,需要通过编译器把程序编译成机器语言(即计算机识别的二进制文件,因为不同的操作系统计算机识别的二进制文件是不同的),所以c语言程序进行移植后,要重新编译。 解释性语言,例如java语言,java程序首先通过编译器编译成class文件,如果在windows平台 阅读全文
摘要:
前者由于程序执行速度快,同等条件下对系统要求较低,因此像开发操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言。 而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则 阅读全文
摘要:
解释性语言在运行程序的时候才翻译,比如解释性basic语言,专门有一个解释器 能够直接执行basic程序,每个语句都是执行的时候才翻译。 这样解释性语言每执行一次就要翻译一次,效率比较低。 阅读全文
摘要:
编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。 阅读全文
摘要:
运行编译型语言是相对于解释型语言存在的,编译型语言的首先将源代码编译生成机器语言,再由机器运行机器码(二进制)。像C/C++等都是编译型语言。 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器 阅读全文
摘要:
在20世纪90年代,作为GNU项目或其它开放源代码项目标一部分,许多免费编译器和编译器开发工具被开发出来。这些工具可用来编译所有的计算机程序语言。它们中的一些项目被认为是高质量的,而且对现代编译理论感兴趣的人可以很容易的得到它们的免费源代码。 大约在1999年,SGI公布了他们的一个工业化的并行化优 阅读全文
摘要:
编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序 它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言的发展结合在一起。其中典型的有用于函数语言编译的Hindley-Milner类型检查的统一算法。 其次,编译器已越来越成为基于窗口的交互开发环境(Interactive De 阅读全文
摘要:
当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器自动构造。 这些程序最初被称为编译器的编译器(Compiler-compiler),但更确切地应称为分析程序生成器(Parser Generator),这是因为它们仅仅能够自动处理编译的一部分。 这些程序中最著名的是Y 阅读全文
摘要:
许多人将高阶程序语言分为两类: 编译型语言 和直译型语言。 然而,实际上,这些语言中的大多数既可用编译型实现也可用直译型实现,分类实际上反映的是那种语言常见的实现方式。 (但是,某些直译型语言,很难用编译型实现。比如那些允许 在线代码更改 的直译型语言。) 阅读全文
摘要:
首先编译器进行语法分析,也就是要把那些字符串分离出来。 然后进行语义分析,就是把各个由语法分析分析出的语法单元的意义搞清楚。 最后生成的是目标文件,也称为obj文件。 再经过链接器的链接就可以生成最后的EXE文件了。 有些时候需要把多个文件产生的目标文件进行链接,产生最后的代码。这一过程称为交叉链接 阅读全文
摘要:
常见的编译分析有函数调用树(call tree),控制流程图(Control flow graph),以及在此基础上的变量定义使用。 定义链(define-use/use-define or u-d/d-u chain) 变量别名分析(alias analysis) 指针分析(pointer ana 阅读全文