重新审视泛型编程的语言支持:当泛型性是核心设计目标
摘要:通用编程:一种根据底层数据类型和操作的必需属性来编写高效且可重用算法的方法。在支持通用编程的语言中,通用编程已被证明是构建可重用软件组件库的有效手段。与通用编程相关的语言设计选择在实践中对通用编程具有重要作用。现有文献主要集中在将通用编程后期植入现有语言并确定相关实现挑战的研究。当在具有通用编程设计但没有先前语言设计限制的语言中进行编程时,编程体验是否更好或不同? 方法:我们研究了一种旨在体现通用编程的语言Magnolia。Magnolia代表了一种基于代数规范的语言设计方法。我们重复了一个著名的实验,通过实现Boost Graph Library的一个子集来审查Magnolia的通用编程工具,并反思我们的开发经验。 知识:我们发现先前研究和工作中确定为支持Stepanov风格通用编程的重要特征的习惯用法并没有讲述完整的故事。我们澄清了其中哪些更多是手段,而不是支持通用编程的基本特征。基于与Magnolia的开发经验,我们确定了可变参数作为通用编程的一个附加关键特征,并指出通用性的属性限制和挑战。 基础:我们使用了一种众所周知的评估语言通用编程工具的框架,通过Magnolia评估代数方法,并与众所周知的编程语言进行比较。 重要性:这项工作为通用编程提供了新的视角,并澄清了在考虑支持Stepanov风格通用编程时基本的语言属性及其权衡。对如何为通用编程奠定基础的理解将指导未来的语言设计。
作者:Benjamin Chetioui (University of Bergen, Norway), Jaakko J"arvi (University of Turku, Finland), Magne Haveraaen (University of Bergen, Norway)
论文ID:2211.01678
分类:Programming Languages
分类简称:cs.PL
提交时间:2022-11-04