Array-Structured Object Types for Mathematical Programming

  • Felix Friedrich
  • Jürg Gutknecht
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4228)


In this paper a concept for structured mathematical programming within an object-oriented language is presented. It leads to better readable, more natural and more compact code in typical linear algebra applications and provides options for optimized implementation. We also discuss the realization of this concept as an extension of the programming language Active Oberon.

We define new built-in array types that provide a slight modification of classical arrays in Oberon. By introducing range-valued indices as array designators, we permit the use of regular sub-domains of arrays as parameters of operators and procedures. The built-in types are complemented by custom array structured object types. The latter can be specified by the programmer and are designed to be syntactically compatible with the former. They provide the needed flexibility for the language.


Dimensional Array Language Construct Array Type Sparse Array Dynamic Array 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Whaley, R.C., Petitet, A.: Minimizing development and maintenance costs in supporting persistently optimized BLAS. Software: Practice and Experience 35(2), 101–121 (2005)CrossRefGoogle Scholar
  2. 2.
    Whaley, R.C., Petitet, A., Dongarra, J.J.: Automated empirical optimizations of software and the ATLAS project. Parallel Computing 27(1–2), 3–35 (2001)MATHCrossRefGoogle Scholar
  3. 3.
    Chamberlain, B.L., Snyder, L.: Array language support for parallel sparse computation. In: Proceedings of the 15th international conference on Supercomputing, Sorrento, Italy, pp. 133–145. ACM Press, New York (2001)CrossRefGoogle Scholar
  4. 4.
    Specification of the Programming language Chapel, from:
  5. 5.
    Chamberlain, B.L.: The Design and Implementation of a Region-Based Parallel Language, Ph.D thesis, University of Washington (2001)Google Scholar
  6. 6.
    Silva, M., Wait, R.: Cache Aware Data Layouts. In: IITC 2000, Colombo (January 2001)Google Scholar
  7. 7.
    Silva, M., Wait, R.: Go for Both types of Data Locality! HPCAsia, Bangalore (December 2002)Google Scholar
  8. 8.
    Silva, A.: Sparse matrix storage revisited. In: Proceedings of the 2nd conference on Computing frontiers, Ischia, Italy, pp. 230–235 (2005)Google Scholar
  9. 9.
  10. 10.
    R Language Definition and Introduction on:
  11. 11.
    Januschke, P.: Oberon-XSC – Eine Programmiersprache und Arithmetikbibliothek für das Wissenschaftliche Rechnen, Ph.D Thesis, Universität Karlsruhe (1998)Google Scholar
  12. 12.
    Griesemer, R.: A Programming Language for Vector Computers, Ph.D Thesis, ETH Zürich (1993)Google Scholar
  13. 13.
    Mösli, B.: A Comparison of C++, FORTRAN 90 and Oberon-2 for Scientific Programming. In: Huber-Wäschle, F., Schauer, H., Widmayer, P. (eds.) GISI 1995, pp. 740–748. Springer, Heidelberg (1995)Google Scholar
  14. 14.
    Baumgartner, M.: Erweiterung des Active Oberon Compilers und Software Entwicklungssystems im Hinblick auf die Ausnutzung der Intel SSE2 Vektoroperationen für mathematische Anwendungen, Diploma Thesis, ETH Zürich (2003)Google Scholar
  15. 15.
    Morelli, R.: Integration of OberonX in Oberon, Diploma Thesis, ETH Zürich (1997)Google Scholar
  16. 16.
    Sawitzki, G.: Extensible Statistical Software: On a Voyage to Oberon. J. Computational and Graphical Statistics 5(3), 263–283 (1996)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Felix Friedrich
    • 1
  • Jürg Gutknecht
    • 1
  1. 1.Computer Systems InstituteETH ZürichSwitzerland

Personalised recommendations