关于计算编程语言的库我想说点,请各位前辈指正

wenluderen 2015-01-26 11:43:08
前言,最近看了一些资料,感觉需要说写什么。

计算机语言的种类是很多的,200多种吧。 但是常用的也就不到10种。

为了可以加速编程,为了可以承前启后,为了可以代码的复用,为了标准化。。。 一些业内大神做了一些事情。

这些事情是概括来说就是定义标准。

太底层的标准,比如神马X86 神马RAM 什么MIPS 这些和硬件很靠近的标准我就不扯了,也扯不出什么所以然。。

就说写里大部分计算编程从业人员贴近的标准。

第一个标准:C语言标准库。
C语言和C语言标准库是两个概念。(左侧这句话 我吃不准。 也许C语言和C标准库可以划等号)
或说当年只有汇编语言的时候,几位大神较为懒惰的大神横空出世。定义了C了语言,并且使用C语言做了一个库,
这个库叫C标准库。 不过这些大神并没有告知如何用汇编去实现这些C标准库, 他们这是定义了这些库里面的函数
是做什么的, 参数有几个 ,这些参数是什么类型,函数的返回值是什么。。 至于怎能实现 是编译器的事情。
每个编译器的实现的方式都有些区别。估计大家用的最多的是微软的VC6.0之类的玩意。

几个名词之间的关系(此处请坛内各位大神指正)
C运行时库是老妈, 有2个儿子,其实大儿子是 C标准库, 二儿子是C第三方库。


第二个标准:C++标准库
虽然C很强大牛X的,但是总是有些难度的。这时候新的大神出现了,这些大神 升级了C,然后去了个名字叫C++,
为了可以形象比较C和C++ ,此处我借用 知乎上面的一张图:


C++对C进行了语法上面的扩充,使用这些语法做的一些常用的或者说叫通用的数据和函数的集合叫C++标准库。
至于C++是否有C++运行时库? 是否有C++第三方库? 这些概念我还是不清晰。请坛内前辈指导一下。谢谢

C和C++ 之间的一些纠缠:
C出现的时间很早,那个时候的大神虽然很牛X,但是也是局限性的。
这种局限先表现在,开始的时候C不支持多线程编程。在C运行时库里面有很多全局变量(比如errno)和静态变量。
这些东西会在多线程编程时候产品内存冲突,你把我内存空间抢了,我把你的内存空间偷了。反正一堆问题了。
这个时候呢 一个叫VC++编译器出来解决这个问题,这个编译器虽然叫VC++但是呢他也提供C运行时库。
只不过呢他提供两种C运行时库,第一种和以前的差不多了,第二种就牛X了,他将多线程里面的一些数据使用
同步技术加以保护,这样就不会有内存冲突了,就可以安心使用多线程编程了。
至于这个怎么保护估计只能去问微软的那帮大神了。
此处插入一张图片,是我们CSDN上面一位wqvbjhc的大神的总结。



第三个标准:API库
什么叫API库呢? 我是这么 操作系统这个玩意说白了就是驱动程序的大杂烩。这个大杂烩对硬件做一些最底层的控制和抽象。
然后把硬件底层和编程的人隔离开,中间通过API来沟通。
所以说啊 这个API就是一个链接硬件和操作员人的接口函数,后来呢。。发现这个理念不错。。。不同软件之间的沟通函数也叫API了。不过最早的时候 API还是只是操作系统自己的事情。
既然API是基于操作系统这个概念的,那么不同的操作系统的API应该是不一样的, 微软有微软的API,苹果有苹果的API,
如果哪天你闲着没事自己开发一套操作系统,也可以是你的API。
好了问题来了?API是如何实现。。 我个人认为API内部应该是通过C 和汇编实现的,这样效率才高。大家说呢?

第四个标准:框架库。
虽然有了语言的标准库,就好比建房子的时候有了 砖头 水泥 钢筋之类的原材料。
但是人总是趋于惰性的,这部有个大神出现了,发明框架这个概念。那什么叫框架呢?
接着说盖房子吧。
大家盖房子,不外乎 一层 两层 或是多层, 要不就是客厅 ,厨房, 卧室之类的。
所以说啊 大体差不多,框架都很类似。 以此类比到编程上面也是一样的。
MFC ,QT 就是这些框架。这些框架会对砖头(就是一些函数)做一些包装(当然了专业装13术语叫封装)
就成了一些新的东西,这些东西的集合就叫框架库。

第五个标准:控件库,算法库等。
基于人性的无限惰性里面,人类对于爽的追求总是没有终止的。随意已经有了很多库了,使用这些库做很轻松的做很多事情。
但是呢?感觉还是不够爽,比如盖房子的时候,我厨房里需要得到柜子,以前都是一块砖头一块砖头垒出来,现在呢?
不用了 直接买个柜子就拉倒了。简单实用。。 这个过程类比到编程上面就是一些控件之类的玩意,慧都上面卖的大都是这种玩意。简单好用快速 就是出毛爷爷的时候有点心疼。
算法库是啥呢? 举个例子 HALCON就是做图像处理的库。

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。


后记: 后面的那些标准 或多或少都使用了C的标准或是C++的标准。
现在就是感觉很多标准车在一起很困惑的,神马string , 神马 char ,神马 cstring, 神马
CSring。大小写 不一样 竟然还有这些多细节。。晕死。。
不知道坛子里面的各位老大是否如何理清这些库, 看到一个函数或是数据类型 怎能快速判断他所属于的库。

谢谢

...全文
208 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cffa 2015-03-18
  • 打赏
  • 举报
回复
任何事物都是分层级的,原始复杂的事物层级越多。 这似乎有些哲理 ,其实就是这个样子的。 社会分工细化,一台PC从硬件到软件 个干个的,彼此之间通过一个通道连接在一起。 你拿起一个鼠标 除了两个按键 一个轮子 其他的我们不需要知道。 封装 面向对象 最终我们打造一个虚拟的世界。。。 这让我反思我们是不是存在一个虚拟的世界里面。 谁知道呢? 如果不懂的 类比和推论 恐怕永远脱离不了虚拟的世界。 因为接口就那么多。 超验骇客 似乎说的就这个事情,所以编程是伟大的行业。我们在缔造一个世界。
wenluderen 2015-01-26
  • 打赏
  • 举报
回复
关于C++的库 我扩充的资料: 1、C++各大有名库的介绍——C++标准库 2、C++各大有名库的介绍——准标准库Boost 3、C++各大有名库的介绍——GUI 4、C++各大有名库的介绍——网络通信 5、C++各大有名库的介绍——XML 6、C++各大有名库的介绍——科学计算 7、C++各大有名库的介绍——游戏开发 8、C++各大有名库的介绍——线程 9、C++各大有名库的介绍——序列化 10、C++各大有名库的介绍——字符串 11、C++各大有名库的介绍——综合 12、C++各大有名库的介绍——其他库 13、C++名人的网站 14、C++开源跨平台类库及在VC++.net中应用的配置 15、C++资源之不完全导引 地址:http://blog.csdn.net/oanqoanq/article/details/7169291

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