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可以画流程图吗_新娘妆可以自己画吗?临夏化妆学校告诉你答案!

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

2.如何对待加班

感觉深圳尤其是IT行业,加班确实很普遍。我觉得主要看是为什么加班吧,是公司强制要求,还是员工开发效率低,还是加班有额外的收入,还是想在这个期间学习,自我提升。公司为什么会形成这个氛围,是自…

计算机一级发邮件发送多个抄送,计算机一级考试IE题和收发邮件模拟题.docx

文档介绍:某模拟网站的主页地址是:HTTP://LOCALHOST:65531/ExamWeb/INDEX.HTM,打开此主页,浏览"航空知识"页面,查找"运十运输机"的页面内容,并将它以文本文件的格式保存到考生目录下,命名为"y10ysj.txt"。IE题①通过"答题"…

git merge与rebase

参考这篇文章 Git 之 merge 与 rebase 的区别 文章2 另外,使 rebase出现冲突后,先修改冲突,然后git add 某文件(我使用add .经常有问题),然后git rebase --continue,持续到rebase结束&#xf…

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

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

JQuery 加载 CSS、JS 文件

JS 方式加载 CSS、JS 文件: //加载 css 文件 function includeCss(filename) {var head document.getElementsByTagName(head)[0];var link document.createElement(link);link.href filename;link.rel stylesheet;link.type text/css;head.appendChild(link) …

关闭网页如何接收服务器消息,WebSocket服务端发消息给客户端,浏览器收到消息就关闭了...

引用 2 楼 fly_dragon_fly 的回复:收到的消息是什么0000 00 0b ab 7a 86 83 18 f4 6a 36 60 a2 08 00 45 00 ...z....j6...E.0010 00 b9 49 d3 40 00 40 06 6b aa c0 a8 01 79 c0 a8 ..I...k....y..0020 01 f8 08 03 71 88 a4 d5 52 dc ce c1 f6 89 50 18 ....q...R..…