datasheet

什么是编译器?什么是集成开发环境?一文讲明白

2019-08-09来源: 互联网关键字:编译器  集成开发环境

我们平时所说的程序,是指双击后就可以直接运行的程序,这样的程序被称为可执行程序(Executable Program)。在 Windows 下,可执行程序的后缀有 .exe 和 .com(其中 .exe 比较常见);在类 UNIX 系统(Linux、Mac OS 等)下,可执行程序没有特定的后缀,系统根据文件的头部信息来判断是否是可执行程序。

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

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

puts("VIP会员");


二进制的写法为:


图片.png


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

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

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

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


什么是编译器


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

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

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

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

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

Windows 下常用的是微软编译器(cl.exr),它被集成在 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% 保证你的代码从语法上讲是正确的,因为哪怕有一点小小的错误,编译也不能通过,编译器会告诉你哪里错了,便于你的更改。


什么是集成开发环境


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

编辑器:用来编写代码,并且给代码着色,以方便阅读;
代码提示器:输入部分代码,即可提示全部代码,加速代码的编写过程;
调试器:观察程序的每一个运行步骤,发现程序的逻辑错误;
项目管理工具:对程序涉及到的所有资源进行管理,包括源文件、图片、视频、第三方库等;
漂亮的界面:各种按钮、面板、菜单、窗口等控件整齐排布,操作更方便。

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

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

集成开发环境也是这个道理,只有编译器不方便,所以还要增加其他的辅助工具。


选择哪种集成开发环境


C语言的集成开发环境有很多种,尤其是 Windows 下,多如牛毛,初学者往往不知道该如何选择。

当然,你不用全部都了解,如果你使用 Windows,那么请忽略 Mac OS 和 Linux;如果你使用 Mac OS,那么请忽略 Windows 和 Linux。

关键字:编译器  集成开发环境

编辑:冀凯 引用地址:http://news.eeworld.com.cn/qrs/ic470621.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:华为王成录:方舟编译器应用流畅度最高提升60%
下一篇:最后一页

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

你知道第一个编译器发明者是一位女大牛吗?

在今日东莞松山湖举行的“华为开发者大会”上,华为消费者业务软件总裁王成录说,方舟编辑器构建的存在,让华为系统有了领先所有厂家的可能。方舟编译器应用流畅度最高提升60%。当日,华为终端CEO余承东也表示,目前已有几十款主流应用,都通过了方舟编译器编译了,也就是说鸿蒙操作系统随时都有可能用在手机上。编译器这么重要,那么你知道第一个编译器的发明者是为女性吗?早期的计算机软件都是用汇编语言直接编写的,这种状况持续了数年。当人们发现为不同类型的中央处理器(CPU)编写可重用软件的开销要明显高于编写编译器时,人们发明了高级编程语言。由于早期的计算机的内存很少,当大家实现编译器时,遇到了许多技术难题。大约在20世纪50年代末期,与机器无关的编
发表于 2019-08-09
你知道第一个编译器发明者是一位女大牛吗?

华为王成录:方舟编译器应用流畅度最高提升60%

科创板日报讯,在今日东莞松山湖举行的“华为开发者大会”上,华为消费者业务软件总裁王成录说,方舟编辑器构建的存在,让华为系统有了领先所有厂家的可能。方舟编译器应用流畅度最高提升60%。
发表于 2019-08-09

华为方舟编译器只是工具,让安卓程序编译更快

华为方舟编译器,并不是一个系统,只是安卓上的工具,它可以让安卓程序编译的效率更高,安装程序的速度、运行的速度更快,让程序降低对用户设备的电量消耗,同时还可以在一定程度上减低程序对硬件的要求。 8月5日消息,对于即将开幕的开发者大会,华为已经表示,将在8月9日宣布一项重大计划,那就是方舟编译器开源,他们希望和广大合作伙伴、应用开发者一起加入“方舟朋友圈”,一起打造终端生态的方舟,共建公平、公开、健康、共赢的全球生态。 其实今年6月份的时候,华为战略与产业发展副总裁肖然在中国开源峰会2019上就提前预告了,方舟编译器将于今年8月正式开源,而从官方公布的开发者大会议程看,8月9日开幕式上,余承东将正式宣布这个消息
发表于 2019-08-05
华为方舟编译器只是工具,让安卓程序编译更快

Keil5配置GCC编译器编译STM32工程

Keil一般使用ARMCC编译MCU工程代码。偶然听说Keil也是支持内嵌GCC编译器的。于是尝试了网上博客所述的一些方法,最终找到了一篇博客http://blog.csdn.net/lan120576664/article/details/46806991按照文中所述,发现仍存在一些其他错误,后来又查找了其他相关资料,在这作以总结一、下载GCC编译器https://launchpad.net/gcc-arm-embedded/二、安装GCCGCC解压到keil的安装目录下面。如下图 三、配置Keil如下图所示进行相关设置:Prefix:arm-none-eabi-Folder:D
发表于 2019-07-26
Keil5配置GCC编译器编译STM32工程

华为平板M6系统更新,新增了支持华为的方舟编译器

据热心网友分享,华为平板M6现已推送EMUI 9.1.1.109版本更新,除优化问题与提升系统体验外,新版本新增支持华为方舟编译器。官方介绍,方舟编译器是安卓性能的革命性突破。这是业界首个多语言联合优化的编译器,开发者在开发环境中可以一次性将多语言统一编译为一套机器码,运行时无需产生跨语言带来的额外消耗,并可以进行跨语言的联合优化,提升运行效率。据悉,方舟编译器在开发环境中就可以完成全部代码的编译,手机安装应用程序后无需依赖虚拟机资源,即可全速运行程序,带来效率上的极大提升。除了更新支持方舟编译器之外,华为平板M6还优化了指纹解锁性能;优化语音助手功能;优化部门第三方应用在横屏状态下的界面显示效果;优化屏幕触摸灵敏度,提升手写笔
发表于 2019-07-16
华为平板M6系统更新,新增了支持华为的方舟编译器

进一步扩大微控制器生态圈 ST发布免费集成开发环境

STM32CubeIDE免费供用户使用,高度集成提供众多高端功能强大的集成功能另STM32CubeMX在同类型产品中卓尔不群ST仍会继续支持第三方合作伙伴工具,为STM32开发人员提供选择的灵活性横跨多重电子应用领域的全球领先的半导体供应商意法半导体继续发力,提升功能丰富且高能效的STM32系列微控制器的易用性,在STM32Cube软件生态系统中增加一个免费的多功能STM32开发工具:STM32CubeIDE。 为了和商用集成开发环境(IDE)工具一样好用,STM32CubeIDE充分发挥了意法半导体 2017年收购的嵌入式开发工具厂商Atollic®的技术优势。这套IDE软件采用行业标准的开放式许可条款,为简化和加
发表于 2019-04-26
进一步扩大微控制器生态圈 ST发布免费集成开发环境

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved