arrow
返回

Zero-Overhead Lexical Effect Handlers

delete2025-10-01
delete1
PRE
AI
C
Cong Ma *
Z
Zhaoyi Ge
J
Jung, Max
Y
Yizhou Zhang
DOI:10.1145/3763177delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
异常处理程序——以及更一般的效应处理程序——是用于结构化非局部控制流的语言机制。语言设计研究中的一个近期趋势引入了词法作用域处理程序,它们解决了动态作用域的模块性问题。虽然动态作用域处理程序在未引发任何效应时允许零开销实现,但现有词法作用域处理程序的实现要求程序仅因在词法上下文中存在处理程序就支付成本。在本文中,我们提出了一种实现异常效应词法作用域处理程序的新方法。它满足零开销原则——这是大多数支持动态作用域异常处理程序的现代编译器所具备的特性。关键思想是一种类型指导的转换,它会发出指示处理程序如何进入词法作用域的信息。这些信息指导运行时遍历堆栈以定位正确的处理程序。关键在于,不需要处理程序的反射词法标识符,并且主代码不会因程序文本中存在处理程序而变慢。我们形式化了该编译方案的关键方面并证明了其正确性。我们将我们的方法集成到Lexa语言中,允许根据每个声明效应的预期调用率定制编译策略。实证结果表明,新的Lexa编译器在低效应或无效应场景下减少了运行时开销,同时保持了对效应密集型工作负载的竞争力性能。
Keyword:
Lexa
exception handling
algebraic effects
compiler correctness

期刊

P
Proceedings of the ACM on Programming Languages-PACMPL
IF:
2.8
论文数:
308
被引数:
4.7K

机构

U
University of Waterloo
学者数:
2.2W
论文数: 2.3W
被引数: 3.3W
引用论文

引用论文

Region-Based Memory Management
err1997-02-01
err0
errOAAI
errMads Tofte; Jean-Pierre Talpin
err分享
err收藏
Handling Algebraic Effects
err
err0
PREAI
errPlotkin,Gordon D; Pretnar,Matija
err分享
err收藏
Region-based memory management in cyclone
err2002-05-17
err0
errOAAI
errDan Grossman; Greg Morrisett; Trevor Jim; Michael Hicks; Yanling Wang; James Cheney
err分享
err收藏
Continuing WebAssembly with Effect Handlers
err2023-10-16
err0
PREAI
errPhipps-Costin,Luna; Rossberg,Andreas; Guha,Arjun; Leijen,Daan; Hillerström,Daniel; Sivaramakrishnan,KC; Pretnar,Matija; Lindley,Sam
err分享
err收藏
Lightweight, flexible object-oriented generics
err2015-06-03
err0
PREAI
errZhang,Yizhou; Loring,Matthew C.; Salvaneschi,Guido; Liskov,Barbara; Myers,Andrew C.
err分享
err收藏
ABSTRACTION MECHANISMS IN CLU
err1977-08-01
err274
errOAAI
errLISKOV, B; SNYDER, A; ATKINSON, R; SCHAFFERT, C
err分享
err收藏
err分享
err收藏
学者 查看更多内容