×

纯函数程序的隐式自调整计算。 (英语) Zbl 1297.68046号

摘要:涉及动态数据的计算问题,例如物理模拟和程序开发环境,一直是编程语言的一个重要研究课题。在这项工作的基础上,自调整计算的最新进展发展了一些技术,使程序能够自动有效地响应输入中的动态变化。自调整程序已被证明对相当广泛的问题是有效的,但这种方法仍然需要显式编程风格,程序员必须使用特定的单数类型和基元来识别、创建和操作可能随时间变化的数据。我们描述了将纯功能程序自动转换为自调整程序的技术。在这种隐式方法中,程序员只需要注释要翻译的程序的(顶级)输入类型。类型推断可以找到所有其他类型,并且类型定向翻译会将源程序重写为显式自我调整的目标程序。类型系统与信息流类型系统相关,并通过约束求解获得可判定的类型推理。我们证明了翻译输出的是类型良好的自调整程序,并保留了源程序的输入输出行为,从而保证翻译后的程序能够正确地响应其数据的所有更改。利用代价语义,我们还证明了翻译保持了源程序的渐近复杂性。

MSC公司:

68甲18 函数编程和lambda演算
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] DOI:10.1002/(SICI)1096-9942(199901/03)5:1&lt;35::艾滋病-TAPO4&gt;3.0.CO;2-4 ·doi:10.1002/(SICI)1096-9942(199901/03)5:1<35::AID-TAPO4>3.0.CO;2-4
[2] 程序设计语言原理第169页–(1982)
[3] 函数编程国际会议第54页–(2005)
[4] 程序设计语言原理第502页–(1993)
[5] 部分评估和基于语义的程序操作第71页–(2007)
[6] 程序设计语言原理第315页–(1989)
[7] 动态规划(1957)
[8] 内政部:10.1145/596980.596983·Zbl 05459321号 ·doi:10.1145/596980.596983
[9] 内政部:10.2307/2273659·Zbl 0545.03004号 ·doi:10.2307/2273659
[10] 计算几何专题讨论会pp 756–(2010)
[11] 数学。结构。计算。科学。第11页,第511页–(2001年)
[12] 编程语言设计与实现第483页–(2010年)
[13] ACM事务处理。掠夺。语言系统。第32页,第31页–(2009年)
[14] 程序设计语言原理pp 228–(1999)
[15] DOI:10.1016/j.entcs.2005.11.043·doi:10.1016/j.entcs.2005.11.043
[16] DOI:10.1016/j.entcs.2007.10.006·doi:10.1016/j.entcs.2007.10.006
[17] 函数编程国际会议第83页–(1996)
[18] 函数编程国际会议(ICFP’09)第35页–(2009)
[19] 函数编程国际会议第321页–(2008年)
[20] 程序设计语言原理第186页–(2009)·兹比尔1187.68116
[21] 函数编程国际会议第221页–(2013)
[22] 编程语言研讨会符合程序验证第49页–(2012年)
[23] 程序设计语言原理第365页–(1998)
[24] 编程语言设计与实现第25页–(2009年)
[25] 离散和计算几何手册pp 1117–(2004)·Zbl 1056.52001号
[26] 内政部:10.1145/1186632.1186635·doi:10.1145/1186632.1186635
[27] ACM LISP和函数编程会议第307页–(1990)
[28] 函数编程国际会议第263页–(1997)
[29] 声明语言的实际方面第155页–(2002)
[30] ML中的属性语法(1993)
[31] 数据结构和应用手册(2005)
[32] 程序设计语言原理pp 1–(1991)
[33] 程序设计语言原理第105页–(1981)
[34] 函数编程国际会议(2008年)
[35] 程序设计语言原理第207页–(1982)
[36] 亚洲程序设计语言和系统研讨会第283页–(2003年)
[37] 内政部:10.1017/S0956796804005441·Zbl 1077.68019号 ·doi:10.1017/S0956796804005441
[38] 编程语言设计与实现第310页–(2007)
[39] 欧洲编程研讨会第294页–(2006)
[40] 数字对象标识码:10.1007/s10990-011-9068-x·Zbl 1232.68027号 ·数字对象标识代码:10.1007/s10990-011-9068-x
[41] 内政部:10.1109/5.163409·doi:10.1109/5.163409
[42] 程序设计语言原理pp 355–(1995)
[43] 函数编程国际会议第129页–(2011年)
[44] 编程语言设计与实现第299页–(2012)
[45] DOI:10.1109/JSAC.2002.806121·doi:10.1109/JSAC.2002.806121
[46] 函数编程国际会议第26页–(2002年)
[47] 合成器生成器:构建基于语言的编辑器的系统(1989)·Zbl 0711.68028号
[48] 内政部:10.1145/1186632.1186634·doi:10.1145/1186632.1186634
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。