C语言概览
来源:互联网 发布:刺客信条2mac 编辑:程序博客网 时间:2024/04/28 10:23
计算机工作原理,高级语言与编译器
在介绍C语言之前,有必要简单理解一下计算机的工作原理,高级计算机语言和编译器,使我们对于代码的编译和执行有一个最简单的了解(不知道理解的对不对,嘻嘻)
首先,计算机的工作原理。计算机的工作原理是一个比较复杂的问题,我之前有一些了解,但以我现在的水平还无法去系统学习和理解,以后会去逐步接触和学习,请见谅。我是这样理解的:计算机只认识二进制命令(0010101000110),如果你要计算机为你工作或者你要和计算机沟通,那你就只能输入二进制命令来操控计算机。对于计算机如何识别二进制,如何执行命令这里全部不管。我们只要给出二进制给计算机,然后计算机完成任务,最后我们得到结果就行了。【如果需要搞清楚具体实现原理,只有去学习计算机的基本原理】
其次,高级计算机语言。所以,我们该如何命令计算机呢?第一,让计算机听懂人类的语言(中文,英语,西班牙等),很显然计算机听不懂人类的自然语言,没办法理解并执行命令,行不通。第二,人类去编写二进制命令(0010101110110),然后给计算机去执行。这是可以的,但是:二进制对于人类来说太难理解了,效率很低,难记,很痛苦,最好有别的方法。 经过汇编语言的发展,终于出现高级计算机语言。现在我们可以用简单的符号,数字,字母,单词的组合来表达我们想要做的事情。至少这些东西 (也就是代码)能被我们很好的组织,编写与理解,能表达我们所要传递的信息,最后形成命令给计算机去执行。
最后,编译器。很明显我们写的代码并不是计算机直接所要的二进制形式,这时我们就需要用到编译器。编译器相当于我们和计算机之间的一座桥梁或者一位翻译官,它最主要的工作就是将高级语言程序解释成计算机所需的详细的计算机语言指令合集,这样计算机就理解了我们的命令。【这里同样不深究编译器是如何进行翻译工作的,要另外学习】
记住下面简单的流程:
用高级语言编写代码→→→→把代码交给编译器翻译→→→→编译器翻译成二进制形式
→→→→编译器把二进制命令交给计算机执行→→→→计算机得出结果
最后的补充:因为每一种的计算机在设计上都有其自身的机器语言(也就是一样的二进制代码对于不同的机器而言,其意义是不一样的),所以使用编译器的另一个好处就是可以将编译器匹配一种特定的机器语言。这样,使用正确的编译器,就可以将同样的高级语言程序转译为各种不同的机器语言。在C语言上体现为可移植性。
C语言的起源:
前面介绍了高级语言,编译器和对计算机原理的理解,现在正式对C语言进行介绍。由于C语言的起源在网上能找到很多资料,大家可以找来看看,这里不再叙述。对于学好一门语言,我认为了解它的起源发展是很有必要,C语言的发展历史能让我们更加理解它的一些特点与功能,所以在这里推荐挺好的一篇文章,关于C语言的发展起源:http://blog.csdn.net/u010297957/article/details/51289544
希望能帮助到有需要的人。
以下为摘自文章的内容并加以自己的修改。
C语言的历史太漫长,简单总结列表如下:
1. CPL(Combined ProgrammingLanguage) -1963
CPL是1963年剑桥大学发明的。
2.BCPL(Base Combined ProgrammingLanguage) -1967
剑桥的Matin Richards 对CPL做了简化,推出了BCPL。
3.B(B Programming Language) - 1969
贝尔实验室的Ken Thompson(肯·汤普森) 对BCPL又做了改进,设计出了 简单的且接近硬件的B语言,并用B语言写了第一个UNIX OS。
4.C(C Programming Language) - 1972
贝尔实验室的另外一个人D.M.Ritchie ( DM里奇)在B的基础上设计出了C语 言。C 保持了B的优点(精炼、接近硬件),又克服了他的缺点(过于简单, 数据无类型)。
5.1973年,C主体完成。KenThompson和D.M.Ritchie迫不及待的开始用C语言完全重 写了UNIX。从此一门心思的投入到了UNIX和C语言的开发中。自此,C语言 和UNIX相辅相成的发展至今。
C语言的优点:
1, 高效性:
C程序的代码高效简洁,是最接近底层机器的高级语言,它允许我们访问硬件,并可以操纵内存中的特定位,可以表现出汇编语言才有的精细控制能力。对于运行速度要求严格的项目运用C语言来编写会有很好的效果。总的来说C语言是一门很棒的高级语言。
2, 可移植性:
在一个系统里编写的C语言程序,经过很少的修改甚至不修改,就能在其他系统上行。
(上面文章已经有提到,接下来(1.4 C语言编程机制)还会讲到)
3, 功能强大并灵活:
如何来描述强大和灵活呢?C语言具有强大的控制结构,具有丰富的运算符提供选择它的语法灵活多样,能简洁的表达自己的需求,从而实现很多功能。
4,紧凑的代码使程序更小,面向编程人员等等。
C语言还有一些其他的优点不再一一写出。当然C语言和每门语言一样都存在自己的缺点和不足,我就不再记录,相信在以后的编写实践过程中会不断的体会的到。
总结:
这一篇对于C语言的概述仅仅简单介绍C语言的起源和优点,如果还需要更加全面详细的信息,可以自行查阅资料或者上网搜索。(我觉得了解这些基本可以了................哈哈)
更重要的是大概知道代码是经过怎么样的流程被计算机执行。接下来的章节会具体记录C语言的编程机制。
- C语言概览
- c 语言手册概览
- C语言概览
- C语言概览
- C语言概览
- C语言学习_001_概览
- C语言解释器-3 设计概览
- C语言基础(十二)- 数据结构概览
- (Python编程)C语言内嵌API概览
- (Python编程)C语言内嵌API概览
- C语言标准库概览详述[0]-目录
- C语言标准库概览详述[1]-断言<assert.h>
- C语言标准库概览详述[5]-跳转<setjmp.h>
- C语言标准库概览详述[6]-信号<signal.h>
- C语言标准库概览详述[10]-字符串<string.h>
- C语言标准库概览详述[12]-其它
- c语言。利用交换概览把值从大到小输出
- C语言程序运行期间所作工作的概览
- 页面树形结构
- Leetcode-473. Matchsticks to Square
- 最小重量机器设计问题
- angular指令的transclude选项以及ng-transclude指令
- 迷宫
- C语言概览
- salesforce中常用技能总结(纯粹干货,深度积累)
- 四大组件复习(三)
- 请教定时执行任务问题
- 所谓更牛,就是换个罪受!——《时间的朋友2016跨年演讲》深入笔记
- 一次MAT分析logstash内存溢出
- 怎么在图片窗口后台要增加alt 标签和 title 标签输入框。并在栏目页面alt 标签和 title 标签显示出来?
- 4.图像的空间域变换操作
- <顺序表>从一个有序顺序表中删除重复的元素