×

运行时概念的动态算法选择。 (英语) 兹比尔1197.68036

概要:泛型编程的一个主要优点是它支持生成干净分离的模块。特别是,编写通用算法是为了在不需要修改的情况下处理各种类型。运行时概念习语通过允许未经修改的具体类型以运行时多态方式表现来扩展此支持。在本文中,我们描述了C++标准模板库(STL)领域中运行时概念习惯用法的一种实现。我们用一个算法库来补充运行时概念习惯用法,该算法库考虑了类型和概念信息,以便在选择算法实现时最大限度地提高性能。我们给出了两种实现,一种是在ISO C++中,另一种是使用实验性语言扩展。我们使用我们的实现来描述和测量几种STL算法的运行时多态模拟的性能。测试证明了不同编译时间和运行时算法选择的效果。

MSC公司:

68甲15 编程语言理论
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Boost C++库,http://www.boost.org/2008年7月
[2] 亚伯拉罕,D。;Gurtovoy,A.:C++模板元编程:来自boost和beyond的概念、工具和技术(C++深度系列),(2004)
[3] Adobe System Inc.,Adobe源库。http://opensource.adobe.com, 2005
[4] Alexandrescu,A.:现代C++设计:通用编程和应用的设计模式,AW C++深度系列(2001)
[5] P.An、A.Jula、S.Rus、S.Saunders、T.Smith、G.Tanase、N.Thomas、N.Amato、L.Rauchwerger、Stapl:标准模板自适应并行C++库,收录于:LCPC'01,肯塔基州坎伯兰福尔斯·Zbl 1023.68700号
[6] Austern,M.H.:通用编程和STL:使用和扩展C++标准模板库,(1998)
[7] P.Becker,工作草案,编程语言C++标准,技术代表N25212008年2月
[8] T.Becker,C++中的类型擦除:面向对象编程和泛型编程之间的粘合剂,载于:K.Davis,J.Striegnitz(编辑),Multiparadigm programming 2007:ECOOP'072007 MPOOL研讨会论文集
[9] 贝蒂尼,L。;卡佩基,S。;Venneri,B.:C++中的双重调度,《软件——实践与经验》36,第6期,581-613(2006)
[10] L.Bourdev,J.Järvi,用最少的代码膨胀在通用编程中高效运行时调度,收录于:OOPSLA’06图书馆中心软件设计研讨会,俄勒冈州波特兰,2006年
[11] 克莱兰德,C。;施密特,D。;Harrison,T.:外部多态性——透明扩展具体数据类型的对象结构模式,程序设计的模式语言(1997)
[12] Dehnert,J.C。;Stepanov,A.A.:泛型编程基础(2000)
[13] 爱迪生设计集团,C++前端。http://www.edg.com(英文)/2008年7月
[14] 伽玛,E。;赫尔姆·R。;约翰逊,R。;Vlissides,J.:设计模式:可重用面向对象软件的元素,(1995)·Zbl 0887.68013号
[15] 格雷戈,D。;Järvi,J。;Siek,J。;斯特劳斯特鲁普,B。;Reis,G.D.(Reis,G.D.)。;Lumsdaine,A.:概念:C++中泛型编程的语言支持,(2006)
[16] ISO/IEC 14882国际标准,编程语言:C++,美国国家标准协会,1998年
[17] Järvi,J。;格雷戈,D。;Willcock,J。;Lumsdaine,A。;Siek,J.:泛型编程中的算法专门化:C++中约束泛型的挑战,(2006)
[18] Järvi,J。;马库斯,文学硕士。;Smith,J.N.:使用C++概念的库组合和改编,(2007)
[19] M.Marcus,J.Järvi,S.Parent,《运行时多态泛型编程——混合概念C++中的对象和概念》,收录于:K.Davis,J.Striegnitz(编辑),《2007年多参数编程:2007年ECOOL研讨会论文集》
[20] S.Parent,Beyond objects:了解我们编写的软件,在C++连接上的演示,2005年11月
[21] S.Parent,基于概念的运行时多态性,在BoostCon上的演示,2007年5月
[22] Pirkelbauer,P。;父母,S。;马库斯,M。;Stroustrup,B.:C++标准模板库的运行时概念,(2008)·Zbl 1197.68036号
[23] Pirkelbauer,P。;Solodkyy,Y。;Stroustrup,B.:C++的开放多方法,(2007)·兹比尔1211.68054
[24] 沙利特:《迪伦参考手册》(1996年)·Zbl 0900.68121号
[25] Shopyrin,D.:使用递归延迟调度在C++中实现多方法,IEEE软件23,第3期,62-73(2006)
[26] Smaragdakis,Y。;Batory,D.S.:C++中基于Mixin的编程,(2001)·Zbl 1023.68842号
[27] J.Smith,向C++添加多方法的提案草案。,技术代表N14632003
[28] Stroustrup,B.:C++的设计和发展,(1994)
[29] Stroustrup,B.:在现实世界中发展一种语言:C++1991–2006,(2007)
[30] 斯特劳斯特鲁普,B。;Dos Reis,G.:支持高性能计算的SELL,Lncs 4339(2005)
[31] Veldhuizen,T.L.:闪电战中的阵列,(1998)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。