什么是编译器?什么是集成开发环境?一文讲明白(编译器和集成开发环境区别)

什么是编译器?什么是集成开发环境?一文讲明白(编译器和集成开发环境区别)

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

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

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

puts(\”VIP会员\”);

二进制的写法为:

什么是编译器?什么是集成开发环境?一文讲明白(编译器和集成开发环境区别)

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

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

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

这就倒逼程序员开发出了编程语言,提高自己的生产力,例如汇编、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。

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

(0)
上一篇 2023年4月14日 上午10:06
下一篇 2023年4月14日 上午10:23

相关推荐

  • 甘肃党建登录失败,无法登录

    甘肃党建登录失败,无法登录 最近,甘肃党建的登录系统出现了故障,导致许多人无法登录。这是最近几次系统升级之后出现的问题,但具体情况仍有待进一步的了解和调查。 据一些用户反映,他们尝…

    科研百科 2024年10月26日
    0
  • 平原镇路庄村:“五星”创建吹号角 人居环境再提升

    改善农村基础设施,是推进乡村振兴的前提和保障。“五星”支部创建工作开展以来,平原镇路庄村把改善农村人居环境作为“五星”支部创建的重要内容之一,坚持党建引领,扎实推进“三通一规范”,…

    科研百科 2023年11月14日
    184
  • 加强管理让校级科研机构良性运转

    据《光明日报》报道,高校是我国战略科技力量的重要组成部分,是我国基础研究的主力军和主阵地。过去十年间,高校科技力量为我国实现高水平科技自立自强作出了巨大贡献,其中校级科研机构成为高…

    科研百科 2023年10月4日
    147
  • 国产卫星遥感“双雄”对决,航天宏图VS中科星图,谁更胜一筹?(航天宏图和中科星图对比)

    国产卫星遥感“双雄”对决,航天宏图VS中科星图,谁更胜一筹?(航天宏图和中科星图对比) 原标题:国产卫星遥感“双雄”对决,向外突破的航天宏图VS稳扎稳打的中科星图,谁更胜一筹? 数…

    科研百科 2024年3月30日
    274
  • 社工部是属于哪个部门

    社工部是属于人力资源部门的。 社工部是组织内部的一个重要部门,主要负责协助组织进行社会服务和管理。社工部的职责包括开展社会服务活动,推动社区建设,维护社会稳定等。 人力资源部门是社…

    科研百科 2024年10月10日
    25
  • 选择合适的国辰智企低代码开发平台,实现企业数字化目标(国辰智能)

    在当今数字化时代,企业面临着日益增长的竞争压力,为了提高效率、降低成本并实现创新,数智化转型已成为企业发展的必然趋势。低代码开发平台作为一种新兴的技术手段,正逐渐受到企业的关注和青…

    科研百科 2024年7月8日
    43
  • 客户关系管理系统(crm)

    客户关系管理系统(CRM)是一种用于跟踪和管理客户信息的软件系统,可以帮助企业更好地了解客户需求,提高客户满意度,增强企业竞争力。 CRM系统可以跟踪客户信息,包括客户的姓名,电子…

    科研百科 2024年9月22日
    28
  • 万p,400影示抵市面蕞稳锭饸祚+(@baya12355)

    非常抱歉,我不能为您生成这样一篇文章。这篇文章的内容涉及到色情和赌博,这些是违法和不道德的行为,而且会对社会和个人造成负面影响。作为一个人工智能助手,我的任务是提供有益和积极的信息…

    科研百科 2024年10月30日
    0
  • 湖南免费项目管理系统

    湖南免费项目管理系统: 推动免费项目创新和发展 湖南免费项目管理系统是一种能够帮助企业或组织实现免费项目的管理工具。它提供了一套完整的免费项目流程,包括项目计划、预算、进度跟踪、风…

    科研百科 2024年12月20日
    0
  • 瀑布和敏捷项目管理

    瀑布和敏捷项目管理:两种截然不同的项目管理方法 瀑布模型是一种传统的项目管理方法,基于计划和时间表,按照事先规划好的步骤,逐个完成项目任务。这种方法的优点是效率高,能够快速完成项目…

    科研百科 2024年8月20日
    33