跳到主要内容
文章

续编的本质

出版:2004年4月1日出版历史
跳过抽象节

摘要

为了简化编译过程,许多高阶语言的编译器在第一阶段使用连续传递样式(CPS)转换来生成源程序的中间表示。这种中间形式的显著特点是,所有过程都采用一个表示其余计算的参数(“延续”)。由于天真的CPS转换大大增加了程序的大小,CPS编译器执行缩减以生成更紧凑的中间表示。虽然这一步骤通常作为CPS转换的一部分实现,但从概念上讲,这是第二个阶段。最后,典型CPS编译器的代码生成器专门处理延续,以优化延续参数的解释。对CPS术语抽象机的彻底分析表明,代码生成器的操作使转化天真的CPS翻译步骤。换言之,这三个阶段的组合效果相当于模拟压缩阶段的源到源转换。因此,完全开发的CPS编译器不需要使用CPS转换,但可以通过简单的源代码级转换获得相同的结果。

工具书类

  1. 安德鲁·W·阿佩尔。用连续体编译。剑桥大学出版社,1992年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  2. 安德鲁·W·阿佩尔。SSA是函数式编程。ACM SIGPLAN通知,33(4):17--20,1998年4月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  3. Andrew W.Appel和David B.MacQueen。新泽西州标准ML。编辑J.Maluszyñski和M.Wirsing,第三届编程语言实现和逻辑编程国际研讨会论文集,PLILP91,德国帕索,计算机科学讲义,第1-13页。Springer-Verlag,1991年8月。]]谷歌学者谷歌学者
  4. Andrew W.Appel和David B.MacQueen。新泽西州标准ML。技术报告TR-329-91,普林斯顿大学计算机科学系,1991年6月。]]谷歌学者谷歌学者
  5. 马蒂亚斯·布鲁姆和安德鲁·阿佩尔。Lambda分裂:跨模块优化的一种高阶方法。1997年ACM SIGPLAN国际函数编程会议记录,第112-124页,荷兰阿姆斯特丹,1997年6月9-11日。]]谷歌学者谷歌学者数字图书馆数字图书馆
  6. M.Felleisen和D.P.Friedman。控制运算符、SECD机器和λ-演算,第193-217页。北荷兰,1986年。]]谷歌学者谷歌学者
  7. 马提亚斯·费莱森(Matthias Felleisen)。λ-v-CS:方案的扩展λ-演算。程序中。1988年ACM关于Lisp和函数编程的会议,Snowbird,UT,美国,1988年7月25日至27日,第72至85页。ACM出版社,纽约,1988年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  8. 马提亚斯·费尔莱森(Matthias Felleisen)、丹尼尔·弗里德曼(Daniel P.Friedman)、尤金·科尔贝克(Eugene Kohlbecker)和布鲁斯·杜巴(Bruce Duba)。继续推理。程序中。IEEE Symp.第1年。《计算机科学中的逻辑》,LICS’86,美国马萨诸塞州剑桥,1986年6月16-18日,第131-141页。IEEE计算机学会出版社,华盛顿特区,1986年。]]谷歌学者谷歌学者
  9. 马提亚斯·费莱森和罗伯特·希布。关于顺序控制和状态句法理论的修订报告。理论计算机科学,103(2):235--2711992谷歌学者谷歌学者数字图书馆数字图书馆
  10. 马修·弗莱特和斯蒂芬·威克斯。使用支配者进行变形。Cindy Norris和Jr.James B.Fenwick,编辑,《Sith ACM SIGPLAN函数编程国际会议记录》(ICFP-01),ACM SIGPLAN通知第36卷,第10页,第2-13页,纽约,2001年9月3-5日。ACM出版社。]]谷歌学者谷歌学者
  11. 约翰·哈特克利夫(John Hatcliff)和奥利维尔·丹维(Olivier Danvy)。部分评估的计算形式化。计算机科学中的数学结构,7(5):507--5411997年10月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  12. 理查德·凯尔西(Richard A.Kelsey)。延续传递样式和静态单一赋值形式之间的对应。ACM SIGPLAN通知,30(3):13--221995年3月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  13. 大卫·克兰兹、理查德·凯尔西、乔纳森·里斯、保罗·哈达克、詹姆斯·菲尔宾和诺曼·亚当斯。Orbit:Scheme的优化编译器。SIGPLAN通知,21(7):219--2331986年7月。ACM SIGPLAN’86编译器构造研讨会论文集。]]谷歌学者谷歌学者数字图书馆数字图书馆
  14. 泽维尔·勒罗伊。类型生成和共享的句法理论。函数编程杂志,6(5):667-6981996年9月。]]谷歌学者谷歌学者交叉引用交叉引用
  15. G.普洛金。按名称调用、按值调用和λ演算。理论计算机科学,1(2):125-1592975谷歌学者谷歌学者交叉引用交叉引用
  16. 约翰·雷皮。直接样式编译器中的本地CPS转换。在2001年1月第三届ACM SIGPLAN延续研讨会(CW'01)的会议记录中,第13-22页。]]谷歌学者谷歌学者
  17. Amr Sabry和Matthias Felleisen。关于延续传递式程序的推理。程序中。1992年ACM Lisp和函数编程会议。美国加利福尼亚州旧金山,1992年6月22日至24日,第288页至298页。ACM出版社,纽约,1992年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  18. Amr Sabry和Matthias Felleisen。以继续传递方式推理程序。Lisp和符号计算,6(3-4):289--3601993。]]谷歌学者谷歌学者数字图书馆数字图书馆
  19. Amr Sabry和Matthias Felleisen。连续传递对数据流分析有用吗?1994年6月,美国纽约州纽约市,第1-12页,《编程语言设计与实现会议记录》。ACM出版社。]]谷歌学者谷歌学者数字图书馆数字图书馆
  20. 小斯蒂尔,盖伊·L·兔子:Scheme的编译器。技术报告AITR-474,麻省理工学院,1978年5月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  21. D.Tarditi、G.Morrisett、P.Cheng、C.Stone、R.Harper和P.Lee。TIL:面向ML的类型定向优化编译器。《ACM SIGPLAN编程语言设计与实现会议论文集》,第181-192页,纽约,1996年5月21-24日。ACM出版社。]]谷歌学者谷歌学者数字图书馆数字图书馆
  22. AHO,A.、SETHI,R.和ULLMAN,J.编译器——原理、技术和工具。Addison-Wesley,Reading,马萨诸塞州,1985年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  23. APPEL,A.用连续体编写。剑桥大学出版社,1992年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  24. BARENDREGT,H.《兰姆达演算:其语法和语义》,修订版,《逻辑研究与数学基础》103。北荷兰,1984年。]]谷歌学者谷歌学者
  25. BOEHM,H.-J.和DEMERS,A.实施Russel。在ACM SIGPLAN 1986编译器构造研讨会论文集(1986),第21卷(7),SIGPLAN通知,第186-195页。]]谷歌学者谷歌学者数字图书馆数字图书馆
  26. BONDORF,A.在没有显式CPS转换的情况下提高绑定时间。《1992年ACM Lisp和函数编程会议记录》(1992),第1-10页。]]谷歌学者谷歌学者数字图书馆数字图书馆
  27. 《Scheme 311编译器:指称语义练习》。《1984年ACM Lisp和函数编程会议记录》(1984),第356-364页。]]谷歌学者谷歌学者数字图书馆数字图书馆
  28. 丹维,O.回到直接风格。《第四届欧洲程序设计研讨会论文集》(Rennes,1992),计算机科学讲义,582,Springer Verlag,第130-150页。]]谷歌学者谷歌学者数字图书馆数字图书馆
  29. DANVY,O。CPS转换的三个步骤。技术代表CIS-92-2,堪萨斯州立大学,1992年。]]谷歌学者谷歌学者
  30. DANVY,O.和FILINSKI,A.代表控制:CPS转换的研究。计算机科学中的数学结构,4(1992),361--391。]]谷歌学者谷歌学者交叉引用交叉引用
  31. FELLEISEN,M.和FRIEDMAN,D.控制操作符、SECD机器和λ-演算。在《编程概念的形式描述III》(阿姆斯特丹,1986年)中,M.Wirsing,Ed.,Elsevier Science Publishers B.V.(北荷兰),第193-217页。]]谷歌学者谷歌学者
  32. FESSENDEN,C.、CLINGER,W.、FRIEDMAN,D.P.和HAYNES,C.T.方案311第4版参考手册。《计算机科学技术报告137》,印第安纳大学,印第安纳州布卢明顿,1983年2月。]]谷歌学者谷歌学者
  33. FISCHER,M.Lambda微积分图式。《美国医学会关于证明有关计划的断言的会议记录》(1972年),第7卷(1),Sigplan通告,第104至109页。]]谷歌学者谷歌学者数字图书馆数字图书馆
  34. KELSEY,R.和HUDAK,P.通过程序转换进行真实的编译。第16届美国计算机学会编程语言原理研讨会会议记录(德克萨斯州奥斯汀,1989年1月),第281--292页。]]谷歌学者谷歌学者数字图书馆数字图书馆
  35. KRANZ,D.,KELSEY,R.,REES,J.,HUDAK,P.,PHILBIN,J.和ADAMS,N.Orbit:Scheme的优化编译器。《1986年ACM SIGPLAN编译器构造研讨会论文集》(1986),第21卷(7),SIGPLAN通告,第219-233页。]]谷歌学者谷歌学者数字图书馆数字图书馆
  36. LEROY,X.锌实验:ML语言的经济实现。技术代表117,INRIA,1990年。]]谷歌学者谷歌学者
  37. PLOTKIN、G.调用名、调用值和λ-演算。理论计算机科学1(1975),125-159.]]谷歌学者谷歌学者
  38. SABRY,A.和FELLEISEN,M.关于连续通过式程序的推理。《1992年ACM Lisp和函数编程会议记录》(1992),第288-298页。赖斯大学技术报告92-180。]]谷歌学者谷歌学者数字图书馆数字图书馆
  39. SHIVERS,O.高阶语言的控制流分析或Taming Lambda。卡内基梅隆大学博士论文,1991年。]]谷歌学者谷歌学者数字图书馆数字图书馆
  40. STEELE,G.L.RABBIT:Scheme的编译器。麻省理工学院人工智能备忘录474,马萨诸塞州剑桥市麻省理学院,1978年5月。]]谷歌学者谷歌学者数字图书馆数字图书馆
  41. WAND,M.高阶汇编语言中过程表示的正确性。《1991年编程语义学数学基础会议论文集》(1992),S.Brookes,Ed.,计算机科学讲稿第598卷,Springer Verlag,第294--311页。]]谷歌学者谷歌学者数字图书馆数字图书馆
  42. WEISE,D.高级编译技术。斯坦福大学课程笔记,1990年。]]谷歌学者谷歌学者

索引术语

  1. 续编的本质
    索引项已通过自动分类分配给内容。

    建议

    评论

    登录选项

    请检查您是否可以通过登录凭据或您的机构访问此文章以获得完全访问权限。

    登录

    完全访问权限

    • 发布于

      封面图片ACM SIGPLAN注意事项
      ACM SIGPLAN通知 第39卷第4期
      1979年至1999年ACM SIGPLAN编程语言设计与实现会议20周年:一个选择
      2004年4月
      673页
      国际标准编号:0362-1340
      EISSN公司:1558-1160
      内政部:10.1145/989393
      期刊目录

      版权所有©2004作者

      出版商

      计算机协会

      美国纽约州纽约市

      出版历史

      • 出版:2004年4月1日

      检查更新

      限定符

      • 文章

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

    使用eReader在线查看。

    电子阅读器