当前位置:首页 » 编程软件 » 编译器哦和

编译器哦和

发布时间: 2022-05-22 17:13:46

㈠ 超赞,编译器和解释器的异同,瞬间明白了

编译器和解释器的最大不同就是:以 WINDOWS 系统为例进行讲解就是:编译器是可以把用户编写的源程序(例如:C 语言源程序)经过编译、链接产生成一个在 WINDOWS 系统下面可独立运行的二进制代码(以 *.exe 为后缀的);而解释器则必须在高级语言的解释环境中才能够运行用户编写的源程序,一旦退出了解释器,那么用户编写的源程序将无法执行。例如:以前的 BASIC 语言就是解释执行、而不是编译执行的。即:在 BASIC 解释环境中,可以执行用户编写的以 *.BAS 为后缀的源程序,但是一旦退出了 BASIC 解释器,那么用户编写的 *.BAS 源程序就无法执行了。

㈡ 编译器和IDE的区别是什么

1. IDE与硬件平台有关。不同IDE携带的编译器不同。

2. 当然有关。不是半导体厂家提供的,而是编译器开发厂商提供的,也有很多开源的编译器。

3. 有关系。目前最常见的编译器仍然只支持C/C++,C#的编译器较少而且据说仍不完善。至于java……哈哈,这种二道贩子还需要劳烦编译器?

4. 可以集成。具体的你需要查阅相应IDE的手册,看看能够集成/添加哪些编译器。

5. 关心到架构就可以。厂商自己扩展的东西多半就是些映射,你看厂商的外设就行;而且很多厂商都提供了易于开发的库(当然他们的库也都是够烂的,用熟了以后就可以扔掉)。

6. 是否用操作系统不影响编译器,整体而言也不影响IDE;当然IDE中如果能够添加针对操作系统组件的原生支持(重点是调试方面),用起来就更方便。

㈢ IDE和编译器的区别

c++的ide与编译器的区别:
ide(integrated
development
environment)指集成开发环境,也就是用于编辑代码、开发程序的应用程序,一般包含代码编辑器与编译器等。c++的ide有visual
c++6.0、guide等;
编译器(compiler),则是用于将高级编程语言代码翻译成目标代码(如机器语言)的程序。c++的编译器是g++。
上面说了,ide一般包含编译器,也就是说编译器一般属于ide的一部分。在ide中可编辑、编译代码,而编译器只能编译代码。

㈣ 编译器和开发环境的关系

谈谈程序设计语言、编译器和开发环境之间的关系

许多初学者都会对这三个概念区分不清,应该说这三个概念是完全不同的,不能混为一谈。在本文中,我就尽我最大的能力来讲讲这三个概念以及他们之间的关系。

首先说程序设计语言,它同人类的自然语言一样也是一个语言,并且它是自然语言的一个子集。大家都知道自然语言是极其庞大和复杂的系统,具有很多不不确定性和不精确性,因此至今我们也没有办法对自然语言进行形式化的描述。程序设计语言只是自然语言的一个很小的子集,在计算机系统中,一切都是需要确定性和精确性的描述,因此程序设计语言也是极为规范的,在程序设计语言中,几乎就不允许存在不确定性和不精确性,也就是说不能存在文法的二义性。这样一个程序设计语言就可以通过一系列的产生式来进行形式化的描述,这一系列的产生式就被称为文法,语言就是由文法来定义的。从另外一个角度来说,一个程序设计语言,它仅仅是一个语言,它只对程序进行形式上的要求。或者说,程序设计语言对应于编程中的编码阶段。我们有必要对程序开发的三个阶段进行了解,程序开发从时间先后顺序上可以分为三个阶段:1.编码阶段,2.编译阶段,3.运行阶段。在编码阶段,我们使用的就是程序设计语言。语言除了定义了文法以外,其他的任何事情他都不做。当然一种语言也有很多种版本,比如 BASIC 语言,就有很多种版本,C语言也是如此。这里所讲的语言的版本与编译器的版本是不一样的。C语言的标准版本就是 ANSI C,如果初学者会提出这样的问题“C语言哪个更好?”,这样的问题反映出他们对语言与编译器之间的关系的认识的不足。如果从语言的角度来讲 VC 和 TC 是没有多大区别的,他们基本上都能支持 ANSI C。

