1. C语言诞生之前
在计算机诞生初期,人们使用机器语言或汇编语言(低级语言)编写程序,难学、难记、难用、难修改。
1954年出现了第一种高级语言,它是用于科学计算FORTRAN语言。随着计算机的推广应用,先后出现了多种计算机高级语言,如BASIC、ALGOL、Pascal、COLBOL、ADA、C等。
2. C语言的诞生
C语言是1972年由美国贝尔实验室的D.M.Ritchie研制成功的,它功能丰富、表达能力强、使用灵活、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,特别适合写系统软件,大多数系统软件和应用程序都是由C语言编写的。
3. 基于过程的C语言
C语言是结构化和模块化的语言,它是基于过程的。C程序的设计者必须细致地设计程序中的每一个细节,准确地考虑到程序运行时每一时刻发生的事情,例如各个变量值是如何变化的,什么时候应该进行哪些输入,在屏幕上应该输出什么等。这对程序员的要求是比较高的,当问题比较复杂、程序规模比较大时,程序员往往感觉力不从心,由此引发了第二次软件危机。
4. C++的诞生
为了解决软件设计危机,20世纪80年代提出了面向对象的程序设计方法,C++是由贝尔实验室的Bjarne Stroustrup博士及其同事于1980年开始在C语言的基础上进行开发并取得成功的,1985年开始在AT&T以外流行,C++保留了C语言的所有优点,并在原来基础上对C语言的功能做了不少扩充,增加了面向对象的机制。为了强调它是C语言的增强版,使用了C语言中的自增运算符“++”,故取名C++。
5. C++的泛型编程
泛型编程最初诞生于C++中,由Alexander Stepanov和David Musser创立。目的是为了实现C++的STL(标准模板库)。其语言支持机制就是模板(Templates)。模板的精神其实很简单:参数化类型。换句话说,把一个原本特定于某个类型的算法或类当中的类型信息抽掉,抽出来做成模板参数T。泛型编程让你编写完全一般化并可重复使用的算法,其效率与针对某特定数据类型而设计的算法相同。泛型即是指具有在多种数据类型上皆可操作的含义,与模板有些相似。