Logotype Mälardalenn University

MRTC publications



Elemental Function Overloading in Explicitly Typed Languages

Full text:
Authors: Claes Thornberg (external), Björn Lisper
Source: Proc. 12th International Workshop of Implementation of Functional Languages, p 31-46, Aachen, Germany, Editor(s):Markus Mohnen, Pieter Koopman
 

Abstract

Elemental intrinsic overloading is used successfully in vector parallel and data parallel programming languages. It allows scalar operators to be applied to arguments of array type, where the semantics is a new array where every element is the result of applying the operator to the corresponding elements of the argument array. This type of overloading makes programs with extensive use of array operations easier to read, write and maintain. However, it is typically restricted to allow overloading only of built-in functions and defined only for operators on one parallel data type, mostly arrays. In order to extend this feature to a larger class of languages, we propose elemental function overloading together with a polymorphic type discipline. Elemental function overloading, which is defined for all functions, also incorporates promotion of "scalar" values. In this paper we formalize the concept of elemental functional overloading in an explicitly typed polymorphic language and present an algorithm for resolving this overloading. We also make a preliminary study of elemental function overloading in an implicitly typed polymorphic language with type inference.
 

BibTeX entry

@inproceedings{Thornberg_0245:2000,
   author = {Claes Thornberg and Bj{\"o}rn Lisper},
   title = {Elemental Function Overloading in Explicitly Typed Languages},
   booktitle = {Proc. 12th International Workshop of Implementation of Functional Languages},
   month = {September},
   year = {2000},
   pages = {31-46},
   editor = {Markus Mohnen, Pieter Koopman},
   url = {http://www.mrtc.mdh.se/index.php?choice=publications&id=0245},
}

  • Mälardalen University |
  • Box 883 |
  • 721 23 Västerås/Eskilstuna |
  • 021-101300, 016-153600 |
  • webmaster |
  • Latest update: 2012.08.24