C语言 百文网手机站

C语言的由来与发展

时间:2022-02-28 14:15:11 C语言 我要投稿

C语言的由来与发展

  “C语言是在一种称为B语言的基础上,克服了B语言依赖于机器又无数据类型等局限性开发的语言。大家知道C语言是怎么来的吗?下面yjbys考试网小编为大家普及以下C语言的由来与发展,希望能够帮助大家更加了解C语言。

  1.1.1. c语言的由来

  c语言诞生干19?2年,由美国电话电报公司(AT&T)贝尔实验室的D. M. Ritchie设计,

  并首先在一台使用UNIX操作系统的DEC PDP-11计算机上实现。

  C语言是在一种称为B语言的基础上,克服了B语言依赖于机器又无数据类型等局限性开发的语言。在1970年,美国贝尔实验室的IC. Thompson以BCPL语言为基础,设计出一种既简单又接近于硬件的B语言,并用它写成了第一个UNIX操作系统,在PDP-7计算机上实现的。B语言是取了BCPL语言的第一个字母。而BCPL语言(Basic Combined ProgrammingLanguage)是3.967年英国剑桥大学的M. Richard,基于一种CPL语言(combined Program-wing Language)提出的一种改进的语言。而CPL语言又是于1963年英国剑桥大学根据AL-GOL 8。推出的一种接近硬件的语言。由此可见,G语言的根源可以追溯到ALGOL 60,它的演变过程如下所示:

  ALGOL6o(1960年)与CPL(1963年)一BCPL(1967年)iB<3970年)-->C(1972年)

  1. 1. 2C语言的发展

  C语言是在人们设想寻找一种既具有一般高级语言的特征,又具有低级语言特点的语言

  的情况下应运而生的,它具有人们的这种期望,集中了高级语言和低级语言的优点。最初的C语言就是为了描述和实现UNIX操作系统而产生的一种工具语言。1973年,贝尔实验室的KThampson和D. M. Ri}chie两人合作使用C语言修改了UNIX操作系统,即uNZx第5版本。原来的UNIX操作系统是用汇编语言写的,改写后UNIX操作系统中90%以上使用了C语言。从此,C语言的命运与UNIX操作系统便有着密切的联系,随着UNIX操作系统的发展和推广,C语言也在被广泛的使用和发展。

  C语言出世以后。在应用中不断的改进。在1975年UN1X第6版本公布以后,C语言开始引起人们的注意,它的优点逐步被人们所认识。1977年出现了与具体机器无关的C语言编译文本,推动了UNIX操作系统在各种机器上的迅速地实现。随着UNIX的日益广泛的'使用,C语言也得到了迅速的推广。1978年以后,C语言先后被移植到大、中、小和微型机上,它很快成为世界上应用最广泛的计算机语言之一。

  1978年又推出UNIX第8版本,以该版本中的C编译程序为基础,B. W. Ketnigha。和D. M. Ritchie合作(被称为K&R)出版}}The C Programming Language}(C程序设计语言)一书,被称为标准C 1983年,ANSI(美国国家标准化协会)对G语言的各种版本进行了扩充,推出了新的标准,被称为ANSI . 它比原来的标准C有了改进和扩充。1987年,ANSI又公布了87ANSZC新版本。目前流行的各种c语言编译系统的版本大多数都以此为基础,但各有其不同。当前微机上使用的C语言编译系统多为Microsoft C, Turbo C, Borland C和QuickC等,它们略有差异,按标准C书写的程序,基本上都可运行。读者要了解不同版本的编译系统的特点和区别可参阅有关的操作说明书。

  C语言的特点

  1.C语言是一种结构化的程序设计语言

  结构化程序设计的优点是便于分工合作,便于调试、维护和扩充。这种程序设计方法是将一个大程序分成若千个模块,每个模块完成一个功能,由一个总控模块来控制和协调各个模块来实现总的功能;因此,这种程序设计方法又称为模块化程序设计方法。在C语言中,函数是构成C谙言程序的最小模块。实际上,C语言的程序是由一个或者多个文件组成的,每个文件叉是由一个或多个函数组成的。因此,一个程序是由一个或多个函数组成的,其中,须有且仅有一个主函数,生函数的名字规定为rnain() o这样,组成一个程序的者干个文件中,仅有一个是主文件,只有主艾件中才含有main ( )函数。另外,函数是由若干条语句组成的,语句是由若干个单词组成的‘单词是由若干个字符组成的。字符是构成程序的最小单元。e语言程序的构成如下所示:

  程序~文件~函数~语句~单词、字符。

  C语言是结构化程序设计语言,它具有构成三种基本结构模式的语句,这种结构化程序设计应具有的三种基本结构模式如下:

  顺序结构棋式

  它将由若干条顺序执行的语句构成,这是程序设计的最基本形式。

  分支结构模式

  C语言中具有条件语句和开关语句,它将会构成各种需要的分支结构模式。

  循环结构模式

  C语言中提供了三种循环语句(for循环,whil。循环和do-while循环),用它们可以构成

  各种循环结构模式。

  在讲述C语言是一种结构化程序设计语言的同时,还必须指出它与其他结构化程序设计语言(如PASCAL语言)相比较,还有一些不完全之处,因此,C语言是一种不完全的结构化程序设计语言。其表现如下:

  第一,完全的结构化程序设计语言不允许使用goto语句,因为goto语句会破坏结构化。

  但是。got。语句在某些时候会使得程序简练,因此,在C语言中原则上允许使用goto语句,为了减少它对结构化的影响,采取了限制使用的办法,即规定got。语句的转向范围只能在一个函数体内。不得使用gates语句从一个函数体内转向到另一个函数体中,这种限制性地使用goto语句会给编程带来一些方便,又不会影响棋块之间的结构化。但是,建议在G语言的程序中尽量少使用goto语句。

  第二,完全的结构化程序设计语言要求一个模块只有一个入口和一个出口,这样便于结构化的管理。但是,C语言程序中允许函数使用多个返回语句(return语句),即允许函数有多个出口,返回到调用函数。这样做也是为了编程中的方便。在C语言程序中,可以使用条件语句来返回不同的函数值。

  由此可见,C语言虽然是一个不够严格的结构化程序设计语言,但它是一个使用起来十分灵活的高级语言。

  C语言的语法结构

  顺序结构

  顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。

  例如:a=3,b=5,现交换a、b的值,这个问题就好像交换两个杯子里面的水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c=a;a=b;b=c,执行结果是a=5,b=c=3,如果改变其顺序,写成:a=b;c=a;b=c;则执行结果就变成a=b=c=5,不能达到预期的目的,初学者最容易犯这种错误。顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算、输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s=3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。

  选择结构

  顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。

  循环结构

  循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即goto循环、while循环、do while循环和for循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误。

  特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。

  三个循环的异同点:用while和do while循环时,循环变量的初始化的操作应在循环体之前,而for循环一般在语句1中进行的;while循环和for循环都是先判断表达式,后执行循环体,而do while循环是先执行循环体后判断表达式,也就是说do while的循环体最少被执行一次,而while循环和for就可能一次都不执行。另外还要注意的是这三种循环都可以用break语句跳出循环,用continue语句结束本次循环,而goto语句与if构成的循环,是不能用break和continue语句进行控制的。

  顺序结构、分支结构和循环结构并不彼此孤立的,在循环中可以有分支、顺序结构,分支中也可以有循环、顺序结构,其实不管哪种结构,均可广义的把它们看成一个语句。在实际编程过程中常将这三种结构相互结合以实现各种算法,设计出相应程序,但是要编程的问题较大,编写出的程序就往往很长、结构重复多,造成可读性差,难以理解,解决这个问题的方法是将C程序设计成模块化结构。

【C语言的由来与发展】相关文章:

C语言的sizeof与strlen10-05

Go与C语言的操作09-21

C语言变量的定义与使用10-05

C语言与JAVA理论区别10-06

C语言数组与指针详解09-25

C语言递归函数的执行与求解09-28

C语言函数调用与参数传递02-01

C语言:ASCII编码与Unicode编码09-21

深入解析C语言中的数值与真假11-21

C语言循环队列的表示与实例详解11-19