Naira: A parallel 2Haskell compiler

  • Sahalu Junaidu
  • Antony Davie
  • Kevin Hammond
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1467)


Naira is a compiler for a parallel dialect of Haskell, compiling to a graph-reducing parallel abstract machine with a strong dataflow influence. Unusually (perhaps even uniquely), Naira has itself been parallelised using state-of-the-art tools developed at Glasgow and St Andrews Universities. Thus Naira is a parallel, parallelising compiler in one. This paper reports initial performance results that have been obtained using the GranSim simulator, both for the top-level pipeline and for individual compilation stages. We show that a modest but useful degree of parallelism can be achieved even for a distributed-memory machine. The simulation results have been verified on a network of distributed workstations using the GUM parallel implementation of Haskell.


Parse Tree Functional Programming Parallel Task Type Inference Functional Language 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    L Augustsson, M Rittri and D Synek, “On Generating Unique Names”,. Journal of Functional Programming, 4(1), pp. 117–123, January, 1994.Google Scholar
  2. 2.
    K Hammond, CV Hall, H-W Loidl and PW Trinder, “Parallel Cost Centre Profiling”,. In 1997 Glasgow Workshop on Functional Programming, Ullapool, Scotland, September 1997.Google Scholar
  3. 3.
    K Hammond, H-W Loidl and AS Partridge, “Visualising Granularity in Parallel Programs: A Graphical Winnowing System for Haskell”,. In HPFC'95—Conf. on High Performance Functional Computing, pp. 208–221, Denver, CO, April 10–12, 1995.Google Scholar
  4. 4.
    P Hudak, SL Peyton Jones, and PL Wadler (eds.), “Report on the Programming Language Haskell Version 1.2”,. ACM SIGPLAN Notices 27(5), May 1992.Google Scholar
  5. 5.
    K Hammond, “Efficient Type Inference Using Monads”,. In Proceedings, 1990 Glasgow FP Workshop, Ullapool, Scotland, August 1990.Google Scholar
  6. 6.
    T Johnsson, Compiling Lazy Functional Languages. Ph.D. Thesis, Department of Computer Science, Chalmers University of Technology, Gothenborg, Sweden, 1987.Google Scholar
  7. 7.
    S Junaidu, A Parallel Functional Language Compiler for Message Passing Multicomputers. Forthcoming PhD thesis, School of Mathematical and Computational Sciences, St Andrews University, Scotland, 1998.Google Scholar
  8. 8.
    H-W Loidl, “GranSim User's Guide, Version 0.03”,. Department of Computing Science, University of Glasgow, July 1996.Google Scholar
  9. 9.
    EGJMH Nöcker, JEW Smetsers, MCJD van Eekelen and MJ Plasmeijer, “Concurrent Clean”,. In Proc. PARLE '91, Springer-Verlag LNCS 506, pp. 202–219.Google Scholar
  10. 10.
    G Ostheimer, Parallel Functional Programming for Message Passing Multiprocessors. PhD Thesis, Department of Mathematical and Computational Sciences, St. Andrews University, Scotland, 1993.Google Scholar
  11. 11.
    SL Peyton Jones, The Implementation of Functional Programming Languages. Prentice Hall International, 1987.Google Scholar
  12. 12.
    SL Peyton Jones, “Implementing Functional Languages on Stock Hardware: the Spineless Tagless G-machine”,. Journal of Functional Programming, 2(2), pp. 127–202, 1992.CrossRefGoogle Scholar
  13. 13.
    SL Peyton Jones, D Lester, Implementing Functional Languages: A Tutorial. Prentice Hall International, 1991.Google Scholar
  14. 14.
    PM Sansom and SL Peyton Jones, “Time and Space Profiling for Non-strict Higher Order Functional Languages”,. In Proc. 22nd ACM Symposium on Principles of Programming Languages, San Francisco, California, January 1995.Google Scholar
  15. 15.
    S Skedzielewski, “Sisal”,. In Parallel Functional Languages and Compilers, Frontier Series, ACM Press, New York 1991.Google Scholar
  16. 16.
    PW Trinder, K Hammond, H-W Loidl, SL Peyton Jones, and J Wu, “A Case Study of Data-intensive Programs in Parallel Haskell”,. In Proc. 1996 Glasgow Workshop on Functional Programming 1996, Ullapool, Scotland, July 8–10.Google Scholar
  17. 17.
    PW Trinder, K Hammond, JS Mattson Jr., AS Partridge and SL Peyton Jones, “GUM: A Portable Parallel Implementation of Haskell”,. In PLDI '96 — Programming Languages Design and Implementation, pp. 78–88, Philadelphia, PA, May 1996.Google Scholar
  18. 18.
    PW Trinder, K Hammond, HW Loidl and SL Peyton Jones “Algorithm + Strategy = Parallelism”,. In Journal of Functional Programming, 8(1), January, 1998.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Sahalu Junaidu
    • 1
  • Antony Davie
    • 1
  • Kevin Hammond
    • 1
  1. 1.Division of Computer ScienceUniversity of St. AndrewsUK

Personalised recommendations