
分类: 电脑/网络 >> 程序设计 >> 其他编程语言
解析:
C语言是国际上广泛流行的,很有发展前途的计算机高级语言它适合作为系统描述语言,即可用来编写系统软件,也可用来编写应用软件
早期的 *** 作系统等系统软件主要是用汇编语言编写的(包括 UNIX *** 作系统在内)由于汇编语言依赖于计算机硬件,程序的可读性和可移植性都比较差为了提高可读性和可移植性,最好改用高级语言,但一般的高级语言难以实现汇编语言的某些功能(汇编语言可以直接对硬件进行 *** 作),例如:对内存地址的 *** 作,位 *** 作等)人们设想能否找到一种既具有一般高级语言特性,又具有低级语言特性的语言,集它们的优点于一身于是,C语言就在这种情况下应运而生了
C语言是在B语言的基础上发展起来的,它的根源可以追溯到ALGOL 60 1960年出现的ALGOL 60是一种面向问题的高级语言,它离硬件比较远,不宜用来编写系统程序1963年英国的剑桥大学推出了CPL(CombinedProgram- ming Language)语言CPL语言在ALGOL 60的基础上接近了硬件一些,但规模比较大,难以实现1967年英国剑桥大学的Matin Richards对 CPL语言作了简化,推出了BCPL(Basic Combined Programming Language)语言1970年美国贝尔实验室的 Ken Thompson以 BCPL语言为基础,又作了进一步简化,设计出了很简单的而且很接近硬件的 B语言( 取 BCPL的第一个字母),并用 B语言写第一个UNIX *** 作系统,在PDP-7上实现 1971年在PDP-11/20上实现了B语言,并写了UNIX *** 作系统但B语言过于简单,功能有限1972年至 1973年间,贝尔实验室的 DMRitchie在B语言的基础上设计出了C语言(取 BCPL的第二个字母)C语言既保持了BCPL和B语言的优点(精练,接近硬件),又克服了它们的缺点(过于简单,数据无类型等) 最初的C语言只是为描述和实现UNIX *** 作系统提供一种工作语言而设计的1973年,KThom- pson和DMritchie两人合作把UNIX的90%以上用 C改写(UNIX第5版原来的 UNIX *** 作系统是1969年由美国的贝尔实验室的 KThompson和DMRitchie开发成功的,是用汇编语言写的)
后来,C语言多次作了改进,但主要还是在贝尔实验室内部使用直到1- 975年UNIX第6版公布后 ,C语言的突出优点才引起人们普遍注意1977年出现了不依赖于具体机器的C语言编译文本《可移植C语言编译程序》,使C移植到其它机器时所做的工作大大简化了,这也推动了UNIX *** 作系统迅速地在各种机器上实现例如,VAX,AT&T等计算机系统都相继开发了UNIX随着 UNIX的日益广泛使用,C语言也迅速得到推广C语言和UNIX可以说是一对孪生兄弟,在发展过程中相辅相成1978年以后,C语言已先后移植到大,中,小,微型机上,已独立于UNIX和PDP了现在C语言已风靡全世界,成为世界上应用最广泛的几种计算机语言之一
以1978年发表的UNIX第7版中的C编译程序为基础,Brian WKernighan和 Dennis MRitchie(合称K&R)合著了影响深远了名著《The C Programming Lan- guage》,这本书中介绍的C语言成为后来广泛使用的C语言版本的基础,它被称为标准C1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C的发展和扩充 ,制定了新的标准,称为ANSI CANSI C比原来的标准C有了很大的发展K&R在1988年修改了他们的经典著作《The C Progra- mming Language》 ,按照ANSI C的标准重新写了该书1987年,ANSI C又公布了新标准--87 ANSI C 目前流行的C编译系统都是以它为基础的
=========
上面说的87ANSI C已经老了,
现在最新的标准是C98
词法分析阶段:读入源程序,对构成源程序的字符流进行扫描和分解,识别出单词,
语法分析阶段:机器通过词法分析,将单词序列分解成不同的语法短语,确定整个输入串能够构成语法上正确的程序。
语义分析阶段:检查源程序上有没有语义错误,在代码生成阶段收集类型信息
中间代码生成阶段:在进行了上述的语法分析和语义分析阶段的工作之后,有的编译程序将源程序变成一种内部表示形式
代码优化:这一阶段的任务是对前一阶段产生的中间代码进行变换或进行改造,目的是使生成的目标代码更为高效,即省时间和省空间
目标代码生成:这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编指令
目前最流行的C语言编译器有以下几种:
1、GNU Compiler Collection 或称 GCC
GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU 开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是 GNU计划的关键部分。
GCC原本作为GNU *** 作系统的官方编译器,现已被大多数类Unix *** 作系统(如Linux、BSD、Mac OS X等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的著名例子,由自由软件基金会以GPL协议发布。
2、Microsoft C 或称 MS C
Microsoft C 是c语言的一种IDE(集成开发环境),常见的还有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 31 for DOS,Watcom C++ 110 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 31,High C,Turbo C等等
3、Borland Turbo C 或称 Turbo C
Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 这些软件很受用户欢迎。
扩展资料:
C编译的整个过程很复杂,大致可以分为以下四个阶段:
1、预处理阶段在该阶段主要完成对源代码的预处理工作,主要包括对宏定义指令,头文件包含指令,预定义指令和特殊字符的处理,如对宏定义的替换以及文件头中所包含的文件中预定义代码的替换等,总之这步主要完成一些替换工作,输出是同源文件含义相同但内容不同的文件。
2、编译、优化阶段编译就是将第一阶段处理得到的文件通过词法语法分析等转换为汇编语言。优化包括对中间代码的优化,如删除公共表达式,循环优化等;和对目标代码的生成进行的优化,如如何充分利用机器的寄存器存放有关变量的值,以减少内存访问次数。
3、汇编阶段将汇编语言翻译成机器指令。
4、链接阶段链接阶段的主要工作是将有关的目标文件连接起来,即将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的目标文件成为一个能够被 *** 作系统装入执行的统一整体。
参考资料来源:百度百科-gcc (GNU编译器套件)
参考资料来源:百度百科-Microsoft C
参考资料来源:百度百科-Turbo C
1、编辑:编写代码,制作C语言的源文件。
2、编译:是由编译程序将C语言源文件转换成二进制中间文件,对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。
3、链接:将编译中生成的中间文件组合成二进制可执知行文件,这一步会对文件之间的关联做检查,如果出错,将不会生成可执行文件,也就无法执行。
4、执行:运行可执行文件,这一步道是编写代码的最终目的。
扩展资料:
DOS命令通常分为三类:内部命令、外部命令和批处理命令。
1、内部命令:
其包含在命令解释程序COMMAND.COM中,一旦启动DOS,这些命令就被调入内存,只要在DOS系统提示符下输入这些命令,就可立即执行。
2、外部命令:
其以文件的形式存储在系统盘上,所带扩展名为COM和EXE。DOS启动时,它们并没有被调入内存,执行前必须从系统盘读进内存。因此输入外部命令时,要了解该命令是否在当前盘上,不然DOS无法找到它们。
3、批处理命令:
实际上是个文件,该文件包含多条命令,当用户键入批处理文件名时,DOS将顺序执行其中的各条命令。注意,批处理命令必须用“.BAT”作为扩展名。
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则就会显得十分重要。
参考资料:
百度百科-运行命令
百度百科-C语言
以上就是关于C语言编程是什么全部的内容,包括:C语言编程是什么、C语言源程序的编译过程包括哪三个阶段、常见的C语言编译器是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)