arrow
返回

Heapless Functional Programming

delete2026-01-01
delete0
PRE
AI
E
Ellis Kesterton *
E
Edwin Brady
DOI:10.1007/978-3-031-99751-8_4delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
类型化函数式编程语言(如Haskell和OCaml)在运行时大量使用堆内存。这使得它们在很大程度上不适合系统编程,因为系统编程中资源有限且程序通常需要在裸机上运行。本文展示了如何将一种(稍加限制的)高级纯函数式语言编译为完全不使用堆的机器代码。尽管通常需要堆内存,但诸如高阶函数、多态和类型类等特性均由表层语言支持。这是通过部分求值[12]实现的:通过在编译时仔细简化程序,我们可以完全消除这些高级特性,得到一个可以轻松编译为基于栈的机器代码的剩余程序。本文描述了该部分求值器的运行机制,论证了其设计合理性,并介绍了一种新型类型系统,该系统可确保部分求值器始终成功移除所有使用堆的特性。
Keyword:
functional programming
partial evaluation
heap-free compilation
type system
stack-based code

期刊

T
TRENDS IN FUNCTIONAL PROGRAMMING, TFP 2025
IF:
0
论文数:
20
被引数:
0

机构

U
university of st andrews
学者数:
9.5K
论文数: 1.0W
被引数: 15
引用论文

引用论文

err分享
err收藏
err
IF0
err
err0
PREAI
err
err分享
err收藏
Linear Haskell: practical linearity in a higher-order polymorphic language
err2017-12-27
err0
errOAAI
errJean-Philippe Bernardy; Mathieu Boespflug; Ryan R. Newton; Simon Peyton Jones; Arnaud Spiwack
err分享
err收藏
The Simple Essence of Monomorphization
err2025-04-09
err0
PREAI
errLutze,Matthew; Schuster,Philipp; Brachthäuser,Jonathan Immanuel
err分享
err收藏
Efficient compilation of algebraic effect handlers
err2021-10-20
err0
PREAI
errKarachalias,Georgios; Koprivec,Filip; Pretnar,Matija; Schrijvers,Tom
err分享
err收藏
Kinds are calling conventions
err2020-08-02
err0
PREAI
errDownen,Paul; Ariola,Zena M.; Peyton Jones,Simon; Eisenberg,Richard A.
err分享
err收藏
学者 查看更多内容