×

可逆函数的尾部递归变换。 (英语) Zbl 07786596号

Kutrib,Martin(编辑)等人,《可逆计算》。2023年7月18日至19日,第15届国际会议,RC 2023,德国基森。诉讼程序。查姆:斯普林格。莱克特。票据计算。科学。13960, 73-88 (2023).
摘要:尾部递归函数允许比一般递归函数进行更广泛的优化。由于这个原因,很多研究都是针对这一系列函数的转换和优化进行的,尤其是那些用连续传递样式(CPS)编写的函数。
尽管CPS变换能够将任何递归函数转换为等效的尾递归函数,但在可逆编程的背景下(因为它依赖于高阶函数等麻烦的特性)是有很大问题的,我们认为将(局部)可逆性放宽为(全局)可逆性大大改善了这种情况。在此基础上,我们提出了一种针对可逆函数的尾部递归转换算法。关键的见解是,由程序转换引入的保持可逆性的函数只需要在转换的函数调用它们的上下文中可逆。我们展示了如何使用与这样的上下文相对应的定制数据类型将可逆递归函数转换为作用于该上下文的一对尾部递归函数,方法是突出显示调用,并从中直接提取尾部递归逆。
关于整个系列,请参见[Zbl 1528.68031号].

MSC公司:

2009年第68季度 其他非经典计算模型
2010年第68季度 计算模式(非确定性、并行、交互式、概率性等)
81页68 量子计算

软件:

