计算机科学 > 编程语言
[提交于 2024年8月26日
(v1)
,最后修订 2025年9月26日 (此版本, v3)]
标题: 守卫分析和安全擦除渐进类型系统:Elixir 的类型系统
标题: Guard Analysis and Safe Erasure Gradual Typing: a Type System for Elixir
摘要: 我们为Elixir定义了一种新的类型系统,Elixir是一种在Erlang虚拟机上运行的日益流行的动态类型函数式编程语言。 我们的系统结合了渐进类型和语义子类型,以实现精确、安全且实用的静态类型分析,而无需对Elixir的编译流程或运行时进行任何更改。 通过利用运行时检查来确保类型安全性——包括来自Erlang VM的隐式检查以及通过开发者编写的guards的显式检查。 我们方法的核心是两个关键创新: "强函数" 的概念,即使应用于可能超出其预期域的输入,也可以分配精确的类型;以及对guards的细粒度分析,这使得对case表达式和带guards的函数定义进行准确的类型细化成为可能。 虽然类型信息在执行前被擦除,并且编译器不使用它,但我们的“安全擦除”渐进类型策略在不损害兼容性或性能的情况下保持了安全性和表达性。 这项工作为Elixir的新类型系统奠定了理论基础,概述了其在最近版本语言中的集成,并在大规模工业代码库中证明了其有效性。
文献和引用工具
与本文相关的代码,数据和媒体
alphaXiv (什么是 alphaXiv?)
CatalyzeX 代码查找器 (什么是 CatalyzeX?)
DagsHub (什么是 DagsHub?)
Gotit.pub (什么是 GotitPub?)
Hugging Face (什么是 Huggingface?)
带有代码的论文 (什么是带有代码的论文?)
ScienceCast (什么是 ScienceCast?)
演示
推荐器和搜索工具
arXivLabs:与社区合作伙伴的实验项目
arXivLabs 是一个框架,允许合作伙伴直接在我们的网站上开发和分享新的 arXiv 特性。
与 arXivLabs 合作的个人和组织都接受了我们的价值观,即开放、社区、卓越和用户数据隐私。arXiv 承诺这些价值观,并且只与遵守这些价值观的合作伙伴合作。
有一个为 arXiv 社区增加价值的项目想法吗? 了解更多关于 arXivLabs 的信息.