再来看看编译器。编译器与语言的关系就是,翻译者与语言的关系。编译器就是一个翻译,他把使用某种语言书写的源程序,翻译成为等价的使用目标语言书写的目标程序。前面我们也说了,语言是一个抽象的概念,是由文法来定义的。唯一实在的东西,也就是定义语言的文法。在使用语言时,我们只能说,使用这种语言去书写一段程序。编译器则是能够将某种语言的源程序进行翻译,然后生成目标程序。我们通常会说,某个编译器支持了什么语言,也就是说这个编译器能识别并翻译这种语言。现在的C编译器,一般都是支持了 ANSI C 语言的,另外,编译器的设计者可能还会对 ANSI C 进行一定的扩充,而且各个编译器进行扩充功能都是不同的,因此可能就会出现一个编译器诞生以后,就会出现一个新的语言的现象。TC 和 VC 就分别对 ANSI C 进行了不同的扩充,比如在 TC 中有 far 等关键字,ANSI C 中是没有的,在 VC 中有内嵌汇编的语法 _asm,而在 TC 中则是使用 asm 关键字,这些内容在 ANSI C 中没有的。编译器的输入时源程序,而其输出则是目标程序。一般情况下,源程序是使用某种高级语言书写的,而目标程序则是某个特定机器的机器语言程序。另一方面,编译器除了提供编译功能,还会提供一些运行库。所谓运行库就是由一些事先写好的子程序所组成的子程序库。例如C语言中的 printf 函数,就是由C的运行库提供的。在 ANSI C 中定义了一些C语言的标准库函数,这些库函数是标准C必须具备的,也可以说这些库函数成为了 ANSI C 的一个部分。另外,不同的编译器还可以提供自己的,非标准的库给用户使用,在 TC 中的 Graphics 库,其实就是由 TC 提供的,它不是属于 ANSI C 的。简单的说,编译器是由编译程序和运行库组成的。在程序的编译阶段,就是使用编译器对源程序进行编译生成目标程序。

在程序的运行阶段则是在一个特定的平台上,由这个平台来执行编译生成的程序。Java 虚拟机是一个平台,DOS 和 Windows 也是平台,编译器的作用就是沟通源程序和程序的运行平台。源程序相对于一个运行平台来说是不可识别的,但当编译器将源程序编译成为这个平台所能够识别的目标语言以后,程序就可以在这个平台上运行了。

应该看到,编译器在其中起到了很重要的作用。我们现在可以明确一些概念了,程序设计语言只是语言,它本身很难说有什么好坏,这就如同说“汉语和英语哪个好”一样。使用某一种程序设计语言,我们可以书写自己的程序,从而向计算机表达自己希望完成的功能。这个阶段,我们称为编码阶段。编译器由编译程序和运行库组成,编译程序负责将源程序翻译成为目标程序,运行库提供了一些基本的子程序给程序编写者使用。我们可以说编译器是否支持某种语言,例如 TC 编译器是支持 ANSI C 的,而 GCC 则是一个能够支持多种语言的编译器。然而不同的编译器除了提供对某种语言的支持以外,还可能对该语言进行了某些功能扩充。编译器在对语言的支持上,差别都是不太大的,这是因为许多语言都制定了一个标准,例如 ANSI C。编译器的另外一个重要特性,就是对运行平台的支持。平台指的是一个程序运行所需要的所有软件和硬件的基础。编译器对运行平台的支持,是通过将源程序编译成为目标程序,以及编译器所提供的运行库来实现的。例如,TC只能将C源程序编译生成,使用 80x86 CPU,操作系统为 DOS 的 16bit DOS 程序。VC只能将C源程序编译生成 80x86 CPU、操作系统为 Windows 的 32bit Windows 程序。使用编译器对源程序进行编译被称为编译阶段,这个阶段编译程序将源程序编译为某个平台的目标代码。程序在具体的平台上运行时,被称为运行阶段。应该指出,在编码阶段使用到的是程序设计语言,以及编译器所提供的库函数,这个阶段产生的是源程序。在编译阶段使用的是源程序和编译器,这个阶段产生的是目标程序。在运行阶段使用到的是目标程序和运行平台,这个时候产生的是程序运行结果。

因此说讨论一个程序设计语言好坏没有多大意义,因为他们使用的场合不同,比如汇编语言和 Java 语言,要谈论这两个语言的好坏是没有实际意义的。而说“C语言哪个好”之类的话也是没有意义的,我想大家学的C也就是在 ANSI C 基础上的C,并且不同的C语言之间的差别是极小的。我们通常指的 TC、VC 都是指编译器,而不是语言。编译器能够支持一种或者多种的程序设计语言,TC 能够支持 ANSI C,VC 能够支持 ANSI C 和 ANSI C++,而 GCC 则是一个支持多语言的编译器。如果真要说 VC 比 TC 好,只能说 VC 编译器提供的库函数更多,并且 VC 能够支持的平台是 Windows,而 VC 编译出来的代码也都是 32bit 的。

在以上概念中纠缠了这么久,我也不再想多说了。再来看开发环境。为了能够方便程序设计者进行编码、调试等工作,编译器制造商在制作好一个编译器以后,都会提供一个集成开发环境(又称为IDE)。在这个 IDE 中,用户可以完成编码、编译、调试、运行的全部工作。并且在最新的IDE中,可能还会提供一个可视化的设计功能,可以方便用户进行程序界面的设计。例如 VB 等。另外一个方面,开发环境除了包括 IDE 以外,还包括了程序运行的平台。比如硬件是 IBM PC 兼容机,操作系统是 Windows 等。

