Show simple item record

dc.contributor.authorChen, Jiahao
dc.contributor.authorKarpinski, Stefan
dc.contributor.authorShah, Viral
dc.contributor.authorEdelman, Alan
dc.contributor.authorBezanson, Jeffrey Werner
dc.date.accessioned2015-01-14T17:01:43Z
dc.date.available2015-01-14T17:01:43Z
dc.date.issued2014-06
dc.identifier.isbn9781450329378
dc.identifier.urihttp://hdl.handle.net/1721.1/92858
dc.description.abstractArrays 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.en_US
dc.description.sponsorshipMassachusetts Institute of Technology. Deshpande Centeren_US
dc.description.sponsorshipIntel Corporation (Science and Technology Award)en_US
dc.description.sponsorshipVMware (Firm)en_US
dc.description.sponsorshipCitibanken_US
dc.description.sponsorshipHorizontal Software (Fellowship in Computational Engineering)en_US
dc.description.sponsorshipNational Science Foundation (U.S.) (DMS-1035400)en_US
dc.language.isoen_US
dc.publisherAssociation for Computing Machinery (ACM)en_US
dc.relation.isversionofhttp://dx.doi.org/10.1145/2627373.2627383en_US
dc.rightsCreative Commons Attribution-Noncommercial-Share Alikeen_US
dc.rights.urihttp://creativecommons.org/licenses/by-nc-sa/4.0/en_US
dc.sourcearXiven_US
dc.titleArray Operators Using Multiple Dispatch: A design methodology for array implementations in dynamic languagesen_US
dc.typeArticleen_US
dc.identifier.citationJeff Bezanson, Jiahao Chen, Stefan Karpinski, Viral Shah, and Alan Edelman. 2014. Array Operators Using Multiple Dispatch: A design methodology for array implementations in dynamic languages. In Proceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming (ARRAY '14). ACM, New York, NY, USA, 56-61, 6 pages.en_US
dc.contributor.departmentMassachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratoryen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Electrical Engineering and Computer Scienceen_US
dc.contributor.departmentMassachusetts Institute of Technology. Department of Mathematicsen_US
dc.contributor.mitauthorBezanson, Jeffrey Werneren_US
dc.contributor.mitauthorChen, Jiahaoen_US
dc.contributor.mitauthorKarpinski, Stefanen_US
dc.contributor.mitauthorShah, Viralen_US
dc.contributor.mitauthorEdelman, Alanen_US
dc.relation.journalProceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming (ARRAY '14)en_US
dc.eprint.versionAuthor's final manuscripten_US
dc.type.urihttp://purl.org/eprint/type/JournalArticleen_US
eprint.statushttp://purl.org/eprint/status/PeerRevieweden_US
dspace.orderedauthorsBezanson, Jeff; Chen, Jiahao; Karpinski, Stefan; Shah, Viral; Edelman, Alanen_US
dc.identifier.orcidhttps://orcid.org/0000-0001-7676-3133
mit.licenseOPEN_ACCESS_POLICYen_US
mit.metadata.statusComplete


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record