c语言的翻译叫什么_什么是编译器?什么是集成开发环境?

a185771b6be952b0c17edebde8345d6c.png

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

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

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

puts("VIP会员");

二进制的写法为:

461f58cd641e857e651f4303a277f984.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://www.mzph.cn/news/453093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

平板电脑硬件如何测试软件,先锋(Pioneer)G71平板电脑软件测试评测-ZOL中关村在线...

谷歌对旗下的智能操作系统Android采取了开源的做法,所以说也就造成了它相较于苹果iOS以及微软Windows系统严重的碎片化现象,当然我们也看到了像三星 TouchWiz UX,HTC Sense UI以及小米 MIUI这些非常成熟且易用的第三方固件,只是它…

WPF 中设置Combox下拉框Text 显示值

最近在写一个WPF客户端的一个小程序,其中有个小需求如下: 展示下拉列表里面有树形结构点击下拉子项时同时显示父级和子级文本也就是说在DisplayMember 中有两种显示方式 下拉列表显示时,显示的是DisplayMember 的值点击选中子项时&#xff0c…

简单的文件上传功能实现(java)

现在很多做后台系统的项目大部分都会用到文件上传这个功能,网上有很多例子,这边是自己用SSM框架技术做的一个简单的文件上传功能。 在写文件上传功能前首先要导入相应的jar包: commons-fileupload-1.3.1-jar ;commons-io-2.2-jar …

增量导出_[华为]一种实用的增量式深度CTR模型训练方法

今天给大家介绍一篇有关深度CTR模型增量训练的文章,来自华为诺亚方舟实验室。1、背景深度CTR模型需要大量的数据进行训练,同时需要不断的更新以适应最新的数据分布。如果模型没有及时更新,则有可能带来线上效果的衰减,如下图&…

win7如何添加终端服务器,Windows7系统超级终端的添加方法 win7如何添加超级终端...

有用户在刚升级到Windows7系统以后反映,在XP 操作系统里,超级终端是很好用的,但是却不知道为什么,升级为Windows7系统后却找不到超级终端在哪,出现这样的情况让用户非常的烦恼,其实找不到超级终端&#xff…

腾讯这家公司的核心竞争力是什么?为什么?

Andy Pan ,腾讯无线国际业务产品总监, 腾讯国际业务部... 我决定在国外出差的最后一晚晚点休息,在酒店静静的认真的回答这个问题。我尽量客观的负责的回答,不愤青,不炫耀,不攻击,用朴实的语言。只代表我个人的思考&…

h.323 服务器 作用,Cisco CallManager服务器冗余的H.323 网关拨号对端配置

语音、视频和集成数据 (AVVID) 设计的体系结构一般建议您具有主 Cisco CallManager 服务器和辅助 Cisco CallManager 服务器以实现冗余。如果主 Cisco CallManager 服务器发生故障,则辅助 Cisco CallManager 服务器将接管,并且 IP 电话将重定向到此服务器…

xmind可以画流程图吗_新娘妆可以自己画吗?临夏化妆学校告诉你答案!

对于很多女性来说,一生中最重要的时候无疑是新婚的那一天,古时候的闺阁女子,凤披霞冠,八台大轿,携手自己的如意郎君相伴一生,现代女子,洁白的婚纱,手握鲜花,一枚戒指&…

wget 地址 连接超时_HttoPool连接池 和Hystrix 服务容错机制

学习主题:httpPool&Hystrix学习目标:对应视频: http://www.itbaizhan.cn/course/id/85.html对应文档:无对应作业1. 编写支持Gzip压缩案例(1) 修改Consumer的全局配置文件,添加Gzip相关配置。spring.application.nameeureka-consumer-http…

街舞中的rolling机器人_REMEMBER街舞培训中心2020年元旦汇演

二零二零 元旦汇演REMEMBER2020年1月1日,Remember街舞培训中心在爱琴海购物公园进行了两个小时的汇报表演,Remember的学员们贡献了非常精彩的表演。在过去的2019年,我们一路探索、一路艰辛、一路欣喜、一路收获,在这里感谢所有老…

shell基础(上)

2019独角兽企业重金招聘Python工程师标准>>> 一 shell介绍 shell 是一个命令解释器。本质上是用户与计算机之间的交互。 用户把指令告诉shell,然后shell再传输给系统内核,接着内核再去支配计算机硬件去执行各种操作。 每个用户都可以有自己特…

webRTC实战总结

前言 前段时间一直在忙一个基于WebRTC的PC和移动端双向视频的项目。第一次接触webRTC,难免遇到了许多问题,比如:webRTC移动端兼容性检测,如何配置MediaStreamConstraints, 信令(iceCandidate, sessionDescription)传输…

谷歌虚拟服务器申请,【美国podserver.info】免费300M虚拟主机空间申请使用教程

【美国podserver.info】注册使用教程:1、打开申请地址,点击下图位置中的“Sign Up”开始注册。2、点击“Sign Up”开始注册后,进入到注册检查页面,我们按下图选择“I’m a human.”然后点击“Submit”进入到注册信息填写页面。3、…

web服务器文件管理,web文件管理服务器

web文件管理服务器 内容精选换一换该任务指导用户在SSL证书管理平台下载证书。证书状态为已签发或托管中。仅支持在证书有效期内,不限次数的下载证书,下载后即可在服务器(华为云的或非华为云的均可)上进行部署。证书请求文件选择的是系统生成CSR&#xf…

伟大公司为什么需要技术型领导?

Facebook前工程总监黄易山撰写了一系列文章,很好地总结了Facebook卓越研发文化中的宝贵经验。本文是这一系列文章的第五篇,也是最后一篇。 何谓技术型领导 所有从外部聘用的管理人员包括技术部门负责人,都必须能够编写代码,并且…