编译与开发环境的关系
Ⅰ 编译器和开发环境的关系
谈谈程序设计语言、编译器和开发环境之间的关系
许多初学者都会对这三个概念区分不清,应该说这三个概念是完全不同的,不能混为一谈。在本文中,我就尽我最大的能力来讲讲这三个概念以及他们之间的关系。
首先说程序设计语言,它同人类的自然语言一样也是一个语言,并且它是自然语言的一个子集。大家都知道自然语言是极其庞大和复杂的系统,具有很多不不确定性和不精确性,因此至今我们也没有办法对自然语言进行形式化的描述。程序设计语言只是自然语言的一个很小的子集,在计算机系统中,一切都是需要确定性和精确性的描述,因此程序设计语言也是极为规范的,在程序设计语言中,几乎就不允许存在不确定性和不精确性,也就是说不能存在文法的二义性。这样一个程序设计语言就可以通过一系列的产生式来进行形式化的描述,这一系列的产生式就被称为文法,语言就是由文法来定义的。从另外一个角度来说,一个程序设计语言,它仅仅是一个语言,它只对程序进行形式上的要求。或者说,程序设计语言对应于编程中的编码阶段。我们有必要对程序开发的三个阶段进行了解,程序开发从时间先后顺序上可以分为三个阶段: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、编译环境:编译环境包含开发、调试和部署等工具。
2、运行平台:运行平台只包含运行指令和class实现的工具。
二、调试不同
1、编译环境:编译环境有调试代码的功能,调试后可重新编译执行。
2、运行平台:运行平台没有调试代码的功能。
三、硬件支持不同
1、编译环境:编译环境使用的是模拟设备,不需要硬件支持。
2、运行平台:运行平台需要硬件支持,在实际设备中运行。
Ⅳ 集成开发环境和ide和编译器和编译工具有什么关系吗
IDE就是集成开发环境的英文缩写,一般集成开发环境里集成了编译器和解释器,
编译工具当然就是有编译功能的工具了。
Ⅳ IDE和开发环境的问题
IED为集成开发环境,也就说IDE就是开发环境的意思,编译器其实就是翻译代码的工具,将我们输入的计算机高级语言翻译成计算机可以识别的二进制代码
IED是为开发者提供可视化程序开发界面,如Visual Studio系列;
IDE的功能是设定好的,与语言无关
注:
我们所熟知的C语言C++语言都属计算机高级语言,编译器就是会将这些语言翻译成汇编语言,以至二进制代码;
IDE一方面提供用户可视化编程界面,一方面封装编译器,用于编译我们输入的计算机语言
祝楼主好运,谢谢楼主给分哦,o(∩_∩)o...
Ⅵ 编程语言 编译器 运行平台 开发环境 分别是什么它们有什么关系
抢个沙发,其实不知道饿,
语言:就是一些语法,跟英语差不多,但是要加点逻辑思维,比如:'循环'和'如果',用英语翻译出来,
编译器:就是把你写出来的英语,翻译成电脑能看得懂的语言
运行平台:c井的运行平台应该是.net FrameWork吧,就是要装上那个东西,才 能打开看
开发环境:比如c井的开发环境应该就是visual studio了, 就是说要用那个才能做系统,网站一类的东西
Ⅶ 开发环境,开发工具,编辑器,编译器的区别
开发环境= 编辑器 = 开发工具. 例如:vs2005 vs2008 都是开发环境,也叫开发工具. 非要强调的话,编辑器就是你写代码的地方.
编译器区别就比较大了, 编译器是用来编译你写好的代码的. 例如: java的编译器是java虚拟机,它负责处理和编译你写的源代码. vs的编译器就是另外的东西了.
打字很辛苦,记得给分哦
Ⅷ 编译器与环境区别
编译器一般只是一个很小和程序,用于对已经存在的程序源代码进行编译和链接,而集成开发环境是用来开发程序的,包括写代码,使用某种编译器来编译等等。例如微软的C++编译器只是个很小和文件,但集成开发环境却很大比如vs2005
Ⅸ 编译程序与集成开发环境有什么不同举例说ming
以下选自网络:
集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。
换句话说,编译器只是集成开发环境的一部分。
比如最常见的集成开发环境:Visual Studio(其使用的编译器是cl(貌似今年会集成clang编译器))。
除cl外,比较常见的编译器还有gcc。
Ⅹ 编程语言与它的集成开发环境有什么关系举几个例子好吗
集成开发环境(Integrated Developing Environment,简称IDE):是一个综合性的工具软件,它把程序设计全过程所需的各项功能集合在一起,为程序设计人员提供完整的服务。
例如:Visual C++ 6.0 IDE 就是这样一种集成开发环境。
集成开发环境并不是把各种功能简单地拼装在一起,而是把它们有机地结合起来,统一在一个图形化操作界面下,为程序设计人员提供尽可能高效、便利的服务。例如,程序设计过程中为了排除语法错误,需要反复进行编译——查错——修改——再编译的循环,集成开发环境就使各步骤之间能够方便快捷地切换,输入源程序后用简单的菜单命令或快捷键启动编译,出现错误后又能立即转到对源程序的修改,甚至直接把光标定位到出错的位置上。再如,集成开发环境的编辑器除了具备一般文本编辑器的基本功能外,还能根据C++的语法规则,自动识别程序文本中的不同成分,并且用不同的颜色显示不同的成分,对使用者产生很好的提示效果。本章的前面部分只涉及了VC++的最基本功能,随着学习的深入,还将了解并使用更多的功能。
工程(Project):在VC++中,一项程序设计任务被称为一个“工程”。它由一系列相关文件的集合,包括在程序设计全过程中产生的所有文件:源文件、资源文件、程序结构消息文件、系统参数设置文件、目标文件……,直到最后的可执行文件。
在VC++中,编写一个程序从创建一个工程开始,创建时要为这个工程指定一个工程名(Project Name),VC++会为每个工程建立工程文件、工作区文件和选项文件,分别以工程名加上后缀“.dsp”、“.dsw”、“.opt”为文件名,这些文件中保存着与工程有关的各种信息,包括对环境的设置和编辑、编译、连接等操作的工作状态。