×

将结构化程序转换为XPath查询和战略功能。 (英语) Zbl 1215.68066号

摘要:各种编程语言允许构造结构化程序。这样的程序是为许多不同的数据类型定义的,并且只为一些相关的子类型指定特定的行为。典型的例子是XML查询语言,它允许选择子文档,而无需详细指定中间元素标记。其他示例包括多类型或战略性函数编程以及自适应面向对象编程的语言和库。
在本文中,我们提出了一种代数方法来转换声明性结构化程序,特别是用于策略函数和XML查询。我们制定了一套丰富的代数定律,不仅用于结构化程序的转换,还用于将其转换为结构敏感程序,反之亦然。我们展示了如何使用这些定律的子集来构建有效的重写系统,以实现结构化程序的专门化、泛化和优化。我们在Haskell中提出了这些重写系统的类型安全编码,它本身使用了战略性函数编程技术。我们讨论了这些重写系统在XPath查询优化和模式演化上下文中的查询迁移中的应用。

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
68甲18 函数编程和lambda演算
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
68第05页 数据结构
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Alimarine,A。;Smetsers,S.:优化泛型函数,Lncs 3125,16-31(2004)·Zbl 1106.68336号 ·doi:10.1007/b98756
[2] Alimarine,A。;Smetsers,S.:优化仿制药的改进融合,Lncs 3350,203-218(2005)
[3] Tiago Alves,Paulo F.Silva,Joost Visser,约束感知模式转换,摘自:第九届基于规则编程国际研讨会论文集,2008年·Zbl 1291.68213号
[4] 阿瑟一世,巴尔。;Swierstra,S.Doaitse:键入动态类型,157-166(2002)·Zbl 1322.68035号
[5] 巴克斯,J.W.:编程能从冯·诺依曼风格中解放出来吗?功能风格及其程序代数,ACM通信21,第8期,613-641(1978)·Zbl 0383.68013号 ·doi:10.1145/359576.359579
[6] 理查德·伯德(Richard Bird);De Moor,Oege:编程代数(1997)·Zbl 0867.68042号
[7] Manuel M.T.Chakravarty。;加布里埃尔·凯勒;Simon Peyton Jones:相关类型同义词,241-253(2005)·Zbl 1302.68055号
[8] Che,Dunren;Karl Aberer;Øzsu,Tamer:XML结构化文档数据库中的查询优化,VLDB期刊15,第3期,263-289(2006)
[9] J.切尼。;Hinze,R.:泛型和动力学的轻量级实现,90-104(2002)
[10] 阿尔西诺·库尼亚;何塞·努诺(JoséNuno),奥利维拉(Oliveira);JoostVisser:类型安全两级数据转换,Lncs 4085,284-299(2006)
[11] 阿尔西诺·库尼亚(Alcino Cunha)、雨果·帕切科(Hugo Pacheco),递归类型泛型函数的代数特化,收录于:《数学结构函数编程第二次研讨会论文集》(Proceedings of the 2nd Workshop on Mathematical Structured Functional Programming),2008年·Zbl 1291.68113号
[12] 阿尔西诺·库尼亚;Jorge Sousa Pinto:无点程序转换,Fundamenta informaticae 66,No.4,315-352(2005)·Zbl 1098.68024号
[13] 阿尔西诺·库尼亚;豪尔赫·索萨,平托;Proença,José:无点程序转换框架,Lncs 4015,1-18(2006)·Zbl 1236.68025号
[14] 阿尔西诺·库尼亚;Visser,Joost:耦合软件转换的强类型重写,Entcs 174,第1期,17-34(2007)·Zbl 1277.68042号
[15] 弗拉维奥·费雷拉(Flávio Ferreira)、雨果·帕切科(Hugo Pacheco),《XPTO:一个具有类型软件优化的XPath预处理器》,技术报告,米尼奥大学,2007年。
[16] Jeremy Gibbons:《计算函数程序》,Lncs 2297148-203(2002)·兹比尔1065.68034
[17] Ralf Hinze:通用函数编程的新方法,119-132(2000)·Zbl 1323.68122号
[18] 霍尔德曼斯,S。;Jeuring,J。;Löh,A。;Rodriguez,A.:关于数据类型的通用视图,Lncs 4014209-234(2006)·Zbl 1235.68054号
[19] Patrik Jansson;Johan Jeuring:Polyp——一种多类型编程语言扩展,470-482(1997)
[20] Jones,Mark:《带重载和高阶多态性的函数编程》,Lncs 925,97-136(1995)
[21] 西蒙·佩顿(Simon Peyton)琼斯(Jones);Vytiniotis,Dimitrios;斯蒂芬妮·威里奇;Geoffrey Washburn:小工具的基于简单统一的类型推断,50-61(2006)
[22] Lämmel,Ralf:带术语重写策略的类型化泛型遍历,《逻辑与代数编程杂志》54(2003)·Zbl 1026.68076号 ·doi:10.1016/S1567-8326(02)00028-0
[23] Ralf Lämmel,耦合软件转换,收录于:第一届软件演化转换国际研讨会,2004年11月(扩展摘要)。
[24] 拉尔夫·Lämmel:用类似xpath的组合子刮掉样板,137-142(2007)·Zbl 1295.68064号
[25] 拉尔夫·Lämmel;西蒙·佩顿(Simon Peyton Jones):抛弃样板:泛型编程的实用设计模式,SIGPLAN注意事项38,第3期,26-37(2003)
[26] Ralf Lämmel、Eelco Visser、Joost Visser,《战略规划的本质》,2003年10月。可在网址:http://www.cwi.nl/拉尔夫。
[27] 拉尔夫·Lämmel;埃尔科·维瑟;Joost Visser:战略规划与自适应规划,168-177(2003)·Zbl 1028.68921号
[28] 拉尔夫·莱梅尔;Visser,Joost:通用遍历的类型组合子,Lncs 2257,137-154(2002)
[29] 拉尔夫·Lämmel;Joost Visser:斯特拉芬斯基申请信,Lncs 2562、357-375(2003)·Zbl 1026.68791号
[30] Lieberherr,K。;巴特·沙米尔,B。;Orleans,D.:对象结构的遍历:规范和高效实现,编程语言和系统上的ACM事务26,第2期,370-412(2004)
[31] Lieberher,Karl J.:自适应面向对象软件:具有传播模式的demeter方法,(1996)
[32] JoséPedro Magalháes,Stefan Holdermans,Johan Jeuring,Andres Löh,优化泛型很容易!,技术报告UU-CS-2009-022,乌得勒支大学信息与计算科学系,2009年。
[33] 埃里克·梅杰;马尔滕·福克加;罗斯·帕特森:《香蕉、镜头、信封和带刺铁丝网的功能编程》,Lncs 523(1991)
[34] JoséNuno Oliveira:Bagatelle in C安排VDM独奏,《通用计算机科学杂志》第7期,第8期,754-781(2001)·Zbl 0988.68023号
[35] Reig,F.:基于组合子的泛型程序的泛型证明,《函数编程趋势》,第5卷,17-32(2006)
[36] Tom Schrijvers,Martin Sulzmann,Simon Peyton Jones,Manuel M.T.Chakravarty,朝向Haskell的开放型函数,收录于:第19届函数语言实现与应用国际研讨会论文集,2007年,第233-251页·Zbl 1323.68156号
[37] 亚历山德拉·席尔瓦;Visser,Joost:关系数据库的强类型,25-36(2006)
[38] Visser,Eelco:Stratego:一种基于重写策略的程序转换语言。战略0.5的系统描述,Lncs 2051,357-361(2001)·Zbl 0981.68679号
[39] 埃尔科·维瑟;Benaissa,Zine-El-Abidine:重写的核心语言,Entcs 15(1998)·Zbl 0917.68098号
[40] Visser,Joost:访客组合和穿越控制,270-282(2001)
[41] Joost Visser,类型化源代码表示的泛型遍历,阿姆斯特丹大学博士论文,2003年。
[42] Visser,Joost:模式、文档、查询和约束的耦合转换,Entcs 200,3-23(2008)
[43] M.de Vries,通过部分评估专门化类型诱导值,硕士论文,格罗宁根国立大学,2004年。
[44] W3C,XML路径语言(XPath)2.0,W3C候选推荐,2006年6月8日。
[45] 马尔科姆·华莱士;科林·伦西曼:哈斯克尔和XML:通用组合词还是基于类型的翻译?,148-159 (1999)
[46] Weirich,Stephanie:副本:可派生类型类的库,1-12(2006)
[47] 万维网联盟,文档对象模型,www.w3.org/DOM。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。