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

看完这篇带你完全理清IDE、编辑器、编译器、解释器和调试器的概念IDE 编辑器 编译器 解释器与调试器写在前面 IDE 编辑器编译器解释器调试器编译器和解释器的区别和优缺点编译器和调试器的区别写在前面对于这些概念 我只是记录一下自己的理解 如果有不对的地方请多多指正 IDE 集成开发环境 一般包括代码编辑器 编译器 调试器和图形用户界面工具 集成了代码编写功能 分析功能 编译功能 调试功能等一体化的开发软件服务套 所有具备这一特性的软件或者软件套 组 都可以叫集成开发环境 就比如 MDKKeil 它就属于用于 ARM 软件开发的集成开发环境 个人理解就是将代码从高级语言

写在前面

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

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等等这些编译型语言转换成汇编语言,然后汇编器和链接器负责将汇编语言变为机器可识别的二进制文件。网上有些资料会说编译就是将高级语言或者汇编语言变成机器识别的二进制语言,个人理解这是因为一般的编译器都将汇编器链接器包含在内,所以会这样说。

解释器

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

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

调试器

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

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

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

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

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

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

编译器和调试器的区别

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212433.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:03
下一篇 2026年3月18日 下午8:04


相关推荐

  • poj 1088 记忆化搜索||动态规划

    poj 1088 记忆化搜索||动态规划poj1088    记忆化搜索也也是采用递归深搜的对数据进行搜索,但不同于直接深搜的方式,记忆化搜索是在每次搜索时将得到的结果保存下来,避免了重复计算,这就是所谓的记忆化。记忆化应该是属于动态规划。   举个例子,比如我们搜索最长最长连续增子序列,1 234567,当然这个例子比较特殊,但足以说明情况。   对于这种问题,我们可以先搜索以1开始的

    2022年7月26日
    8
  • windows下github 出现Permission denied (publickey).解决方法

    windows下github 出现Permission denied (publickey).解决方法

    2021年10月12日
    79
  • OTA测试你真的了解吗?

    OTA测试你真的了解吗?最近在国际物联网展上 班妹遇到了一个令人哭笑不得的问题 有盆友问什么是 OTA 测试 OTA 不是在线旅游吗 怎么还需要做测试 作为一个专做 OTA 测试的民工 要低调 被人误解这么深 实在不能忍 今天就跟大家好好掰扯掰扯什么是 OTA 测试 闲话少叙 重点献上 一 什么是 OTA 测试 二 为什么要进行 OTA 测试 三 OTA 测试主要测试了哪些参数 四 小结一 什么是 OTA 测

    2026年3月17日
    3
  • SpringBoot中通过Redis的setnx和自定义注解@Idempotent实现API幂等处理

    SpringBoot中通过Redis的setnx和自定义注解@Idempotent实现API幂等处理1 简述目的 一定时间内 同样的请求 业务参数相同 访问同一个接口 则只能成功一次 其余被拒绝 2 引入 redis 支持因为需要通过 redis 的 setnx 确保只有一个接口能够正常访问 所以需要引入 redis 2 1 pom xml dependency groupId org springframew boot groupId dependency

    2026年3月19日
    2
  • IDEA配置MAVEN超详细

    IDEA配置MAVEN超详细1 打开 idea 在开始界面点击 Customize Allsettings 推荐大家从这里设置 这样以后新建的项目就不用再设置了 在里面设置的话每次打开新项目都要设置一次 2 依次点击 Build Execution Deployment BuildTools Maven3 选择本机 maven 安装目录 maven 配置好的话在下拉列表就可以直接看到 选择自己安装的 maven 就可以了 4 点击后面的 Override 选择自己 maven 的 setting xml 和仓库位置 5 最后别忘了点击 O

    2026年3月16日
    1
  • intellij idea 激活码2099[最新免费获取]

    (intellij idea 激活码2099)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S32PGH0SQB-eyJsaWNlb…

    2022年3月25日
    200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号