Skip to main content

Array Languages

  • Reference work entry
  • 269 Accesses

Definition

An array language is a programming language that supports the manipulation of entire arrays – or portions of arrays – as a basic unit of operation.

Discussion

Array languages provide two primary benefits: (1) They raise the level of abstraction, providing conciseness and programming convenience; (2) they provide a natural source of data parallelism, because the multiple elements of an array can typically be manipulated concurrently. Both benefits derive from the removal of control flow. For example, the following array statement assigns each element of the B array to its corresponding element in the A array:

$${\rm A : = B;}$$

This same expression could be expressed in a scalar language using an explicit looping construct:

$$\begin{array}{l} {\rm for \, i : = 1 \, to \, n} \\ \quad {\rm for \, j : = 1 \, to \, n} \\ \quad\quad {\rm A[i] \, [j] : = B[i] \, [j];} \\ \end{array}$$

The array statement is conceptually simpler because it removes the need to iterate over individual...

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   1,600.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Hardcover Book
USD   1,799.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Bibliography

  1. Adams JC, Brainerd WS, Martin JT, Smith BT, Wagener JL (1992) Fortran 90 handbook. McGraw-Hill, New York

    Google Scholar 

  2. Blelloch G (1996) Programming parallel algorithms. Comm ACM 39(3):85–97

    Article  Google Scholar 

  3. Blelloch GE (1992) NESL: a nested data-parallel language. Technical Report CMUCS-92-103, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA, January 1992

    Google Scholar 

  4. Chamberlain BL (2001) The design and implementation of a region-based parallel language. PhD thesis, University of Washington, Department of Computer Science and Engineering, Seattle, WA

    Google Scholar 

  5. Chamberlain BL, Callahan D, Zima HP (2007) Parallel programmability and the Chapel language. Int J High Perform Comput Appl 21(3):291–312

    Article  Google Scholar 

  6. Ebcioglu K, Saraswat V, Sarkar V (2004) X10: programming for hierarchical parallelism and non-uniform data access. In: International Workshop on Language Runtimes, OOPSLA 2004, Vancouver, BC

    Google Scholar 

  7. Amos Gilat (2003) MATLAB: an introduction with applications, 2nd edn. Wiley, New York

    Google Scholar 

  8. Hatcher PJ, Quinn MJ (1991) Data-parallel programming on MIMD computers. MIT Press, Cambridge, MA

    MATH  Google Scholar 

  9. Hilfinger PN, Colella P (1988) FIDIL: a language for scientific programming. Technical Report UCRL-98057, Lawrence Livermore National Laboratory, Livermore, CA, January 1988

    Google Scholar 

  10. Iverson K (1962) A programming language. Wiley, New York

    MATH  Google Scholar 

  11. Ladner RE, Fischer MJ (1980) Parallel prefix computation. JACM 27(4):831–838

    Article  MATH  MathSciNet  Google Scholar 

  12. Lin C, Snyder L (1993) ZPL: an array sublanguage. In: Banerjee U, Gelernter D, Nicolau A, Padua D (eds) Languages and compilers for parallel computing. Springer-Verlag, New York, pp 96–114

    Google Scholar 

  13. Rose JR, Steele Jr GL (1987) \({\textrm{ C}}^{{_\ast}}\): an extended C language for data parallel programming. In: 2nd International Conference on Supercomputing, Santa Clara, CA, March 1987

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer Science+Business Media, LLC

About this entry

Cite this entry

Lin, C. (2011). Array Languages. In: Padua, D. (eds) Encyclopedia of Parallel Computing. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-09766-4_25

Download citation

Publish with us

Policies and ethics