Single Assignment C: efficient support for high-level array operations in a functional setting

Single Assignment C: efficient support for high-level array operations in a functional setting
复制标题

单赋值 C:在功能设置中有效支持高级数组操作

DOI:
--
复制
发表时间:
2003
影响因子:
1.1
通讯作者:
S. Scholz
S. Scholz
中科院分区:
计算机科学2区
文献类型:
--
作者:
S. Scholz

文献摘要

被引文献

相似文献

本文提出了一种将访问时间 ${cal O}$(1) 的数组集成到函数式语言中的新颖方法。它引入了与类型系统相结合的 n 维数组,该类型系统支持具有不同形状信息的数组类型的层次结构以及称为WITH-loop 的数组理解的形状不变形式。这些结构共同实现了类似于 APL 等数组编程语言的编程风格。我们使用单赋值 C (SAC),这是一种函数式 C 变体,旨在基于所提出的设计,针对数值应用程序,以证明以这种风格编写的程序可以编译为运行时性能与手动优化的 Fortran 程序相媲美的代码。然而,此类性能数据的基本先决条件是集成在类型系统中的形状推理系统以及一些高级优化。其中最值得注意的是 With Loop Folding,这是一种消除中间数组的优化技术。
This paper presents a novel approach for integrating arrays with access time ${cal O}$(1) into functional languages. It introduces n-dimensional arrays combined with a type system that supports hierarchies of array types with varying shape information as well as a shape-invariant form of array comprehension called WITH-loop. Together, these constructs allow for a programming style similar to that of array programming languages such as APL. We use Single Assignment C (SAC), a functional C-variant aimed at numerical applications that is based on the proposed design, to demonstrate that programs written in that style can be compiled to code whose runtime performance is competitive with that of hand-optimized Fortran programs. However, essential prerequisites for such performance figures are a shape inference system integrated in the type system as well as several high-level optimizations. Most notably of these is With Loop Folding, an optimization technique for eliminating intermediate arrays.