可能,能讲的也就这么多了,感觉讲的并不是很好,不过我已经尽力了。有些东西是很难说清楚的,“只能意会不可言传”指的就是这个了。不要怪我讲的不好,还是自己用心去理解和体会吧。

㈤ 简述一下编译器和链接器的作用

1、编译器:
编译器对源文件进行编译,就是把源文件中的文本形式存在的源代码翻译成机器语言形式的目标文件的过程,在这个过程中,编译器会进行一系列的语法检查。如果编译通过,就会把对应的CPP转换成OBJ文件。
2、链接器:
当链接器进行链接的时候,首先决定各个目标文件在最终可执行文件里的位置。然后访问所有目标文件的地址重定义表,对其中记录的地址进行重定向(加上一个偏移量,即该编译单元在可执行文件上的起始地址)。
然后遍历所有目标文件的未解决符号表,并且在所有的导出符号表里查找匹配的符号,并在未解决符号表中所记录的位置上填写实现地址。最后把所有的目标文件的内容写在各自的位置上,再作一些另的工作,就生成一个可执行文件。

㈥ ide和编译器有什么区别,什么是ide,什么是编译器

1. IDE与硬件平台有关。不同IDE携带的编译器不同。

2. 当然有关。不是半导体厂家提供的,而是编译器开发厂商提供的,也有很多开源的编译器。

3. 有关系。目前最常见的编译器仍然只支持C/C++,C#的编译器较少而且据说仍不完善。至于Java……哈哈,这种二道贩子还需要劳烦编译器?

4. 可以集成。具体的你需要查阅相应IDE的手册,看看能够集成/添加哪些编译器。

5. 关心到架构就可以。厂商自己扩展的东西多半就是些映射,你看厂商的外设就行;而且很多厂商都提供了易于开发的库(当然他们的库也都是够烂的,用熟了以后就可以扔掉)。

6. 是否用操作系统不影响编译器,整体而言也不影响IDE;当然IDE中如果能够添加针对操作系统组件的原生支持(重点是调试方面),用起来就更方便。

㈦ 编译器和翻译器有什么区别,新人求教。

你好!编译器(在windows下,javac.exe)将源代码(java文件)编译为字节码(bytecode),存放在class文件中。

字节码不能直接在机器上执行,而是通过虚拟机(windows下是java.exe)执行。具体的执行方式有两种:

1. 一般情况下解释执行。解释执行并不是“解释为用c++语言写成的程序”,而是jvm把字节码看成脚本,根据字节码中的指令,由JVM去调用实际的本地方法。

2. 在打开了JIT参数的前提下,jvm会把执行过程中发现的热点位置,由jvm内部的即时编译器编译为本地机器码直接执行。
编译器将java文件编译为class文件,解释器将class文件变为机器语言

㈧ 有关编译器的问题

编译器可不是你想象得那么简单的哦:)
很多编译器并不是用汇编语言写的,那样太累了。
编译器涉及非常复杂的词法和语法分析。现在基本上都是采用lex和yacc之类的工具自动生成词法分析程序和语法分析程序。每种语言都有各自不同的词法和语法,你需要提供词法和语法的正则表达式之类的东西给lex和yacc,然后由这两个工具生成词法分析程序和语法分析程序。词法和语法分析程序可以将你设计的语言编写的程序生成中间代码,然后再想办法编程机器可读的机器码就能运行了。
当然你也可以自己手动写词法和语法分析器,不过那个工程太过庞大。

㈨ 编译器和解释器的主要区别是什么他们相对于对方各自的优点

解释器是解释执行的源代码,编译器是将源代码编译成目标代码

他们最大的区别是程序运行时需要解释器边解释边执行,而编译器则在运行时是完全不需要的

解释器的优点是比较容易让用户实现自己跨平台的代码,比如java,php等,同一套代码可以在几乎所有的操作系统上执行,而无需根据操作系统做修改;
编译器的目的就是生成目标代码再由连接器生成可执行的机器码,这样的话需要根据不同的操作系统编制代码,虽然有像Qt这样的源代码级跨平台的编程工具库,但在不同的平台上仍然需要重新编译连接成可执行文件,但其执行效率要远远高于解释运行的程序。
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;
而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快的.
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)

热点内容
刷算法的网站 发布:2024-05-06 01:30:39 浏览:268
少儿编程徐州 发布:2024-05-06 01:20:42 浏览:461
sqlserver连接驱动 发布:2024-05-06 00:33:34 浏览:645
存储开销 发布:2024-05-06 00:13:38 浏览:953
服务器怎么盈利 发布:2024-05-05 23:56:16 浏览:941
java网站培训学校 发布:2024-05-05 23:43:11 浏览:40
淘宝搜索算法 发布:2024-05-05 23:37:07 浏览:998
sqlwhencasethen 发布:2024-05-05 23:27:51 浏览:641
模架编程软件 发布:2024-05-05 23:26:54 浏览:483
存储过程异常 发布:2024-05-05 23:24:03 浏览:399