编辑部
广告部
出版部     发行部
函授学校
 
读者俱乐部
论 坛
用户名:密 码:
首页 > 软件世界 
对话STL之父Alex Stepanov
 电脑报  (2005-03-03 14:08:27)

    Alex:1976年,又要说到原苏联了。我因为吃生鱼片严重食物中毒而住院,在精神恍惚中,我忽然意识到并发的加法计算能力是基于加法是结合性的[译 注:比如说a+b+c+d=(a+b)+(c+d)]。因此,STL可以说是细菌传染的结果。同时,我意识到并发的减法运算是和半群结构类型有关联的,这 就是最基本的重点:算法是定义于代数结构基础之上的。我又花了一些年头,意识到必须在正规公理上加入复杂性必要条件以扩展结构的概念,接着又花了15年之 久才完成全面的架构(我直到现在都不能确定我是否成功地让我朋友小圈子之外的任何人理解了这一点)。我相信迭代器理论是计算科学的中心,就像环或 Banach区间理论是数学的中心一样。
    每次当我找到一个算法时,我都要努力去寻求它所定义的结构基础。我想做的就是泛化地描述算法,并乐此不疲。我可以花一个月时间去精确地描述一个众所周知的 算法的泛化表示。迄今为止,在向人们解释我这种行为的重要性方面,我是异乎寻常的失败。然而,不知何故,这种行为的结果─STL却是如此成功。
    关于STL还有很多故事:STL如何成为C++标准的呢?Alex先生有下面的表述,表述中也有他对C++之父Bjarne先生的精彩描述。
    问:有一件事情我一直都很惊奇——C++标准委员会那么快就采纳了STL?我的意思是,这些委员会成员可都是以谨慎和保守而出名的。这一点,你怎么解释?
    Alex:Bjarne的支持是至关重要的。如果说Bjarne想要什么东西的话,那就是他真的想把STL弄到标准里,他办到了。他像骡子一样固执。甚至 逼着我去改STL——我从来都不会为第二个人这么做——我也是个顽固分子。但他是我所认识的最有主见的人,他花了一些时间去理解STL是干啥的,当他理解 之后,他决定使它成功地被大家接受。
    他对STL的贡献还在于他支持“不止一种编程方法是‘合理的’”的观点——这对立于十来年认同“唯一”方法的无休止的争执和夸大——而坚持把弹性、效率、 重载、类型安全结合在模板里以至于使STL成为可能。我很乐意明白地声明Bjarne是我这一代人里卓越的语言设计家。
    问:您是由于什么原因开发了STL?开发的过程是什么样子的?它对您的生活和研究有什么影响吗?
    Alex:STL的开发源于我多年对程序灵活性和参数化探索的结果。我对此仍不太满意:因为C++语言上的一些缺陷,使得我不能完全表达我要表达的意思。 STL应当做将来要设计的库的草稿。我不知道在我有生之年是否能看得到,但我坚信最终会有一个关于算法和数据结构的标准架构,说不定作为读者的你就是这一 发明人呢!
关键字:
欢迎投稿|关于我们|加入我们|设定CPCW为首页
Copyright(C)2004 Cpcw.com,电脑报版权所有
渝ICP证B2-20030003号如有意见请与我们联系信息部制作