C语言的历史

简介: C语言的历史。

C语言的前身是B语言,B语言的英文全称是Basic Combined Programming Language,简称BCPL,它是一种早期的高级语言,1967年由剑桥大学的计算机科学家马丁·理察德在CPL语言上改进而来,下面我们聊一聊C语言的进化过程。
CPL是1963年由英国剑桥大学研发的一种编程语言,实际上CPL语言也不是横空出世,它是在ALGOL 60语言基础上发展而来,ALGOL 60采用了结构化程序设计和模块,并提出了函数、递归、巴克斯范式、结构体等现代程序设计思想,可以说ALGOL 60是程序设计语言发展史上的一个里程碑。
ALGOL 60最大的缺点就是缺乏标准的输入输出能力,使用ALGOL 60编写的程序无法兼容不同的计算机外部设备,导致ALGOL 60最终失败。
ALGOL 60并没有随着它的命运一起终结,英国剑桥大学在ALGOL 60的基础上研发了CPL语言,CPL催生了BCPL语言,而 BCPL 语言又进一步发展成为 C 语言。
美国贝尔实验室在1970年对BCPL语言进行了修改和扩充,将修改和扩充的语言命名为B语言,并使用B语言写了第一个UNIX操作系统。1973年美国贝尔实验室对B语言又进行了改进,改进后的语言被命名为C语言,并使用 C 语言成功重新编写了UNIX内核。使用 C 语言编写内核的 UNIX 版本非常稳定,并且具有良好的可移植性,展现了 C 语言与 UNIX 的完美结合及 C 语言在编写系统软件时得天独厚的优势。
重写后的UNIX系统在一些研究机构、大学、政府机关开始慢慢流行起来,并带动了C语言的发展,1978年《The C Programming Language》出版,又进一步推动了C语言的普及。
从70年代开始,C语言被广泛应用,也衍生了C语言很多不同的版本,为了统一C语言版本,1983年美国国家标准局(英文简称ANSI)开始制定C语言标准,标准于1989底完成,在1990年春季发布,这个标准称为“ANSIC”标准,因为该标准在1989完成,因此也称为“C89”标准。
“ANSIC”标准在1990年被ISO采纳为国际标准,称为“ISOC”标准,同时也被称为“C90”标准,ANSIC(C89)和ISOC(C90)内容基本相同,主要区别在于制定C标准的组织不同而已。
1999年ISO对“C90”标准进行了扩充,增加了语言和标准库功能,增强了数值处理能力,该标准被称为“C99”标准,同时该标准在2000年被ANSI采纳。
当前最新的C语言标准是“C11”标准,由ISO制定并发布。
C 语言是一门工程实用性极强的语言,提供了对操作系统和内存的精准控制,编译后的程序运行效率相比Java、Python等语言要高效的多,对理工科学生来说它也是一门必修课。C语言的特点概况如下;
C语言是一种结构化语言,层次清晰,便于模块化方式组织程序,易于调试和维护。
C语言功能强大,程序运行效率高,计算机操作系统一般都由C语言编写而成,如Windows操作系统、Linux操作系统。
C语言数据结构丰富,能实现各种复杂的数据类型的运算,引入指针可以直接操作硬件,把高级语言的基本结构和语句与低级语言的实用性结合起来。
C语言可移植性强。它适合于多种操作系统编程,如Windows、DOS、UNIX、Linux等等,在一种系统中编写的C程序稍作修改或不修改就能在其它系统运行。
C语言允许直接访问物理地址,能进行位(bit)操作,可以实现汇编语言的大部分功能,直接对硬件进行操作,特别适合于编写嵌入式程序和控制硬件的程序。

相关文章
|
算法 编译器 程序员
初阶C语言——特别详细地介绍函数
初阶C语言——特别详细地介绍函数
118 0
|
1月前
|
存储 编译器 C语言
【C语言】探索结构体基础知识:简明概要
【C语言】探索结构体基础知识:简明概要
|
1月前
|
Unix Java 程序员
1.2选择C语言的理由
C语言在过去的四十年里一直是重要且流行的编程语言,其成功源于用户的高度认可。尽管近年来其他语言崛起,C语言依然以其独特的优势占据一席之地。它结合了计算机科学理论与实践,支持自顶向下的规划、结构化编程和模块化设计,使得程序更易于理解和维护。C语言高效利用计算机资源,具备类似汇编语言的微调控制能力,同时具有出色的可移植性,能在不同系统间轻松迁移。此外,C语言的强大灵活性使其成为UNIX操作系统及其他编译器的基础,满足了程序员对底层硬件访问的需求。然而,使用指针可能导致难以发现的错误,需要程序员格外小心。
24 8
|
3月前
|
存储 数据可视化 C语言
【C语言】C语言-学生籍贯信息记录系统(源码+论文)【独一无二】
【C语言】C语言-学生籍贯信息记录系统(源码+论文)【独一无二】
|
5月前
|
存储 移动开发 C语言
技术心得记录:嵌入式开发中常用到的C语言库函数
技术心得记录:嵌入式开发中常用到的C语言库函数
57 1
|
4月前
|
Rust 算法 编译器
|
6月前
|
自然语言处理 Java 编译器
C语言是什么 C语言历史 编译器怎么运行C语言的代码 怎么学好C语言
C语言是什么 C语言历史 编译器怎么运行C语言的代码 怎么学好C语言
|
存储 Java 编译器
【零基础上手C语言】——初识C语言(1)基础认识C语言内容
基础认识C语言内容,并简单实现一个C语言程序
30903 4
【零基础上手C语言】——初识C语言(1)基础认识C语言内容
|
11月前
|
IDE 编译器 C语言
【C语言入门】C语言的历史 与 编程环境的安装选择与搭建
【C语言入门】C语言的历史 与 编程环境的安装选择与搭建
100 0
|
存储 算法 编译器
C语言重要内容完美总结
C语言重要内容完美总结
130 0