Skip to main content

Abstract

Falafel, a functional programming language with first-class arrays, is being developed at the University of Saskatchewan. It is an experimental vehicle for work in language definition and implementation. This paper discusses some of the fundamental design decisions that underlie the language and its implementations. Falafel has drawn ideas from array-based programming languages (APL [Iverson] and Nial [Jenkins]_[More]), functional programming languages (Miranda™ [Turner] and Haskell [Haskell]), and dataflow programming languages (Id [Nikhil]_and Sisal [Sisal]). This paper discusses the nature of Falafel’s value space, the structure of arrays, the role of strong polymorphic typing, the use of lazy evaluation, and a means of partial definition of arrays. A full definition of Falafel is to be published separately.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Chen, W. Parallel Distributed Graph Reduction of Falafel. M.Sc. Thesis, University of Saskatchewan, 1990.

    Google Scholar 

  2. Gammo, L. Array-Based Parallelism for Fine-Grained SIMD Machines M.Sc. Thesis, University of Saskatchewan, 1988.

    Google Scholar 

  3. Feo, J. T., Cann, D.C, and Oldehoeft, R. R. A Report on the Sisal Language Project Submitted to the Journal of Parallel and Distributed Computing from the Lawrence Livermore National Laboratory, Jan, 1990.

    Google Scholar 

  4. Hudak, P. Report on the Programming Language Haskell, Version 1.0. Technical Report YALEU/DCS/RR-777, Yale University, April, 1990.

    Google Scholar 

  5. Iverson, K.E. A Programming Language. Wiley, New York, 1962.

    MATH  Google Scholar 

  6. Jenkins, M. A., and Jenkins, W. Q’Nial Reference Manual. Brown & Martin, Kingston, Canada, 1986.

    Google Scholar 

  7. McCrosky, C. The elimination of intermediate containers in the evaluation of first-class array expressions. IEEE International Conference on Computer Languages, Miami, October, 1988, pp 135–142.

    Google Scholar 

  8. McCrosky, C. Intermediate Container Removal.Computer Languages, to appear, 1990.

    Google Scholar 

  9. McCrosky, C. and Dutta, D. A type-theoretic semantics of arrays. Applied Mathematics Letters 3(1), pp 83–87, 1990.

    Article  MathSciNet  Google Scholar 

  10. McCrosky, C. and Sailor, K. Partially Defined Arrays. submitted for publication, 1990.

    Google Scholar 

  11. More, T. Notes on the diagrams, logic, and operations of array theory. Structures and Operations in Engineering and Management Systems. Bjorke and Franksen, eds., Tapir Publishers, Trondheim, Norway, 1981.

    Google Scholar 

  12. Nikhil, R.S. Id Version 88.1 Reference Manual. Computation Structures Group Memo 284, M.I.T. Cambridge, August, 1988.

    Google Scholar 

  13. Peyton Jones, S. The Implementation of Functional Programming Languages. Prentice-Hall, London, 1987.

    MATH  Google Scholar 

  14. Sailor, K. First-Class Arrays in Falafel. M.Sc. Thesis, University of Saskatchewan, 1990.

    Google Scholar 

  15. Turner. D. A. Miranda: A non-strict functional language with polymorphic types. In Proceedings of JPIP Conference on Functional Programming & Computer Architecture. Springer-Verlag, LNCS #201, Berlin, 1985. Miranda is a trademark of Research Software Ltd.)

    Google Scholar 

  16. ven der Buhs, B. Typical Element Algebra of Arrays: A Formulation of Intermediate Container Removal. M.Sc. Thesis, Dept. of Computational Science, Univ. of Saskatchewan, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1991 Springer Science+Business Media New York

About this chapter

Cite this chapter

McCrosky, C., Roy, K., Sailor, K. (1991). Falafel: Arrays in a Functional Language. In: Mullin, L.M.R., Jenkins, M., Hains, G., Bernecky, R., Gao, G. (eds) Arrays, Functional Languages, and Parallel Systems. Springer, Boston, MA. https://doi.org/10.1007/978-1-4615-4002-1_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4615-4002-1_6

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4613-6789-5

  • Online ISBN: 978-1-4615-4002-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics