计算机语言
语言是两事物沟通和信息传递的桥梁,人和人之间使用中文、英文等,同样,人想要和计算机间进行信息传递,就需要一种语言,使人和计算机都能识别,这就是计算机语言。计算机语言经历了几个发展阶段:
- 机器语言
计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成的指令。我们日常使用的是十进制,而为什么要大费周章的转换成二进制呢?因为,计算机是一种机器,机器运作时只具备两种属性,即开或关(有或无),所以只能表示为0和1。计算机发展初期,一般计算机的指令长度为16,即16个0或1的排列组合,现在很多家用电脑使用的操作系统都已经是32位或64位的,即在操作系统底层运算时有32或64个0或1的排列组合。这些二进制代码称为机器指令,许多机器指令的集合就是该计算机的机器语言。 - 符号语言
机器语言与平时人的语言习惯差别太大,使用起来难度太大,为了克服这些缺点,人们创造出符号语言。例如用ADD代表“加”,SUB代表“减”,很多机器指令都可以用符号代替。但是这用指令机器无法直接识别,所以需要使用汇编程序,将符号指令转换为机器指令,所以符号语言也称为汇编语言。
机器语言和汇编语言是完全依赖于具体机器特性的,不同型号的计算机的机器语言和汇编语言是互不通用的。由于它“贴近”计算机,或者说离计算机“很近”,称为计算机低级语言。 - 高级语言
虽然汇编语言解决了一些机器语言的缺点,但仍然距离人们的使用习惯较远,对操作专业要求较高,难以普及。为了克服低级语言的缺点,20世纪50年代创造出了第一个计算机高级语言——FORTRAN语言。它很接近人们习惯使用的自然语言和数学语言。程序中用到的语句和指令是用英文单词表示,运算表达式也和平时的数学公式差不多,很容易理解。并且这种语言功能性很强,且适用性强,不依赖与具体机器,故称为计算机高级语言。
自此开始,更多的人开始接触到计算机编程,计算机的普及和推广也变得迅速。数十年来,全世界涌现了2500多种高级语言,现在常见的C语言、C++、Java、Python、PROLOG等,都是高级语言。
C语言
C语言的发展
1967年英国剑桥大学的Martin Richards推出了没有类型的BCPL语言。
1970年美国AT&T贝尔实验室的Ken Thompson以BCPL语言为基础,设计出了很接近硬件的B语言(取BCPL第一个字母),但B语言过于简单,功能有限,硬件依赖度高,可移植性差。
1972-1973年间,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言。既保持了BCPL和B语言精练的特点,又加入了多种数据类型(如数组、字符、指针等)。
所以可以说C语言的祖先是BCPL语言。
C语言的特点
- 语言简洁紧凑,使用方便灵活。
- 运算符丰富。
- 数据类型丰富。
- 具有结构化控制语句。
- 语法限制不太严格,程序设计自由度大。
- C语言允许直接访问物理地址,实现汇编语言大部分功能。
- 编写的程序可移植性好。
- 生成目标代码质量高,程序执行效率高。
C语言的程序
关于程序的构成,著名计算机科学家Nikiklaus提出一个公式:程序=算法+数据结构
一个C语言程序大致包括以下信息:
①预处理指令:如#include<stdio.h>是将stdio.h头文件的内容读进来。C语言不提供输入输出语句,输入输出操作都是通过stdio.h中的库函数来完成。
②全局声明:函数之外的数据声明,在整个程序文件内都有效。
③函数定义:每个函数都实现一定的功能,调用这些函数时,程序就会完成函数定义中指定的功能。函数是C语言程序的主要组成部分,其中必须包含一个主函数(main)且只能有一个主函数。不论main函数在程序的什么位置,程序总是从main函数开始执行。
④程序注释:一个好的程序应当加上必要的注释,增加程序的可读性。
样例程序
#include<stdio.h> //预处理指令,读入头文件stdio.h
int A=1; //全局声明,变量A=1;
int main() //函数定义,主函数main
{
printf("Hello C语言 A=%d\n",A); //输出语句
return 0;
}
运行结果
程序设计的过程
- 问题分析,根据已有条件,找出解决问题的规律和方法。
- 设计算法,设计出解题的方法和具体步骤。
- 编写程序,根据算法,用高级语言编写源程序。
- 编译连接,得到可执行程序。
- 运行程序,分析所得结果是否达到预期。
- 编写文档,许多程序是提供给别人使用的,程序文档如同产品说明书,是必不可少的。
写在最后
C语言程序的编译运行需要安装相关编译器,现在编译器有很多,比如Visual C++ 6.0、Dev-C++、Microsoft Visual Studio系列等,可以根据不同的需要和使用习惯选择编译器,编译器安装后就可以在上面编写和运行C语言程序。
参考资料:《C程序设计(第四版)》谭浩强著.清华大学出版社
个人学习时的主要教材,文章知识点的描述均取自于教材但不局限于教材
(只是分享个人学习时的想法和理解,如有问题还望大佬指点)