×

程序转换系统中重写策略的综述。 (英语) Zbl 1268.68105号

Gramlich,Bernhard(编辑)等人,WRS 2001。2001年5月26日在荷兰乌得勒支举行的第一次改写和编程中的削减战略国际研讨会。车间后程序。阿姆斯特丹:爱思唯尔。理论计算机科学电子笔记57,109-143(2001)。
摘要:程序转换被广泛应用于编译器构造、优化、程序合成、重构、软件更新和逆向工程等领域。复杂的程序转换是通过对程序进行多次连续修改来实现的。转换规则定义基本修改。转换策略是一种算法,用于在由一组规则诱导的重写关系中选择路径。本文调查了程序转换系统中对策略定义的支持。在讨论了各种程序转换和程序表示中的选择之后,讨论了策略系统的基本元素,并考虑了策略语言设计中的选择。然后分析了现有语言中提供的几种策略系统。
关于整个系列,请参见[兹比尔1266.68016].

MSC公司:

第68季度第42季度 语法和重写系统
68纳米30 软件工程的数学方面(规范、验证、度量、需求等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Aho,A。;Sethi,R。;Ullman,J.,《编译器:原理、技术和工具》(1986),艾迪森·卫斯理:艾迪森·卫斯理·雷丁,马萨诸塞州,2.1.1
[2] Appel,A.W.,《ML中的现代编译器实现》(1998),剑桥大学出版社,2.1.1,2.2.2,3.2·Zbl 0888.68035号
[3] P.Borovanskí、H.Cirstea、H.Dubois、C.Kirchner、H.Kirchner,P.-E.Moreau、C.Ringeissen和M.Vittek。ELAN:用户手册; P.Borovanský、H.Cirstea、H.Dubois、C.Kirchner、H.Kirchner、P.-E.Moreau、C.Ringeisesen和M.Vittek。ELAN:用户手册
[4] P.Borovanskí、C.Kirchner和H.Kirchner。通过重写控制重写。编辑J.Meseguer,第一届重写逻辑及其应用国际研讨会论文集第4卷理论计算机科学电子笔记; P.Borovanskí、C.Kirchner和H.Kirchner。通过重写控制重写。在编辑J.Meseguer中,第一届重写逻辑及其应用国际研讨会论文集第4卷理论计算机科学电子笔记·Zbl 0912.68088号
[5] P.博罗万斯克(P.Borovansk)、C.基什内尔(C.Kirchner)、H.基什内尔·莫罗(P.-E.Moreau)和M.维特克(M.Vittek)。Elan:基于计算系统的逻辑框架。编辑J.Meseguer,理论计算机科学电子笔记第4卷。; P.博罗万斯克(P.Borovansk)、C.基什内尔(C.Kirchner)、H.基什内尔·莫罗(P.-E.Moreau)和M.维特克(M.Vittek)。Elan:基于计算系统的逻辑框架。编辑J.Meseguer,理论计算机科学电子笔记第4卷。·Zbl 0912.68091号
[6] Boyle,J.M.,《抽象编程和程序转换——重用程序的一种方法》(Biggerstaff,T.J.;Perlis,A.J.,《软件可重用性》,第1卷(1989年),ACM出版社),361-413,5.8
[7] Boyle,J.M。;哈默·T·J。;Winter,V.L.,《TAMPR程序转换系统:简化数值软件的开发》(The TAMPR program transformation system:Simplifying The development of numerical software)(Arge,E.;Bruaset,A.M.;Langtangen,H.P.,《科学计算的现代软件工具》(1997),Birkhäuser),353-372,5.8·Zbl 1114.68375号
[8] 范登·布兰德,M.G.J。;德容,H。;Klint,P。;Olivier,P.,《高效注释术语,软件,实践与经验》,30,3,259-291(2000),3.2,3.4
[9] M.G.J.van den Brand、P.Klint和J.Vinju。用遍历函数重写术语。技术报告SEN-R0121,Centrum voor Wiskunde en Informatica,2001年。5.6; M.G.J.van den Brand、P.Klint和J.Vinju。用遍历函数重写术语。技术报告SEN-R0121,Centrum voor Wiskunde en Informatica,2001年。5.6 ·Zbl 1270.68143号
[10] 范登·布兰德,M.G.J。;塞林克,M.P.A。;Verhoef,C.,从上下文无关语法生成软件翻新工厂的组件,计算机编程科学,36209-266(2000),5.6
[11] 范登·布兰德,M.G.J。;Visser,E.,《无上下文语言格式化程序的生成》,《ACM软件工程与方法汇刊》,5,1,1-41(1996年1月),2.1.1,5.6
[12] Chikofski,E。;Cross,J.,逆向工程和设计恢复:分类法,IEEE软件(1990),2.1.3
[13] M.Clavel、S.Eker、P.Lincoln和J.Meseguer。莫德原则。编辑J.Meseguer,第一届重写逻辑及其应用国际研讨会论文集第4卷理论计算机科学电子笔记; M.Clavel、S.Eker、P.Lincoln和J.Meseguer。莫德原则。编辑J.Meseguer,第一届重写逻辑及其应用国际研讨会论文集第4卷理论计算机科学电子笔记·Zbl 0912.68095号
[14] M.Clavel和J.Meseguer。重写逻辑中的反思和策略。编辑J.Meseguer,理论计算机科学电子笔记第4卷。; M.Clavel和J.Meseguer。重写逻辑中的反思和策略。编辑J.Meseguer,理论计算机科学电子笔记第4卷。·Zbl 0917.68107号
[15] M.G.克拉维尔。在普通逻辑和重写逻辑中的反思及其在莫德语言中的应用; M.G.克拉维尔。在普通逻辑和重写逻辑中的反思及其在莫德语言中的应用
[16] C.Collberg、C.Thomborson和D.Low。制造廉价、弹性和隐形的不透明结构。ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL 98); C.Collberg、C.Thomborson和D.Low。制造廉价、弹性和隐形的不透明结构。ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL 98)
[17] Czarnecki,K。;艾森内克,U.W.,意图编程,生成编程。方法、工具和应用,第11章(2000年),Addison-Wesley,3、3.2、5.2
[18] 北卡罗来纳州德肖维茨。;Jouannaud,J.-P.,《重写系统》(van Leeuwen,J.,《理论计算机科学手册》,B卷,第6章(1990),爱思唯尔出版社),243-320,4.2,5.5·Zbl 0900.68283号
[19] A.van Deursen、J.Heering和P.Klint,编辑。语言原型。一种代数规格说明方法第5卷AMAST计算系列; A.van Deursen、J.Heering和P.Klint,编辑。语言原型。一种代数规格说明方法第5卷AMAST计算系列·Zbl 0962.68114号
[20] van Deursen,A。;Klint,P。;Tip,F.,原点追踪,符号计算杂志,15,5-6,523-546(1993),3.1,6.3·Zbl 0804.68088号
[21] C.Elliott、S.Finne和O.de Moor。编译嵌入式语言。程序生成的语义、应用和实现(SAIG'00); C.Elliott、S.Finne和O.de Moor。编译嵌入式语言。程序生成的语义、应用和实现(SAIG'00)·Zbl 1044.68545号
[22] A.毛毡。实现高阶项重写的逻辑编程方法。在L.-H.埃里克森、L.Hallnäs和P.Schroeder-Heister的编辑中,逻辑编程扩展(ELP’91)第596卷人工智能课堂讲稿; A.毛毡。实现高阶项重写的逻辑编程方法。在L.-H.埃里克森、L.Hallnäs和P.Schroeder-Heister的编辑中,逻辑编程扩展(ELP’91)第596卷人工智能课堂讲稿
[23] 福克金,W.J。;Kamperman,J.F.T。;Walters,H.R.,《急切机器上的懒惰重写》,《ACM编程语言和系统事务》,22,1,45-86(2000年1月),5.7.3,12
[24] Fowler,M.,《重构:改进现有程序的设计》(1999),AddisonWesley,2.2.3
[25] 弗雷泽,C.W。;Hanson,D.R。;Proebsting,T.A.,《设计一个简单、高效的代码生成器》,《ACM编程语言与系统快报》,第1、3、213-226页(1992年9月),第5.4页
[26] 弗雷泽,C.W。;亨利·R·R。;Proebsting,T.A.,BURG-快速优化指令选择和树解析,ACM SIGPLAN通知,27,4,68-76(1992年4月),5.4
[27] J.A.Goguen和T.W.等人,《OBJ简介》,技术报告SRI-CSL92-03,SRI国际计算机科学实验室,1992年3月。5.5; J.A.Goguen和T.W.等人,《OBJ简介》,技术报告SRI-CSL92-03,SRI国际计算机科学实验室,1992年3月。5.5
[28] Kienle,T.E.H。;Czeranski,J.,交换格式参考书目,(标准交换格式研讨会(WoSEF)(2000年6月),利默里克:利默里克爱尔兰),2-9,3.4
[29] 实现高阶代数规范。编辑D.Miller,λProlog编程语言研讨会会议记录网址:http://www.cwi.nl/1月/总部。WLP.ps;实现高阶代数规范。编辑D.Miller,λProlog编程语言研讨会会议记录网址:http://www.cwi.nl/1月/总部。WLP.ps(WLP.ps)
[30] Huet,G。;Lang,B.,用二阶模式表示的程序转换的证明和应用,《信息学报》,11,31-55(1978),3.3·Zbl 0389.68008号
[31] P.Johann和E.Visser。将逻辑和控制与局部变换融合:一个优化示例。编辑B.Gramlich和S.Lucas,重写和编程中的简化策略研讨会(WRS’01)第57卷理论计算机科学电子笔记; P.Johann和E.Visser。将逻辑和控制与局部变换融合:一个优化示例。编辑B.Gramlich和S.Lucas,重写和编程中的简化策略研讨会(WRS’01)第57卷理论计算机科学电子笔记·Zbl 1268.68098号
[32] G.Kiczales、J.Lamping、A.Mendekar、C.Maeda、C.Lopes、J.-M.Loingtier和J.Irwin。面向方面编程。技术报告,施乐帕洛阿尔托研究中心,1997年。6.3; G.Kiczales、J.Lamping、A.Mendhekar、C.Maeda、C.Lopes、J.-M.Loingtier和J.Irwin。面向方面编程。技术报告,施乐帕洛阿尔托研究中心,1997年。6.3
[33] D.莱西和O.de摩尔。通过重写进行强制程序转换。编译器构造(CC'01); D.莱西和O.de摩尔。通过重写进行强制程序转换。编译器构造(CC'01)·Zbl 0977.68675号
[34] de Moor,O。;Sittampalam,G.,程序转换的高阶匹配,理论计算机科学,269,1-2,135-162(2001),3.3·Zbl 0983.68020号
[35] P.-E.莫罗。非终结者标准和战略汇编; P.-E.莫罗。非决定性因素的标准和战略汇编
[36] Muchnick,S.S.,《高级编译器设计与实现》(1997),Morgan Kaufmann Publishers,2.1.1,2.2.2,3.2
[37] G.Nadathur和D.Miller。λProlog概述。编辑R.A.Kowalski,逻辑编程。第五届国际会议和专题讨论会会议记录第1卷; G.Nadathur和D.Miller。λProlog概述。编辑R.A.Kowalski,逻辑编程。第五届国际会议和专题讨论会会议记录第1卷
[38] J.M.邻居。使用组件构建软件; J.M.邻居。使用组件构建软件
[39] J.M.邻居。Draco 1.2用户手册; J.M.邻居。Draco 1.2用户手册
[40] Neighbors,J.M.,从可重用组件构建软件的Draco方法,IEEE软件工程学报,SE-10,5,564-573(1984年9月),5.1
[41] K.Ogata和K.Futatsugi。使用评估策略实现术语重写。程序设计语言:实现、逻辑和程序第九届研讨会论文集(PLILP’97)第1292卷计算机科学课堂讲稿; K.Ogata和K.Futatsugi。使用评估策略实现术语重写。程序设计语言:实现、逻辑和程序第九届研讨会论文集(PLILP’97)第1292卷计算机科学课堂讲稿
[42] Parr,T.J.,SORCERER参考,(使用PCCTS和C++进行语言翻译。参考指南,第4章(1993年),Automata Publishing Company),161-199,网址:http://www.antlr.org/buybook.html。5.3
[43] T.J.帕尔。SORCERR概述:一个简单的树分析器生成器。http://www.antlr.org/papers/sorcerer.ps; T.J.帕尔。SORCERR概述:一个简单的树分析器生成器。http://www.antlr.org/papers/sorcerer.ps
[44] S.Peyton Jones,J.Hughes等人,编程语言Haskell98的报告。一种非限定的纯功能性语言,1999年2月。2.2.1; S.Peyton Jones,J.Hughes等人。编程语言Haskell98的报告。一种非限定的纯功能性语言,1999年2月。2.2.1
[45] F.Pfenning和C.Elliot。高阶抽象语法。程序。SIGPLAN编程语言设计与实现会议(PLDI’88); F.Pfenning和C.Elliot。高阶抽象语法。程序。SIGPLAN编程语言设计与实现会议(PLDI’88)
[46] A.M.Pitts和M.J.Gabbay。一种用于使用绑定名称进行编程的元语言——模重命名。编辑R.Backhouse和J.N.Oliveira,第五届程序构造数学国际会议论文集(MPC2000)第1837卷计算机科学课堂讲稿; A.M.Pitts和M.J.Gabbay。一种用于使用绑定名称进行编程的元语言——模重命名。编辑R.Backhouse和J.N.Oliveira,第五届程序构造数学国际会议论文集(MPC2000)第1837卷计算机科学课堂讲稿·Zbl 0963.68502号
[47] 范德波尔。即时:关于战略注释。重写和编程中减少策略国际研讨会会议记录(WRS 2001); J.范德波尔。即时:关于战略注释。重写和编程中减少策略国际研讨会会议记录(WRS 2001)·Zbl 1268.68104号
[48] Proebsting,T.A.,BURS自动机生成,ACM编程语言和系统事务,17,3,461-486(1995年5月),5.4,5.4
[49] Sarkar,IBM XL FORTRAN编译器中高阶转换的自动选择,IBM研究与开发杂志,41,3,233-264(1997年5月),6.3
[50] Smith,D.R.,KIDS:半自动程序开发系统,IEEE软件工程学报,16,9,1024-1043(1990),2.1.1
[51] E.维瑟。语言原型的语法定义; E.维瑟。语言原型的语法定义·Zbl 0900.68290号
[52] E.维瑟。战略模式匹配。在P.Narendran和M.Rusinovitch编辑中,重写技术与应用(RTA'99)第1631卷计算机科学课堂讲稿; E.维瑟。战略模式匹配。在P.Narendran和M.Rusinovitch编辑中,重写技术与应用(RTA'99)第1631卷计算机科学课堂讲稿
[53] E.维瑟。用于程序转换的独立于语言的遍历。编辑J.Jeuring,通用编程研讨会(WGP'00); E.维瑟。用于程序转换的独立于语言的遍历。编辑J.Jeuring,通用编程研讨会(WGP'00)
[54] E.维瑟。Stratego:一种基于重写策略的程序转换语言。Stratego 0.5的系统描述。编辑A.Middeldorp,重写技术与应用(RTA'01)第2051卷计算机科学课堂讲稿; E.维瑟。Stratego:一种基于重写策略的程序转换语言。Stratego 0.5的系统描述。编辑A.Middeldorp,重写技术与应用(RTA'01)第2051卷计算机科学课堂讲稿·Zbl 0981.68679号
[55] E.Visser、Z.-E.-A.Benaissa和A.Tolmach。使用重写策略构建程序优化器。ACM SIGPLAN通知34; E.Visser、Z.-E.-A.Benaissa和A.Tolmach。使用重写策略构建程序优化器。ACM SIGPLAN通知34·Zbl 1369.68084号
[56] E.Visser等人,程序转换的在线调查。www.program-transformation.org;E.Visser等人,《项目转型的在线调查》。www.program-transformation.org
[57] P.Wadler。视图:一种模式匹配与数据抽象共存的方法。美国计算机学会编程语言原理研讨会; P.Wadler。视图:模式匹配与数据抽象相结合的一种方式。美国计算机学会编程语言原理研讨会
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。