特修斯
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] Abramov,S.,Robert,G.:通用求解算法及其正确性:函数语言中的逆计算。科学。计算。程序。43(23), 193-229 (2002). doi:10.1016/S0167-6423(02)00023-0。程序构造数学(MPC 2000)·Zbl 1014.68037号
[2] Axelsen,HB;Knoop,J.,命令式可逆编程语言的干净翻译,《编译器构造》,144-163(2011),海德堡:施普林格出版社·doi:10.1007/978-3642-19861-89
[3] Glück,R.,Kaarsgaard,R.:结构化可逆流程图语言的分类基础:可靠性和充分性。逻辑方法计算。科学。14(3) (2018). doi:10.1016/j.entcs.2018.03.021·Zbl 1398.68082号
[4] 吕克,R。;Kaarsgaard,R。;横山,T.,《从可逆编程语言到可逆元语言》,Theoret。计算。科学。,920, 46-63 (2022) ·Zbl 07527764号 ·doi:10.1016/j.tcs.2022.02.024
[5] 吕克,R。;川贝,M。;Ohori,A.,具有等式和构造函数的函数语言的程序反相器,《编程语言与系统》,246-264(2003),海德堡:施普林格,海德堡·Zbl 1254.68057号 ·doi:10.1007/978-3-540-40018-9_17
[6] 吕克,R。;川部,M。;Kameyama,Y。;Stuckey,PJ,基于LR解析的确定性逆程序推导,函数和逻辑编程,291-306(2004),海德堡:施普林格·Zbl 1122.68394号 ·doi:10.1007/978-3-540-24754-8_21
[7] 吕克,R。;Kawabe,M.,基于LR(0)解析的自动程序反转方法,基金会。通知。,66, 4, 367-395 (2005) ·Zbl 1098.68025号
[8] PAH雅各布森;Kaarsgaard,R。;汤姆森,MK;Kari,J。;Ulidowski,I.,(\sf-CoreFun):一种类型化函数可逆核心语言,可逆计算,304-321(2018),Cham:Springer,Cham·Zbl 1515.68091号 ·doi:10.1007/978-3-319-99498-7_21
[9] James,R.P.,Sabry,A.:Theseus:可逆计算的高级语言(2014)。RC 2014的在制品文件。https://www.cs.indiana.edu/sabry/papers/thesus.pdf
[10] Kristensen,J.T.,Kaarsgaard,R.,Thomsen,M.K.:通过可用的隐式参数分析,在《危险边缘》中分支执行对称性。摘自:Rutle,A.(编辑)《第34届挪威研究与教育信息通信技术会议论文集》,NIKT 2022。编号1(2022)
[11] Kristensen,J.T.,Kaarsgaard,R.,Thomsen,M.K.:危险:可逆函数编程语言(2022)。doi:10.48550/ARXIV.2209.02422。在第34届函数式语言实现与应用研讨会上发表的工作成果论文
[12] Lutz,C.,Derby,H.:Janus:一种时间可逆的语言。致R.Landauer的信(1986年)。http://tetsuo.jp/ref/janus.pdf
[13] Matsuda,K。;Mu,S-C;胡,Z。;M.武一。;Gordon,AD,《可逆程序的基于语法的方法》,《编程语言和系统》,448-467(2010),海德堡:斯普林格·Zbl 1260.68106号 ·doi:10.1007/978-3642-11957-6_24
[14] 麦卡锡,J。;香农,CE;McCarthy,J.,《图灵机器定义的函数的反演》,《自动机研究》(1956),普林斯顿:普林斯顿大学出版社,普林斯顿·Zbl 0074.11204号
[15] 莫根森,TÆ;格吕克,R。;Lowry,M.,防护方程的半隐式,生成程序设计和组件工程,189-204(2005),海德堡:施普林格·doi:10.1007/11561347_14
[16] 莫根森,T.Æ.:功能参数的半输入。摘自:2008年ACM SIGPLAN部分评估和基于语义的程序操作研讨会论文集,PEPM 2008,第21-29页。ACM(2008)。数字对象标识代码:10.1145/1328408.1328413
[17] Nishida,N。;Vidal,G.,术语重写中的尾部递归转换,J.逻辑代数程序。,83, 1, 53-63 (2014) ·兹比尔1283.68128 ·doi:10.1016/j.jlap.2013.07.001
[18] Nishida,N.,Vidal,G.:尾部递归函数的程序反转。收录于:第22届改写技术和应用国际会议,RTA 2011,第10卷,第283-298页(2011)·Zbl 1236.68144号
[19] Romanenko,A.:REFAL中反函数的生成。摘自:《部分评估和混合计算国际研讨会论文集》,第427卷。荷兰北部,阿姆斯特丹(1988年)。https://cir.nii.ac.jp/crid/1571135649260521472
[20] 汤姆森,M.K.,阿克塞尔森,H.B.:可逆函数语言的解释和编程。摘自:第27届函数式编程语言实现与应用研讨会论文集,IFL 2015,第8:1-8:13页。ACM(2016)。doi:10.1145/2897336.2897345
[21] MK汤姆森;Axelsen,HB;吕克,R。;De Vos,A。;Wille,R.,《可逆处理器体系结构及其可逆逻辑设计》,《可逆计算》,30-42(2012),海德堡:施普林格出版社·doi:10.1007/978-3-642-29517-1.3
[22] 维埃里,C.J.:可逆计算机工程和架构。麻省理工学院博士论文,EECS(1999)
[23] 横山,T。;Axelsen,HB;格吕克,R。;丙酮,L。;达姆加德,I。;洛杉矶Goldberg;Halldórsson,MM;Ingólfsdóttir,A。;Walukiewicz,I.,可逆流程图语言和结构化可逆程序定理,自动机,语言和程序设计,258-270(2008),海德堡:施普林格,海德堡·Zbl 1155.68388号 ·doi:10.1007/978-3-540-70583-3_22
[24] 横山,T。;Axelsen,HB;吕克,R。;德沃斯,A。;Wille,R.,《走向可逆函数语言》,《可逆计算》,14-29(2012),海德堡:施普林格出版社·Zbl 1407.68075号 ·数字对象标识代码:10.1007/978-3-642-29517-1_2
[25] Yokoyama,T.,Glück,R.:一种可逆编程语言及其可逆的自我解释程序。在:部分评估和程序操作,PEPM 2007,第144-153页。ACM(2007)。数字对象标识代码:10.1145/1244381.1244404
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。