首页> 外文OA文献 >Array Operators Using Multiple Dispatch: A design methodology for array implementations in dynamic languages
【2h】

Array Operators Using Multiple Dispatch: A design methodology for array implementations in dynamic languages

机译:使用多个调度的数组运算符:动态语言中数组实现的设计方法

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。
获取外文期刊封面目录资料

摘要

Arrays are such a rich and fundamental data type that they tend to be built into a language, either in the compiler or in a large low-level library. Defining this functionality at the user level instead provides greater flexibility for application domains not envisioned by the language designer. Only a few languages, such as C++ and Haskell, provide the necessary power to define n-dimensional arrays, but these systems rely on compile-time abstraction, sacrificing some flexibility. In contrast, dynamic languages make it straightforward for the user to define any behavior they might want, but at the possible expense of performance.As part of the Julia language project, we have developed an approach that yields a novel trade-off between flexibility and compile-time analysis. The core abstraction we use is multiple dispatch. We have come to believe that while multiple dispatch has not been especially popular in most kinds of programming, technical computing is its killer application. By expressing key functions such as array indexing using multi-method signatures, a surprising range of behaviors can be obtained, in a way that is both relatively easy to write and amenable to compiler analysis. The compact factoring of concerns provided by these methods makes it easier for user-defined types to behave consistently with types in the standard library.
机译:数组是如此丰富且基本的数据类型,以至于它们倾向于在编译器或大型低级库中内置于一种语言中。相反,在用户级别定义此功能可为语言设计人员未想到的应用程序域提供更大的灵活性。只有少数几种语言(例如C ++和Haskell)提供定义n维数组所需的功能,但是这些系统依赖于编译时抽象,从而牺牲了一些灵活性。相比之下,动态语言使用户可以轻松地定义他们可能想要的任何行为,但要以牺牲性能为代价。作为Julia语言项目的一部分,我们开发了一种方法,可以在灵活性和灵活性之间做出新的取舍。编译时分析。我们使用的核心抽象是多重调度。我们已经相信,尽管在大多数程序设计中多重调度并不是特别流行,但技术计算却是其杀手级应用。通过使用多方法签名来表达诸如数组索引之类的关键功能,可以以相对容易编写且易于编译器分析的方式获得令人惊讶的行为范围。这些方法提供的紧凑的关注点分解使用户定义的类型与标准库中的类型一致的行为变得更加容易。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号