An ML-Style Module System for Cross-Stage Type Abstraction in Multi-stage Programming

Author:

Suwa TakashiORCID,Igarashi AtsushiORCID

Abstract

AbstractWe propose MetaFM, a novel ML-style module system that enables users to decompose multi-stage programs (i.e., programs written in a typed multi-stage programming language) into loosely coupled components in a manner natural with respect to type abstraction. The distinctive aspect of MetaFM is that it allows values at different stages to be bound in a single structure (i.e., $$ \textbf{struct} \ \cdots \ \textbf{end} $$ struct end ). This feature is crucial, for example, for defining a function and a macro that use one abstract type in common, without revealing the implementation detail of that type. MetaFM also accommodates functors, higher-kinded types, the $$\textbf{with} \ \textbf{type} $$ with type -construct, etc. with staging features. For defining semantics and proving type safety, we employ an elaboration technique, i.e., type-directed translation to a target language, inspired by the formalization of F-ing Modules. Specifically, we give a set of elaboration rules for converting MetaFM programs into System F$$\omega ^{\langle \rangle }$$ ω , a multi-stage extension of System F$$\omega $$ ω , and prove that the elaboration preserves typing. Additionally, our language supports cross-stage persistence (CSP), a feature for code reuse spanning more than one stage, without breaking type safety.

Publisher

Springer Nature Singapore

Reference38 articles.

1. Bochao, L., Ohori, A.: A flattening strategy for SML module compilation and its implementation. Inf. Media Technol. 5(1), 58–76 (2010)

2. Calcagno, C., Moggi, E., Sheard, T.: Closed types for a safe imperative MetaML. J. Funct. Program. 13(3), 545–571 (2003)

3. Crary, K.: Fully abstract module compilation. Proc. ACM Program. Lang. 3(POPL), 1–29 (2019)

4. Crary, K.: A focused solution to the avoidance problem. J. Funct. Program. 30, e24 (2020)

5. Davies, R.: A temporal-logic approach to binding-time analysis. In: Proceedings of the 11th Annual IEEE Symposium on Logic in Computer Science, LICS 1996, USA, p. 184. IEEE Computer Society (1996)

Cited by 1 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Staged Compilation with Module Functors;Proceedings of the ACM on Programming Languages;2024-08-15

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3