看完这篇带你完全理清IDE、编辑器、编译器、解释器和调试器的概念

您所在的位置:网站首页 编辑器是 看完这篇带你完全理清IDE、编辑器、编译器、解释器和调试器的概念

看完这篇带你完全理清IDE、编辑器、编译器、解释器和调试器的概念

2023-08-23 08:34| 来源: 网络整理| 查看: 265

IDE、编辑器、编译器、解释器与调试器 写在前面IDE编辑器编译器解释器调试器 编译器和解释器的区别和优缺点编译器和调试器的区别

写在前面

对于这些概念,简单记录一下自己的理解,如果有不对的地方请多多指正。

IDE

集成开发环境,一般包括代码编辑器、编译器、调试器和图形用户界面工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫集成开发环境。就比如MDK Keil,它就属于用于ARM软件开发的集成开发环境。

个人理解就是将代码从高级语言或者汇编语言变成能够被机器识别的二进制文件一整套的工具集合。

编辑器

文本编辑器(文字编辑器)是用作编写普通文字的应用软件,它与文档编辑器(文字处理器)不同之处在于它并非用作桌面排版(例如文档格式处理),它常用来编写程序的源代码。常用的代码编辑器有:Notepad++,EditPlus,vim,Sublime Text,WebStorm ,HBuilder,GNU Emacs,ATOM,Windows记事本等等…其中visual studio code是微软开发一款开源文本编辑器,比atom编辑器更好用。

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

个人理解就是你只能在编辑器上记录,最好的举例就是跟Windows下记事本一样。

编译器

把源代码转换成(翻译)低级语言的程序,一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器 (compiler) → 目标代码 (object code) → 链接器 (Linker) → 可执行程序 (executables)。

个人理解,编译器负责将高级语言,如C、C++、Pascal/Object Pascal(Delphi)、Golang等等这些编译型语言转换成汇编语言,然后汇编器和链接器负责将汇编语言变为机器可识别的二进制文件。网上有些资料会说编译就是将高级语言或者汇编语言变成机器识别的二进制语言,个人理解这是因为一般的编译器都将汇编器链接器包含在内,所以会这样说。

下面给出C程序编译的过程,帮助大家理解: 在这里插入图片描述 在这里插入图片描述 简单总结:编译器编译完,高级语言变为汇编语言,.h文件和.c文件变为.a文件,即汇编文件。汇编器汇编完,生成.o文件,通过链接器用链接库做链接,最终变成a.out文件(Linux中)和a.exe文件(Windows中)。即变成电脑能够识别的二进制文件。

解释器

直接把高级编程语言一行一行转译运行,重点是不会一次把整个程序转译出来,因此运行速度比较缓慢,它每转译一行程序就立刻运行,然后再转译下一行,再运行,如此不停地进行下去。

个人理解,解释器是帮助解释型语言一行一行的翻译成机器语言,程序是不需要编译的,程序在运行时才翻译成机器语言。比如Java、Perl、Python、basic、C#、PHP、Ruby、MATLAB等等。脚本语言也是解释型语言,比如VBScript、JavaScript、installshield script、ActionScript等等,脚本语言不需要编译,可以直接用,由解释器来负责解释。

调试器

DeBugger(调试器)是自从计算机诞生伊始就始终伴随着程序员的一个挚友,起初的调试器都是基于硬件直接实现的。

这个很好理解,就是控制软件运行、查看软件运行中信息、修改软件执行流程等作用,通俗的讲调试器是用来在程序运行以后,根据运行状况来检查错误。

编译器和解释器的区别和优缺点

区别:解释器是解释执行的源代码,编译器是将源代码编译成目标代码。他们最大的区别是程序运行时需要解释器边解释边执行,而编译器则在运行时是完全不需要的。

解释器优缺点:优点是比较容易让用户实现自己跨平台的代码,比如Java,php等,同一套代码可以在几乎所有的操作系统上执行,而无需根据操作系统做修改。缺点是由于程序不需要编译,程序在运行时才翻译成机器语言,每执行 一次都要翻译一次,造成执行效率比较低。这也是为什么python编译的时候很慢,C程序编译起来很快的原因。

编译器优缺点:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差。编译器的目的就是生成目标代码再由连接器生成可执行的机器码,这样的话需要根据不同的操作系统编制代码,虽然有像Qt这样的源代码级跨平台的编程工具库,但在不同的平台上仍然需要重新编译连接成可执行文件,但其执行效率要远远高于解释运行的程序。

编译器和调试器的区别

编译是编译器在你程序没有运行的时候帮你检查错误。调试是你用调试器在程序运行以后,根据运行状况来检查错误。编译器是把你代码汇编成二进制文件,可以执行的程序。调试器是对已经存在的二进制文件进行调试的软件,目的在于查找性能的瓶颈和跟踪软件的bug。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3