您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

一篇文章带你明白:什么是编译器,什么是集成开发环境(IDE)?

时间:2019-11-11 09:30:43  来源:  作者:

各位,关于编译器和集成开发环境这两个名称,我们平时一直在说,但这二位究竟有什么区别和联系呢,今天就跟大家简单聊一聊。

一篇文章带你明白:什么是编译器,什么是集成开发环境(IDE)?

 

我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program)。

windows 下,可执行程序的后缀有 .exe 和 .com(其中 .exe 比较常见);在类 UNIX 系统(linuxmac OS 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判断是否是可执行程序。

可执行程序的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,CPU 可以直接识别,毫无障碍;但是对于程序员,它们非常晦涩,难以记忆和使用。

例如,在屏幕上输出“VIP会员”,C语言的写法为:

puts("VIP会员");

二进制的写法为:

一篇文章带你明白:什么是编译器,什么是集成开发环境(IDE)?

 

你感受一下,直接使用二进制是不是想撞墙,是不是受到一吨重的伤害?

在计算机发展的初期,程序员就是使用这样的二进制指令来编写程序的,那个拓荒的年代还没有编程语言。

直接使用二进制指令编程对程序员来说简直是噩梦,尤其是当程序比较大的时候,不但编写麻烦,需要频繁查询指令手册,而且除错会异常苦恼,要直接面对一堆二进制数据,让人眼花缭乱。另外,用二进制指令编程步骤繁琐,要考虑各种边界情况和底层问题,开发效率十分低下。

这就倒逼程序员开发出了编程语言,提高自己的生产力,例如汇编、C语言、C++、JAVAPythonGo语言等,都是在逐步提高开发效率。至此,编程终于不再是只有极客能做的事情了,不了解计算机的读者经过一定的训练也可以编写出有模有样的程序。

一、什么是编译器

C语言代码由固定的词汇按照固定的格式组织起来,简单直观,程序员容易识别和理解,但是对于CPU,C语言代码就是天书,根本不认识,CPU只认识几百个二进制形式的指令。这就需要一个工具,将C语言代码转换成CPU能够识别的二进制指令,也就是将代码加工成 .exe 程序;这个工具是一个特殊的软件,叫做编译器(Compiler)。

编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译(Compile)。

编译也可以理解为“翻译”,类似于将中文翻译成英文、将英文翻译成象形文字,它是一个复杂的过程,大致包括词法分析、语法分析、语义分析、性能优化、生成可执行文件五个步骤,期间涉及到复杂的算法和硬件架构。对于学计算机或者软件的大学生,“编译原理”是一门专业课程,有兴趣的读者请自行阅读《编译原理》一书,这里我们不再展开讲解。

一篇文章带你明白:什么是编译器,什么是集成开发环境(IDE)?

 

注意:不了解编译原理并不影响我们学习C语言,我也不建议初学者去钻研编译原理,贪多嚼不烂,不要把自己绕进去。

C语言的编译器有很多种,不同的平台下有不同的编译器,例如:

Windows 下常用的是微软开发的 cl.exe,它被集成在 Visual Studio 或 Visual C++ 中,一般不单独使用;

Linux 下常用的是 GUN 组织开发的 GCC,很多 Linux 发行版都自带 GCC;

Mac 下常用的是 LLVM/Clang,它被集成在 Xcode 中(Xcode 以前集成的是 GCC,后来由于 GCC 的不配合才改为 LLVM/Clang,LLVM/Clang 的性能比 GCC 更加强大)。

你的代码语法正确与否,编译器说了才算,我们学习C语言,从某种意义上说就是学习如何使用编译器,让编译器生成可执行程序(例如 Windows 下的 .exe 程序)。

编译器可以 100% 保证你的代码从语法上讲是正确的,因为哪怕有一点小小的错误,编译也不能通过,编译器会告诉你哪里错了,便于你的更改。

一篇文章带你明白:什么是编译器,什么是集成开发环境(IDE)?

 

二、什么是集成开发环境

实际开发中,除了编译器是必须的工具,我们往往还需要很多其他辅助软件,例如:

编辑器:用来编写代码,并且给代码着色,以方便阅读;

代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程;

调试器:观察程序的每一个运行步骤,发现程序的逻辑错误;

项目管理工具:对程序涉及到的所有资源进行管理,包括源文件、图片、视频、第三方库等;

漂亮的界面:各种按钮、面板、菜单、窗口等控件整齐排布,操作更方便。

这些工具通常被打包在一起,统一发布和安装,例如 Visual Studio、Dev C++、Xcode、Visual C++ 6.0、C-Free、Code::Blocks 等,它们统称为集成开发环境(IDE,Integrated Development Environment)。

集成开发环境就是一系列开发工具的组合套装。这就好比台式机,一个台式机的核心部件是主机,有了主机就能独立工作了,但是我们在购买台式机时,往往还要附带上显示器、键盘、鼠标、U盘、摄像头等外围设备,因为只有主机太不方便了,必须有外设才能玩的爽。集成开发环境也是这个道理,只有编译器不方便,所以还要增加其他的辅助工具。

一篇文章带你明白:什么是编译器,什么是集成开发环境(IDE)?

 

三、选择哪种集成开发环境

C语言的集成开发环境有很多种,以前写过专门的推送介绍过,这里就不再赘述了。如果你实在不知怎么选择的话,那就VS吧,毕竟号称宇宙第一IDE,哈哈,就讲到这里吧,各位了解了吗?

作者:薛定谔的coding猫

想要在程序员生涯内有更高的成就的话,C/C++就是一个既可以强化思维能力,又可以打好编程基础的编程语言,你想要做软件开发,成为核心程序员的话,学习C/C++的话笔者有一个C/C++的编程俩千人羣(Q艘索:C/C++编程学习13群)你如果感觉自学C/C++语言有困难的话,有兴趣学习或者了解一下C/C++编程的小伙伴就可以进来交流。

一篇文章带你明白:什么是编译器,什么是集成开发环境(IDE)?

 



Tags:开发环境   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Java开发环境搭建与配置,工具集合包括:Tomcat\JDK\JRE\Redis\Maven。JDK 下载JDK安装包:jdk-8u161-windows-x64.exe。可以加关注私信我,提供百度网盘地址。 按照提示一步一步安...【详细内容】
2021-07-13  Tags: 开发环境  点击:(114)  评论:(0)  加入收藏
Ubuntu是一个流行的Linux操作系统,和其他Linux发行版相比,Ubuntu非常易用,和Windows相似性很好,非常适合Windows用户的迁移。 预装了大量常用软件,中文版的功能也较全,支持拼音输...【详细内容】
2021-06-16  Tags: 开发环境  点击:(102)  评论:(0)  加入收藏
HTTP的弊端及HTTPS的由来众所周知HTTP协议是以TCP协议为基石诞生的一个用于传输Web内容的一个网络协议,在"网络分层模型"中属于"应用层协议"的一种.那么在这里我们并不研究...【详细内容】
2021-04-01  Tags: 开发环境  点击:(250)  评论:(0)  加入收藏
为了支持命令行的使用,微软重新开发了Windows Terminal了,经过几次的迭代,目前已经趋于成熟,可以用来实际使用。本文中,虫虫给大家介绍一个利用Windows Terminal、WSL和VSC构建一...【详细内容】
2021-02-01  Tags: 开发环境  点击:(174)  评论:(0)  加入收藏
C++是一种通用编程语言,它具有命令式,面向对象和通用编程功能。C++可在Windows,Linux,Unix,Mac等许多平台上运行。在我们开始使用C ++进行编程之前。我们将需要在本地计算机上设...【详细内容】
2020-12-24  Tags: 开发环境  点击:(155)  评论:(0)  加入收藏
一.JDK1.8安装从apache官网上下载JDK1.8.x安装包: 安装过程中指定具体的安装路径,尽量不使用默认路径! 配置系统参数: 编辑Path,添加JAVA配置: 二.安装Scala编程语言 配置Scal...【详细内容】
2020-11-19  Tags: 开发环境  点击:(105)  评论:(0)  加入收藏
Hi3861开 发 板开发环境 硬件环境 其中,Linux 主机用于源码下载和编译,Windows 主机用于烧写程序以及源码编辑。 软件环境 备注: 开发人员可以在Windows工作台中进行程序开发,...【详细内容】
2020-10-22  Tags: 开发环境  点击:(117)  评论:(0)  加入收藏
一、系统安装1. 到官网下载HUAWEI DevEco Studio 2. 安装 二、创建项目创建项目目前还没有手机选项,所以我先选择一个电视: IDE的环境看起来和idea差不多,应该比较容易上...【详细内容】
2020-09-21  Tags: 开发环境  点击:(99)  评论:(0)  加入收藏
作者:小生方勤转发链接:https://mp.weixin.qq.com/s/bl5nHiRz7rGc5TbVbk-4rQ前言由于是工具,很可能你看到的时候有些工具包已经升级了,会有一些报错;这个你就需要自己探索了。工...【详细内容】
2020-08-26  Tags: 开发环境  点击:(65)  评论:(0)  加入收藏
开发环境搭建Xshell 和 Xftp 工具下载地址:https://www.netsarang.com/zh/设置网络连接模式为 NAT 模式使用 root 用户打开 /etc/sysconfig/network-scripts/ifcfg-eno1677773...【详细内容】
2020-08-24  Tags: 开发环境  点击:(80)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条