C 语言的发展历史

在学习C语言之前,我们先了解一下C语言的历史。

C语言是一门通用的,模块化,程序化的编程语言,被广泛应用于操作系统和应用软件的开发。由于其高效和可移植性,适应于不同硬件和软件平台,深受开发员的青睐。

C语言早期发展

1969 - 1973年在 AT&T 贝尔实验室开始了 C语言的最初研发。根据 C语言的发明者丹尼斯.里奇 (Dennis Ritchie) 说,C 语言最重要的研发时期是在 1972 年。

C语言之所以命名为C,是因为 C语言源自 Ken Thompson 发明的 B语言,而 B语言则源自 BCPL语言。

C语言的诞生是和UNIX操作系统的开发密不可分的,原先的 UNIX操作系统都是用汇编语言写的,1973年 UNIX操作系统的核心用C语言改写,从此以后,C语言成为编写操作系统的主要语言。

K&R C

1978年, Brian Kernighan 和 Dennis Ritchie 出版了一本书,名叫《The C Programming Language》(中文译名为《C程序设计语言》)。这本书被 C语言开发者们称为"K&R",很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为"K&R C"。

1988年 Brian Kernighan 和 Dennis Ritchie 修改此书,出版了《The C Programming Language》第二版,第二版涵盖了ANSI C语言标准。第二版从此成为大学计算机教育有关C语言的经典教材,多年后也没再出现过更好的版本。

ANSI C

1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。

为统一C语言版本,1983年美国国家标准局 (American National Standards Institute,简称ANSI)成立了一个委员会,来制定 C语言标准。1989年 C语言标准被批准,被称为 ANSI X3.159-1989 "Programming Language C"。这个版本的C语言标准通常被称为ANSI C。

目前,几乎所有的开发工具都支持ANSI C标准。是C语言用得最广泛的一个标准版本。

C99

在ANSI C 标准确立之后,C语言的规范在很长一段时间内都没有大的变动。1995年 WG14小组对 C语言进行了一些修改,成为后来的 1999年发布的 ISO/IEC 9899:1999标准,通常被成为 C99。

但是各个公司对 C99的支持所表現出来的兴趣不同。当GCC和其它一些商业编译器支持C99的大部分特性的時候,微软和 Borland却似乎对此不感兴趣。

C 语言对其它语言的影响

很多编程语言都深受 C语言的影响,比如C++(原先是C语言的一个扩展),C#,Java,PHP, Javascript, Perl,LPC 和 UNIX 的C Shell。

### C语言与Go语言发展历程 #### C语言历史背景与发展 C语言自1972年由Dennis Ritchie在贝尔实验室发明以来,在众多领域保持着主导地位[^1]。该语言设计之初是为了实现UNIX操作系统的移植工作,其简洁高效的特性使得它迅速普及开来。随着计算机技术的进步,尽管新的编程范式和技术层出不穷,但C语言凭借其接近硬件的操作能力、丰富的库支持以及庞大的社区贡献一直屹立不倒。 - **特点** - 语法结构相对简单直观; - 提供了强大的指针运算功能; - 可直接访问物理地址进行底层设备操控; - **影响** - 推动了操作系统内核及其他系统级软件的研发进程; #### Go语言的起源及其演变过程 相比之下,Go语言则是在互联网服务需求激增的时代背景下应运而生的一种静态强类型编译型语言。由Google公司于2007年开始研发并于三年后面世不从心。为此,Go旨在构建一套能够有效应对上述问题的新一代工具集: - **设计理念** - 注重效率:减少不必要的抽象层以提高执行效能; - 易学易用:简化语法结构以便快速掌握; - 支持并发:内置轻量级线程模型(goroutines)及通信原语(channels),方便编写异步逻辑; - **改进之处** - 解决了C/C++中存在的诸如内存泄漏等问题; - 引入现代化模块管理系统(modules)改善包管理和依赖解析体验; - 自带垃圾收集器减轻程序员负担; 综上所述,虽然两者诞生年代相隔甚远,但在各自时代里都扮演着举足轻重的角色,并且持续不断地推动着信息技术向前迈进的步伐。 ```go // 示例代码展示了一个简单的Go程序如何启动多个协程(goroutine),体现了Go对并发的支持。 package main import "fmt" func say(s string) { for i := 0; i < 5; i++ { fmt.Println(s) } } func main() { go say("world") // 启动一个新的 goroutine 来运行say函数 say("hello") // 主 goroutine 继续在此处调用say函数 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值