首页 > 最新文献

Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation最新文献

英文 中文
In memoriam Neil Deaton Jones 悼念尼尔-迪顿-琼斯
Fritz Henglein
Neil Deaton Jones, professor emeritus at DIKU, the Department of Computer Science at the University of Copenhagen, passed away March 27th, 2023, shortly after his 82nd birthday. He is remembered for his seminal contributions to programming language research and theory of computation and for the impact his visions and his work have had on an entire generation of researchers, students and collaborators.
哥本哈根大学计算机科学系(DIKU)名誉教授尼尔-迪顿-琼斯(Neil Deaton Jones)于 2023 年 3 月 27 日去世,就在他 82 岁生日后不久。人们缅怀他对编程语言研究和计算理论的开创性贡献,以及他的愿景和工作对整整一代研究人员、学生和合作者的影响。
{"title":"In memoriam Neil Deaton Jones","authors":"Fritz Henglein","doi":"10.1145/3635800.3639464","DOIUrl":"https://doi.org/10.1145/3635800.3639464","url":null,"abstract":"Neil Deaton Jones, professor emeritus at DIKU, the Department of Computer Science at the University of Copenhagen, passed away March 27th, 2023, shortly after his 82nd birthday. He is remembered for his seminal contributions to programming language research and theory of computation and for the impact his visions and his work have had on an entire generation of researchers, students and collaborators.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":" 3","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139640675","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Historical Perspective on Program Transformation and Recent Developments (Invited Contribution) 计划转型的历史视角与最新发展(特邀稿件)
A. Pettorossi, M. Proietti, F. Fioravanti, E. D. Angelis
This paper presents some ideas concerning program manipulation and program transformation from the early days of their development. Particular emphasis will be given to program transformation techniques in the area of functional programming and constraint logic programming. We will also indicate current applications of program transformation techniques to the verification of program properties and program synthesis.
本文介绍了程序操作和程序转换在其发展初期的一些想法。我们将特别强调函数式编程和约束逻辑编程领域的程序转换技术。我们还将指出程序转换技术目前在程序属性验证和程序合成方面的应用。
{"title":"A Historical Perspective on Program Transformation and Recent Developments (Invited Contribution)","authors":"A. Pettorossi, M. Proietti, F. Fioravanti, E. D. Angelis","doi":"10.1145/3635800.3637446","DOIUrl":"https://doi.org/10.1145/3635800.3637446","url":null,"abstract":"This paper presents some ideas concerning program manipulation and program transformation from the early days of their development. Particular emphasis will be given to program transformation techniques in the area of functional programming and constraint logic programming. We will also indicate current applications of program transformation techniques to the verification of program properties and program synthesis.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":"73 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140509926","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
The 0'th PEPM Event: October 1987—and Andrei Petrovich Ershov: 1977–1988 (Invited Contribution) PEPM 第 0 次活动:1987 年 10 月--安德烈-彼得洛维奇-叶尔绍夫:1977-1988 年(特邀作品)
Dines Bjørner
An attempt is made to record events leading up to the The 0'th PEPM Event: the October 1987 Partial Evaluation and Mixed Computation IFIP TC2 Working Conference at Gl. Avernæs, Denmark.
本文试图记录 "PEPM 第 0 次活动:1987 年 10 月在丹麦格拉斯哥举行的部分评估和混合计算 IFIP TC2 工作会议 "的前因后果。Avernæs, Denmark.
{"title":"The 0'th PEPM Event: October 1987—and Andrei Petrovich Ershov: 1977–1988 (Invited Contribution)","authors":"Dines Bjørner","doi":"10.1145/3635800.3637448","DOIUrl":"https://doi.org/10.1145/3635800.3637448","url":null,"abstract":"An attempt is made to record events leading up to the The 0'th PEPM Event: the October 1987 Partial Evaluation and Mixed Computation IFIP TC2 Working Conference at Gl. Avernæs, Denmark.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":" 42","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139640478","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Productivity Verification for Functional Programs by Reduction to Termination Verification 通过还原到终止验证来验证功能程序的生产率
Ren Fukaishi, Naoki Kobayashi, Ryosuke Sato
A program generating a co-inductive data structure is called productive if the program eventually generates all the elements of the data structure. We propose a new method for verifying the productivity, which transforms a co-inductive data structure into a function that takes a path as an argument and returns the corresponding element. For example, an infinite binary tree is converted to a function that takes a sequence consisting of 0 (left) and 1 (right), and returns the element in the specified position, and a stream is converted into a function that takes a sequence of the form 0^n (or, simply a natural number n) and returns the n-th element of the stream. A stream-generating program is then productive just if the function terminates for every n. The transformation allows us to reduce the productivity verification problem to the termination problem for call-by-name higher-order functional programs without co-inductive data structures. We formalize the transformation and prove its correctness. We have implemented an automated productivity checker based on the proposed method, by extending an automated HFL(Z) validity checker, which can be used as a termination checker.
如果生成共线性数据结构的程序最终生成了该数据结构的所有元素,那么该程序就被称为有生产力的程序。我们提出了一种验证生产率的新方法,它将共归纳数据结构转换为一个函数,该函数以路径为参数,并返回相应的元素。例如,将一棵无限二叉树转换为一个函数,该函数接收一个由 0(左)和 1(右)组成的序列,并返回指定位置上的元素;将一个流转换为一个函数,该函数接收一个形式为 0^n 的序列(或简单地接收一个自然数 n),并返回流中的第 n 个元素。通过这种转换,我们可以将生产率验证问题简化为没有共归纳数据结构的逐名调用高阶函数式程序的终止问题。我们形式化了这种转换,并证明了它的正确性。我们基于所提出的方法,通过扩展自动 HFL(Z) 有效性检查器,实现了一个自动生产率检查器,它可以用作终止检查器。
{"title":"Productivity Verification for Functional Programs by Reduction to Termination Verification","authors":"Ren Fukaishi, Naoki Kobayashi, Ryosuke Sato","doi":"10.1145/3635800.3636963","DOIUrl":"https://doi.org/10.1145/3635800.3636963","url":null,"abstract":"A program generating a co-inductive data structure is called productive if the program eventually generates all the elements of the data structure. We propose a new method for verifying the productivity, which transforms a co-inductive data structure into a function that takes a path as an argument and returns the corresponding element. For example, an infinite binary tree is converted to a function that takes a sequence consisting of 0 (left) and 1 (right), and returns the element in the specified position, and a stream is converted into a function that takes a sequence of the form 0^n (or, simply a natural number n) and returns the n-th element of the stream. A stream-generating program is then productive just if the function terminates for every n. The transformation allows us to reduce the productivity verification problem to the termination problem for call-by-name higher-order functional programs without co-inductive data structures. We formalize the transformation and prove its correctness. We have implemented an automated productivity checker based on the proposed method, by extending an automated HFL(Z) validity checker, which can be used as a termination checker.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":"53 2","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140510214","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
The Genesis of Mix: Early Days of Self-Applicable Partial Evaluation (Invited Contribution) 混合的起源:自我应用部分评价的早期(特邀稿件)
P. Sestoft, Harald Søndergaard
Forty years ago development started on Mix, a partial evaluator designed specifically for the purpose of self-application. The effort, led by Neil D. Jones at the University of Copenhagen, eventually demonstrated that non-trivial compilers could be generated automatically by applying a partial evaluator to itself. The possibility, in theory, of such self-application had been known for more than a decade, but remained unrealized by the start of 1984. We describe the genesis of Mix, including the research environment, the challenges, and the main insights that led to success. We emphasize the critical role played by program annotation as a pre-processing step, later automated in the form of binding-time analysis.
40 年前,Mix 开始研发,这是一种专为自我应用而设计的部分评估器。这项工作由哥本哈根大学的尼尔-D-琼斯(Neil D. Jones)领导,最终证明了通过将部分评估器应用于自身,可以自动生成非繁琐的编译器。从理论上讲,这种自我应用的可能性早在十多年前就已存在,但到 1984 年初仍未实现。我们描述了 Mix 的起源,包括研究环境、挑战以及取得成功的主要启示。我们强调了程序注释作为预处理步骤所发挥的关键作用,该步骤后来以绑定时间分析的形式实现了自动化。
{"title":"The Genesis of Mix: Early Days of Self-Applicable Partial Evaluation (Invited Contribution)","authors":"P. Sestoft, Harald Søndergaard","doi":"10.1145/3635800.3637445","DOIUrl":"https://doi.org/10.1145/3635800.3637445","url":null,"abstract":"Forty years ago development started on Mix, a partial evaluator designed specifically for the purpose of self-application. The effort, led by Neil D. Jones at the University of Copenhagen, eventually demonstrated that non-trivial compilers could be generated automatically by applying a partial evaluator to itself. The possibility, in theory, of such self-application had been known for more than a decade, but remained unrealized by the start of 1984. We describe the genesis of Mix, including the research environment, the challenges, and the main insights that led to success. We emphasize the critical role played by program annotation as a pre-processing step, later automated in the form of binding-time analysis.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":"16 7","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140510180","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
A Case Study in Functional Conversion and Mode Inference in miniKanren 迷你 Kanren 中的功能转换和模式推理案例研究
Ekaterina Verbitskaia, Igor Engel, Daniil Berezun
Many programs which solve complicated problems can be seen as inversions of other, much simpler, programs. One particular example is transforming verifiers into solvers, which can be achieved with low effort by implementing the verifier in a relational language and then executing it in the backward direction. Unfortunately, as it is common with inverse computations, interpretation overhead may lead to subpar performance compared to direct program inversion. In this paper we discuss functional conversion aimed at improving relational miniKanren specifications with respect to a known fixed direction. Our preliminary evaluation demonstrates a significant performance increase for some programs which exemplify the approach.
许多解决复杂问题的程序可以看作是其他简单得多的程序的逆转。其中一个特别的例子是将校验器转换为求解器,只需用关系型语言实现校验器,然后反向执行即可。遗憾的是,与直接程序反演相比,解释开销可能会导致性能不佳,这在反演计算中很常见。在本文中,我们讨论了功能转换问题,目的是针对已知的固定方向改进关系式微型坎伦规范。我们的初步评估表明,一些程序的性能有了显著提高,这些程序就是这种方法的范例。
{"title":"A Case Study in Functional Conversion and Mode Inference in miniKanren","authors":"Ekaterina Verbitskaia, Igor Engel, Daniil Berezun","doi":"10.1145/3635800.3636966","DOIUrl":"https://doi.org/10.1145/3635800.3636966","url":null,"abstract":"Many programs which solve complicated problems can be seen as inversions of other, much simpler, programs. One particular example is transforming verifiers into solvers, which can be achieved with low effort by implementing the verifier in a relational language and then executing it in the backward direction. Unfortunately, as it is common with inverse computations, interpretation overhead may lead to subpar performance compared to direct program inversion. In this paper we discuss functional conversion aimed at improving relational miniKanren specifications with respect to a known fixed direction. Our preliminary evaluation demonstrates a significant performance increase for some programs which exemplify the approach.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":"45 3","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140510198","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Complete Stream Fusion for Software-Defined Radio 软件定义无线电的完整码流融合
Tomoaki Kobayashi, Oleg Kiselyov
Strymonas is a code-generation--based library (embedded DSL) for fast, bulk, single-thread in-memory stream processing -- with the declarative description of stream pipelines and yet achieving the speed and memory efficiency of hand-written state machines. It guarantees complete stream fusion in all cases. So far, strymonas has been used on small examples and micro-benchmarks. In this work, we evaluate strymonas on a large, real-life application of Software-Defined Radio -- FM Radio reception, -- contrasting and benchmarking it against the synchronous dataflow system StreamIt, and the state-of-the art: GNU Radio. Strymonas, despite being declarative, single-thread single-core with no explicit support for SIMD, no built-in windowing or convolution, turns out to offer portable high performance, well enough for real-time FM Radio reception. It is on par with (or, on Raspberry Pi Zero, outstripping) GNU Radio, while providing static guarantees of complete fusion and type safety.
Strymonas 是一个基于代码生成的库(嵌入式 DSL),用于快速、批量、单线程内存流处理--具有流流水线的声明式描述,同时还能达到手写状态机的速度和内存效率。它能保证在任何情况下都能完成流融合。迄今为止,strymonas 一直用于小型实例和微型基准测试。在这项工作中,我们评估了 strymonas 在软件定义无线电(FM 无线电接收)的大型实际应用中的表现,并将其与同步数据流系统 StreamIt 和最先进的软件定义无线电系统进行对比和基准测试:GNU Radio。尽管 Strymonas 是声明式、单线程、单核心的,没有 SIMD 的明确支持,也没有内置窗口或卷积,但它提供了便携式的高性能,足以用于实时调频广播接收。它的性能与 GNU Radio 不相上下(在 Raspberry Pi Zero 上甚至超过了 GNU Radio),同时还提供了完全融合和类型安全的静态保证。
{"title":"Complete Stream Fusion for Software-Defined Radio","authors":"Tomoaki Kobayashi, Oleg Kiselyov","doi":"10.1145/3635800.3636962","DOIUrl":"https://doi.org/10.1145/3635800.3636962","url":null,"abstract":"Strymonas is a code-generation--based library (embedded DSL) for fast, bulk, single-thread in-memory stream processing -- with the declarative description of stream pipelines and yet achieving the speed and memory efficiency of hand-written state machines. It guarantees complete stream fusion in all cases. So far, strymonas has been used on small examples and micro-benchmarks. In this work, we evaluate strymonas on a large, real-life application of Software-Defined Radio -- FM Radio reception, -- contrasting and benchmarking it against the synchronous dataflow system StreamIt, and the state-of-the art: GNU Radio. Strymonas, despite being declarative, single-thread single-core with no explicit support for SIMD, no built-in windowing or convolution, turns out to offer portable high performance, well enough for real-time FM Radio reception. It is on par with (or, on Raspberry Pi Zero, outstripping) GNU Radio, while providing static guarantees of complete fusion and type safety.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":" 12","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139640476","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Partial Evaluation of Reversible Flowchart Programs 可逆流程图程序的部分评估
Louis Normann, Robert Glück
Flowchart languages are traditionally used to study the foundations of partial evaluation. This article presents a systematic and formal development of a method for partial evaluation of a reversible flowchart language. The results confirm that partial evaluation in this unconventional computing paradigm shows effects consistent with traditional partial evaluation. Experiments include specializing a symmetric encryption algorithm and a reversible interpreter for Bennett's reversible Turing machines. A defining feature of reversible languages is their invertibility. This study reports the first experiments composing program inversion and partial evaluation. The presented method is fully implemented. It is potentially of interest because reversible computing has found applications in areas as diverse as low-power computing, debugging, robotics, and quantum-inspired computing.
流程图语言历来被用来研究部分求值的基础。本文系统而正式地介绍了可逆流程图语言的部分求值方法。结果证实,这种非常规计算范式中的部分求值与传统部分求值的效果一致。实验包括对对称加密算法和贝内特可逆图灵机的可逆解释器进行专门化。可逆语言的一个决定性特征是其可逆性。本研究报告了首次将程序反转与部分评估相结合的实验。所介绍的方法已完全实现。可逆计算在低功耗计算、调试、机器人和量子启发计算等不同领域都有应用,因此它具有潜在的意义。
{"title":"Partial Evaluation of Reversible Flowchart Programs","authors":"Louis Normann, Robert Glück","doi":"10.1145/3635800.3636967","DOIUrl":"https://doi.org/10.1145/3635800.3636967","url":null,"abstract":"Flowchart languages are traditionally used to study the foundations of partial evaluation. This article presents a systematic and formal development of a method for partial evaluation of a reversible flowchart language. The results confirm that partial evaluation in this unconventional computing paradigm shows effects consistent with traditional partial evaluation. Experiments include specializing a symmetric encryption algorithm and a reversible interpreter for Bennett's reversible Turing machines. A defining feature of reversible languages is their invertibility. This study reports the first experiments composing program inversion and partial evaluation. The presented method is fully implemented. It is potentially of interest because reversible computing has found applications in areas as diverse as low-power computing, debugging, robotics, and quantum-inspired computing.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":"19 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140510331","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
An Intrinsically Typed Compiler for Algebraic Effect Handlers 代数效应处理程序的内在类型编译器
Syouki Tsuyama, Youyou Cong, Hidehiko Masuhara
A type-preserving compiler converts a well-typed input program into a well-typed output program. Previous studies have developed type-preserving compilers for various source languages, including the simply-typed lambda calculus and calculi with control constructs. Our goal is to realize type-preserving compilation of languages that have facilities for manipulating first-class continuations. In this paper, we focus on algebraic effects and handlers, a generalization of exceptions and their handlers with resumable continuations. Specifically, we choose an effect handler calculus and a typed stack-machine-based assembly language as the source and the target languages, respectively, and formalize the target language and a type preserving compiler. The main challenge posed by first-class continuation is how to ensure safety of continuation capture and resumption, which involves concatenation of unknown stacks. We solve this challenge by incorporating stack polymorphism, a technique that has been used for compilation from a language without first-class continuations to a stack-based assembly language. To prove that our compiler is type preserving, we implemented the compiler in Agda as a function between intrinsically typed ASTs. We believe that our contributions could lead to correct and efficient compilation of continuation-manipulating facilities in general.
类型保全编译器可将类型完备的输入程序转换为类型完备的输出程序。以前的研究已经为各种源语言开发了类型保持编译器,包括简单类型的 lambda 微积分和带有控制结构的计算。我们的目标是实现具有一流连续性操作设施的语言的类型保全编译。在本文中,我们将重点放在代数效应和处理程序上,这是异常及其处理程序与可重列连续性的概括。具体来说,我们选择一种效应处理程序微积分和一种基于堆栈机器的类型化汇编语言分别作为源语言和目标语言,并将目标语言和类型保持编译器形式化。一等续存带来的主要挑战是如何确保续存捕获和恢复的安全性,这涉及未知堆栈的连接。我们通过堆栈多态性解决了这一难题,堆栈多态性是一种用于从无一级连续性语言编译到基于堆栈的汇编语言的技术。为了证明我们的编译器是类型保留的,我们在 Agda 中将编译器作为内在类型 AST 之间的函数来实现。我们相信,我们的贡献将有助于正确、高效地编译一般的连续操作设施。
{"title":"An Intrinsically Typed Compiler for Algebraic Effect Handlers","authors":"Syouki Tsuyama, Youyou Cong, Hidehiko Masuhara","doi":"10.1145/3635800.3636968","DOIUrl":"https://doi.org/10.1145/3635800.3636968","url":null,"abstract":"A type-preserving compiler converts a well-typed input program into a well-typed output program. Previous studies have developed type-preserving compilers for various source languages, including the simply-typed lambda calculus and calculi with control constructs. Our goal is to realize type-preserving compilation of languages that have facilities for manipulating first-class continuations. In this paper, we focus on algebraic effects and handlers, a generalization of exceptions and their handlers with resumable continuations. Specifically, we choose an effect handler calculus and a typed stack-machine-based assembly language as the source and the target languages, respectively, and formalize the target language and a type preserving compiler. The main challenge posed by first-class continuation is how to ensure safety of continuation capture and resumption, which involves concatenation of unknown stacks. We solve this challenge by incorporating stack polymorphism, a technique that has been used for compilation from a language without first-class continuations to a stack-based assembly language. To prove that our compiler is type preserving, we implemented the compiler in Agda as a function between intrinsically typed ASTs. We believe that our contributions could lead to correct and efficient compilation of continuation-manipulating facilities in general.","PeriodicalId":516782,"journal":{"name":"Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation","volume":"36 11","pages":""},"PeriodicalIF":0.0,"publicationDate":"2024-01-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140510461","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Proceedings of the 2024 ACM SIGPLAN International Workshop on Partial Evaluation and Program Manipulation
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1