目录

编辑器编译器与集成开发环境IDE的区别

编辑器、编译器与集成开发环境(IDE)的区别

文章目录

一、编译器

编译器的的概念百度词条上面这样子定义:

简单讲,编译器就是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的程序。一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。

机器语言、汇编语言和高级语言区别

1. 机器语言

计算机执行的二进制命令,都是0和1表示的。

2. 汇编语言

具有一定意义的文字命令,与机器语言一一对应。汇编语言可以通过汇编得到机器语言,机器语言可以通过反汇编得到汇编语言。汇编过程还包括变量内存管理,即经过汇编之后所有的变量和函数都变成了地址,而常量也变成了对应的值。

但是汇编语言还是不够直观,一个简单的动作需要大量的语句来描述,因此又有了高级语言。

3. 高级语言

更简单,符合人们的习惯,也更容易理解和修改。高级语言经过编译器编译之后可以得到目标程序。

编译器的作用就是把高级语言的源代码转换成对应平台的目标代码。高级语言书写比较简单,但是翻译起来比较复杂,同样的高级语言语句可以有不同的机器语言实现方法。

而编译器所做的就是进行这三种语言的互相转换。大多数情况下,编译是从更高级的语言(高级语言、汇编语言)编译成低级语言(汇编语言、机器语言)。

另一种情况是,从他人的可执行程序(低级语言)编译成高级语言,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。这个过程叫做反向编译。

编译器:将你所编辑的源代码编译成机器所能理解的语言,比如 VC++ 把你的 .cpp 文件编译成 .obj 文件(经过编译器编译这时的代码计算机已经可以识别),而最后的 .exe 则是通过连接生成的(这里的工作是由连接器完成的,跟编译器无关)。

https://i-blog.csdnimg.cn/blog_migrate/59a4c422606f008c30f972b6247a6401.jpeg

注意:编译器是一个指令,要与编辑器的概念区别开来(下面有具体叙述)。常用的编译器是将用高级语言编写的代码翻译成低级语言代码,例如:

