陈燕;乔舒亚·邓菲尔德;马修·哈默(Matthew A.Hammer)。;阿卡尔(Umut A.Acar)。 纯函数程序的隐式自调整计算。 (英语) Zbl 1297.68046号 J.功能。程序。 24,第1期,56-112(2014). 摘要:涉及动态数据的计算问题,例如物理模拟和程序开发环境,一直是编程语言的一个重要研究课题。在这项工作的基础上,自调整计算的最新进展发展了一些技术,使程序能够自动有效地响应输入中的动态变化。自调整程序已被证明对相当广泛的问题是有效的,但这种方法仍然需要显式编程风格,程序员必须使用特定的单数类型和基元来识别、创建和操作可能随时间变化的数据。我们描述了将纯功能程序自动转换为自调整程序的技术。在这种隐式方法中,程序员只需要注释要翻译的程序的(顶级)输入类型。类型推断可以找到所有其他类型,并且类型定向翻译会将源程序重写为显式自我调整的目标程序。类型系统与信息流类型系统相关,并通过约束求解获得可判定的类型推理。我们证明了翻译输出的是类型良好的自调整程序,并保留了源程序的输入输出行为,从而保证翻译后的程序能够正确地响应其数据的所有更改。利用代价语义,我们还证明了翻译保持了源程序的渐近复杂性。 MSC公司: 68甲18 函数编程和lambda演算 PDF格式BibTeX公司 XML格式引用 \textit{Y.Chen}等人,J.Funct。程序。24,第1号,第56-112条(2014;Zbl 1297.68046) 全文: 内政部 参考文献: [1] DOI:10.1002/(SICI)1096-9942(199901/03)5:1<;35::艾滋病-TAPO4>;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的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。