c,c++语言历史

linux下的c编程需要了解的一些东东:



C语言由B语言在贝尔实验室发展而来(由此可以推断以后很可能会有D语言E语言)
发明人: 
丹尼斯·里奇(叫丹尼斯) 1941-2011,美国人
肯·汤普逊(叫汤姆逊) 1943,美国人

注意,他们两位还是unix的发明人


c语言的版本
1.C89(ANSI C,美国国家标准协会,美国的)

2.C90(ISO C,国际标准化组织,国际的)

3.C99(ISO C)
4.C11(ISO C)

标准见
http://www.open-std.org/jtc1/sc22/wg14/www/standards
目前主流编译器都支持C89.(gcc 4.7以上支持c11)


c库函数和系统调用函数接口
posix, iso-c ,glibc ,system call的关系

1.linux下实现的system call接口符合posix标准,所以linux系统调用也可以说成是posix标准的系统调用
2.posix不仅规范了系统调用的接口,还有其他规范,比如线程规范即posix线程等
3.iso c库在linux下的具体实现库是glibc,glibc有可能会用到系统调用函数
4.posix的历史介绍 
http://www.ibm.com/developerworks/cn/linux/l-lsb-intr/


linux下的c++编程需要了解的一些东东:


c++在贝尔实验室发明
发明人: 比雅尼·斯特勞斯特魯普,1950,丹麦人
发明人主页: http://www.stroustrup.com/


语言的版本
1.C++98 (ISO)-已经支持模板,同时也引入Stepanov写的的STL
2.C++03(ISO)
   C++TR1
3.C++11(ISO)-含线程库
4.C++14(ISO)

目前主流编译器都支持C++98.(gcc 4.8支持c++11的大部分特性)


C++与STL的关系

STL Standard Template Library 标准模板库, 一个泛型化的数据结构和算法库
发明人:Alexander Stepanov,1950年,俄罗斯人,也曾在贝尔实验室工作
古时候,STL是用Ada语言实现的,在C++在增加了模板特性之后, Stepanov将STL用C++重新改写,这才成为C++标准的一部分。

从C++98开始,STL已经是C++标准函数库中的一个子集,这个庞大的子集占据了整个库的大约80%的分量。
c,c++语言历史_第1张图片

STL版本
1.HP STL是所有其它STL实现版本的根源。它是STL之父Alexander Stepanov在惠普的Palo Alto实验室工作时,和Meng Lee共同完成的,是第一个STL的实现版本(参见1.2节)。
2.Rouge Wave 也是HP STL的一个继承版本,该版本被Borland C++ Builder所采用,
STLport最初源于俄国人Boris Fomitchev的一个开发项目,主要用于将SGI STL的基本代码移植到其他诸如C++Builder或者是Visual C++这样的主流编译器上。因为SGI STL属于开放源码,所以STLport才有权这样做。目前STLport的最新版本是4.5。http://www.stlport.org 
3.STLport已经被C/C++技术委员会接受成为工业标准,且在许多平台上都支持。根据测试STLport的效率比VC中的STL要快。比Rouge Wave STL更符合标准,也更容易移植。Borland C++ Builder已经在其6.0版中加入了对STLport的支持,它使用的STLport就是4.5版的,C++ Builder 6.0同时还提供了STLport的使用说明。你可以在C++ Builder的Include/Stlport子目录下找到所有头文件(比如:C:/Program Files/Borland/Cbuilder6/Include/Stlport)。
4.SGI STL是由Silicon Graphics Computer System, Inc公司实现的,其设计者和编写者包括Alexander Stepanov和Matt Austern,同样它也是HP STL的一个继承版本。 SGI STL被GCC所采用,SGI STL在linux平台上的性能相当出色,http://www.sgi.com
参考
http://blog.csdn.net/beick/article/category/51691


C++并不是一种纯面向对象的程序设计语言,它的绝妙之处,就在于既满足了OOP,又成全了GP。
所以学习C++应该精通:
1.c库函数
2.OOP面向对象编程的理念
3.GP泛型编程的理念和对应的实例STL


其他C++库,如boost


STL和STD的关系
C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。即
STL的所有函数或数据结构,比如std::vector
C++的其他输入输出流,比如std::cout,std::string

你可能感兴趣的:(c,c++语言历史)