对于 Java 语言来说,它最常用的编译器就是 javac 指令,可以在 DOS(Disk Operating System) 窗口中使用,该指令包含在由 sun 公司(目前已被 Oracle 公司收购)开发的 JDKJava Development Kit ,目前最高版本是 JDK12.0 )目录中,使用 javac 指令可以将 .java 源文件翻译成 .class 字节码文件, .class 文件可以装载到 JVMJava Virtual Machine )的类加载器中运行,可以跨平台运行。(集成开发环境 Eclipse 应当包含 JDK

对于C语言来说,编译程序自动将源程序转化为二进制形式的目标程序(在 Visual C++ 中后缀名为 .obj )。

编译与链接是两码事!

C++编译器 :微软的 C++ cl 编译器; BorlandC++ bcb 编译器;免费的 C++ gcc 编译器。

这里使用 GCC 编译器的相关概念作出探讨。

GCC 编译器:

GCC 原名为 GNU C 语言编译器( GNU C Compiler ),因为它原本只能处理 C 语言。后来 GCC 通过很快地扩展变得可以处理 C++ 甚至 FortranPascalObjective-CJavaAdaGo 以及各类处理器架构上的汇编语言等,所以改名 GNU 编译器套件( GNU Compiler Collection )。

二、编辑器

编辑器的概念百度词条上面这样子定义:

编辑器是软件程序,一般是指用来修改电脑档案的编写软件,但也有人称 PE2、HE4(汉书)……等文书软件为编辑器。常见的编辑器有文本编辑器、网页编辑器、源程序编辑器、图像编辑器,声音编辑器和视频编辑器等。

文本编辑器(或称文字编辑器)是用作编写普通文字的应用软件,它与文档编辑器(或称文字处理器)不同之处在于它并非用作桌面排版(例如文档格式处理),它常用来编写程序的源代码。

当然在这里我们主要讲的是 源码(代码)编辑器 ,一个好的编辑器可以节省开发时间,提高工作效率,它们都是非常方便易用的环境,你可以用它们来编写代码,查看源文件和文档等,简化你的工作。

下面简单介绍一下几款最常用的代码编辑器:

Notepad++编辑器

NOTEPAD++是一款免费优秀的文本编辑器,支持在Windows环境下运行的多种编程语言。NOTEPAD++支持超过50多种编程、脚本、标记语言的语法高亮显示和代码折叠,能让用户迅速减小或扩大代码段以便查阅整个文档。用户可以手动设置当前语言,覆盖默认语言。该程序还支持自动完成某些编程语言的API子集。

EditPuls编辑器

EditPlus是一款由韩国 Sangil Kim (ES-Computing)出品的小巧但是功能强大的可处理文本、HTML和程序语言的Windows编辑器,你甚至可以通过设置用户工具将其作为C,Java,Php等等语言的一个简单的IDE。(需要自己配置编译器)
1.默认支持HTML、CSS、PHP、ASP、Perl、C/C++、Java、JavaScript和VBScript等语法高亮显示,通过定制语法文件,可以扩展到其他程序语言,在官方网站上可以下载(大部分语言都支持)。
2.EditPlus提供了与Internet的无缝连接,可以在EditPlus的工作区域中打开Intelnet浏览窗口。
3.提供了多工作窗口。不用切换到桌面,便可在工作区域中打开多个文档。
4.正确地配置Java的编译器“Javac”以及解释器“Java”后,使用EditPlus的菜单可以直接编译执行Java程序。

总之,EditPlus功能强大,界面简洁美观,且启动速度快;中文支持比较好;支持语法高亮;支持代码折叠;支持代码自动完成(但其功能比较弱),不支持代码提示功能;配置功能强大,且比较容易,扩展也比较强。像PHP、Java程序等的开发环境,只要看一下资料,几分钟就可以搞定配置,很适合初学者学习使用。有不错的项目工程管理功能。内置浏览器功能,这一点对于网页开发者来说很是方便。

VIM编辑器

VIM是一个可以高度自由配置的文本编辑器。它是vi编辑器的改进版,同时也是免费软件。该应用程序的建立是为了处理代码及其他很多事情,而不只是为了写电子邮件和打开配置文件。它允许你编辑文本并保存简单的文本文件,但它的主要功能是还是编辑代码。支持语法高亮显示和行编号,这是写程序必备的两个基本功能。用户可以改变界面颜色以便增加代码的可视性。对于文本编辑,VIM这个程序囊括了多种语言的拼写检查器,并具有建议如何更正拼写错误的能力。甚至是当你正在编写代码的时候,它也可以派上用场,因为该应用程序只检查不被识别为代码的文本。当然你也可以快速地从这个错误跳到下一个以便更好地校对文本。

GNU Emacs编辑器

Emacs是个可移植、扩展、免费的文本编辑器。 Emacs提供了一些命令来管理语句和段落,高亮语法使得源代码更易于阅读,以及键盘宏的方式来执行用户定义的编辑命令。 Emacs可以在若干个操作系统上运行,无论你使用的是哪一种机器类型,让程序员非常受用。如果你使用的是通用的编程语言,Emacs还可以提供模式以及相应的排版和布局,更加方便编辑代码。

ATOM编辑器

Atom是一款由GitHub开发,支持用Node.js编写插件和嵌入Git Contral,面向Mac OS X/Linux和Windows的免费的开源文本和源代码编辑器。没人愿意将时间浪费在配置自己的编辑器上面,于是ATOM出现了。它预装了所有你期望一个现代化的文本编辑器所应该具备的一切功能。而且,ATOM还配备了标签式界面、多个窗格布局、简单的文件浏览器、易学习的曲线图表,以便于你可以快速上手。

Windows记事本

在windows操作系统中,记事本是一个小的应用程序,采用一个简单的文本编辑器进行文字信息的记录和存储。自从1985年发布的Windows 1.0开始,所有的Microsoft Windows版本都内置这个软件。对于任何一门编程语言都可以通过记事本编辑但是功能较为简单,所以一般不常用。

注意:对于一门编程语言,可以用任何一个文字编辑软件编辑,代码编辑软件多了很多功能,比如对于特定语言可以语法高亮,本质上代码都是一个不同格式的纯文本(例如: C 语言的 .cJava 语言的 .java )。 编译之后才能够成为目标程序(即相对低级的语言,机器可以直接识别的语言,对于 C 语言它是二进制文件,对于 Java 语言它是字节码文件,字节码文件不是纯粹的二进制!)。

编译器与编辑器的区别:简单说编辑器是用来写代码的,而编译器是对现场高级语言代码翻译成相对低级语言的一段小程序/指令。

三、集成开发环境( IDE )

IDE 百度词条上面这样子定义:

集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。如微软的Visual Studio系列,Borland的C++ Builder、Delphi系列等。该程序可以独立运行,也可以和其它程序并用。IDE多被用于开发HTML应用软件。例如,许多人在设计网站时使用IDE(如HomeSite、DreamWeaver等),因为很多项任务会自动生成。

简单说,就是集成了 编辑器编译器 以及 链接器 等众多功能的一个集成开发环境。

当然集成开发环境相对于编辑器+编译器独立来用也存在相应的优缺点:

优点:

节省时间和精力。 IDE 的目的就是要让开发更加快捷方便,通过提供工具和各种性能来帮助开发者组织资源,减少失误,提供捷径。

建立统一标准。 当一组程序员使用同一个开发环境时,就建立了统一的工作标准,当 IDE 提供预设的模板,或者不同团队分享代码库时,这一效果就更加明显了。

管理开发工作。 首先, IDE 提供文档工具,可以自动输入开发者评论,或者迫使开发者在不同区域编写评论。其次, IDE 可以展示资源,更便于发现应用所处位置,无需在文件系统里面艰难的搜索。

缺点:

学习曲线问题。 IDE 基本上是比较复杂的工具,为了更好的熟练使用,需要一定的时间和耐心。

初学者的困难。 对初学者来说,使用 IDE 来学习开发有相当的难度,不适合学习一种新语言时使用。

无法修复坏代码或设计。 开发者不能完全依赖工具的便捷,还是必须保持专业水准和熟练度,开发的成果好坏主要还是看开发员的技术。

可以看到,编辑器是用来让程序员优雅的敲代码,编译器是用来将这些高级语言或汇编语言编译成计算机能直接识别并运行的机器语言。如果我们每次编辑完源程序都要在命令行依托编译器进行函数、模块的链接和编译的话岂不是很麻烦,于是集成开发环境的出现很快的完善了开发效率问题。

由于每个 IDE 的针对性不同,承载的编译器不同,不同的语言有时需要不同的 IDE ,这里介绍几个常用 IDE

Dev C++ : Dev-C++ 是一个 Windows 环境下开发 C/C++ 语言的集成开发环境,它是一款自由软件,遵守 GPL 许可协议分发源代码。

Visual StudioMicrosoft Visual Studio (简称 VS )是美国微软公司的开发工具包系列产品。 VS 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如 UML 工具、代码管控工具、集成开发环境( IDE )等等。

EclipseEclipse 是一个界面友好,供各种用户使用的 IDE ,它提供了一系列的工具帮助 WebJava 应用程序的开发。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言。它还支持如 C / C++JavaScriptPerlPHPFortranRubyPython ,甚至 COBOL 语言。它提供很多功能来简化你的开发,内置的工具和 API 支持项目部署、运行和测试。

注意:很多朋友都没有搞清楚一个点哈, Eclipse 这个软件是集成了 JDK 了的,不需要单独去下载安装。

APIApplication Programming Interface ,应用程序接口)是一些预先定义的 ,或指软件系统不同组成部分衔接的约定。 目的是提供 与开发人员基于某 或硬件得以访问一组 的能力,而又无需访问原码,或理解内部工作机制的细节。

参考: