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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Chen, W. Parallel Distributed Graph Reduction of Falafel. M.Sc. Thesis, University of Saskatchewan, 1990.
Gammo, L. Array-Based Parallelism for Fine-Grained SIMD Machines M.Sc. Thesis, University of Saskatchewan, 1988.
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.
Hudak, P. Report on the Programming Language Haskell, Version 1.0. Technical Report YALEU/DCS/RR-777, Yale University, April, 1990.
Iverson, K.E. A Programming Language. Wiley, New York, 1962.
Jenkins, M. A., and Jenkins, W. Q’Nial Reference Manual. Brown & Martin, Kingston, Canada, 1986.
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.
McCrosky, C. Intermediate Container Removal.Computer Languages, to appear, 1990.
McCrosky, C. and Dutta, D. A type-theoretic semantics of arrays. Applied Mathematics Letters 3(1), pp 83–87, 1990.
McCrosky, C. and Sailor, K. Partially Defined Arrays. submitted for publication, 1990.
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.
Nikhil, R.S. Id Version 88.1 Reference Manual. Computation Structures Group Memo 284, M.I.T. Cambridge, August, 1988.
Peyton Jones, S. The Implementation of Functional Programming Languages. Prentice-Hall, London, 1987.
Sailor, K. First-Class Arrays in Falafel. M.Sc. Thesis, University of Saskatchewan, 1990.
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.)
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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