skip to main content
Skip header Section
Implicit parallel programming in pHJune 2001
Publisher:
  • Morgan Kaufmann Publishers Inc.
  • 340 Pine Street, Sixth Floor
  • San Francisco
  • CA
  • United States
ISBN:978-1-55860-644-9
Published:01 June 2001
Pages:
508
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. ACM
    Ertel S, Fetzer C and Felber P Ohua Proceedings of the Principles and Practices of Programming on The Java Platform, (51-64)
  2. ACM
    Sivaramakrishnan K, Ziarek L, Prasad R and Jagannathan S Lightweight asynchrony using parasitic threads Proceedings of the 5th ACM SIGPLAN workshop on Declarative aspects of multicore programming, (63-72)
  3. ACM
    Chambers C, Raniwala A, Perry F, Adams S, Henry R, Bradshaw R and Weizenbaum N FlumeJava Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation, (363-375)
  4. ACM
    Chambers C, Raniwala A, Perry F, Adams S, Henry R, Bradshaw R and Weizenbaum N (2010). FlumeJava, ACM SIGPLAN Notices, 45:6, (363-375), Online publication date: 12-Jun-2010.
  5. ACM
    Marlow S, Maier P, Loidl H, Aswad M and Trinder P Seq no more Proceedings of the third ACM Haskell symposium on Haskell, (91-102)
  6. ACM
    Marlow S, Maier P, Loidl H, Aswad M and Trinder P (2010). Seq no more, ACM SIGPLAN Notices, 45:11, (91-102), Online publication date: 17-Nov-2010.
  7. Fluet M, Rainey M, Reppy J and Shaw A (2010). Implicitly threaded parallelism in manticore, Journal of Functional Programming, 20:5-6, (537-576), Online publication date: 1-Nov-2010.
  8. ACM
    Marlow S, Peyton Jones S and Singh S Runtime support for multicore Haskell Proceedings of the 14th ACM SIGPLAN international conference on Functional programming, (65-78)
  9. ACM
    Marlow S, Peyton Jones S and Singh S (2009). Runtime support for multicore Haskell, ACM SIGPLAN Notices, 44:9, (65-78), Online publication date: 31-Aug-2009.
  10. Fluet M, Bergstrom L, Ford N, Rainey M, Reppy J, Shaw A and Xiao Y Programming in Manticore, a heterogenous parallel functional language Proceedings of the Third summer school conference on Central European functional programming school, (94-145)
  11. ACM
    Cooke D, Rushton J, Nemanich B, Watson R and Andersen P (2008). Normalize, transpose, and distribute, ACM Transactions on Programming Languages and Systems (TOPLAS), 30:2, (1-49), Online publication date: 1-Mar-2008.
  12. ACM
    Fluet M, Rainey M, Reppy J and Shaw A (2008). Implicitly-threaded parallelism in Manticore, ACM SIGPLAN Notices, 43:9, (119-130), Online publication date: 27-Sep-2008.
  13. ACM
    Fluet M, Rainey M, Reppy J and Shaw A Implicitly-threaded parallelism in Manticore Proceedings of the 13th ACM SIGPLAN international conference on Functional programming, (119-130)
  14. ACM
    Fluet M, Rainey M, Reppy J, Shaw A and Xiao Y Manticore Proceedings of the 2007 workshop on Declarative aspects of multicore programming, (37-44)
  15. ACM
    Park S Type-safe higher-order channels in ML-like languages Proceedings of the 12th ACM SIGPLAN international conference on Functional programming, (191-202)
  16. ACM
    Harris T and Singh S Feedback directed implicit parallelism Proceedings of the 12th ACM SIGPLAN international conference on Functional programming, (251-264)
  17. ACM
    Park S (2007). Type-safe higher-order channels in ML-like languages, ACM SIGPLAN Notices, 42:9, (191-202), Online publication date: 1-Oct-2007.
  18. ACM
    Harris T and Singh S (2007). Feedback directed implicit parallelism, ACM SIGPLAN Notices, 42:9, (251-264), Online publication date: 1-Oct-2007.
  19. ACM
    Fluet M, Ford N, Rainey M, Reppy J, Shaw A and Xiao Y Status report Proceedings of the 2007 workshop on Workshop on ML, (15-24)
  20. ACM
    Hudak P, Hughes J, Peyton Jones S and Wadler P A history of Haskell Proceedings of the third ACM SIGPLAN conference on History of programming languages, (12-1-12-55)
  21. Barish G and Knoblock C (2005). An expressive language and efficient execution system for software agents, Journal of Artificial Intelligence Research, 23:1, (625-666), Online publication date: 1-Jan-2005.
  22. ACM
    Newton R and Welsh M Region streams Proceeedings of the 1st international workshop on Data management for sensor networks: in conjunction with VLDB 2004, (78-87)
  23. Loidl H, Rubio F, Scaife N, Hammond K, Horiguchi S, Klusik U, Loogen R, Michaelson G, Peña R, Priebe S, Rebón Á and Trinder P (2019). Comparing Parallel Functional Languages, Higher-Order and Symbolic Computation, 16:3, (203-251), Online publication date: 1-Sep-2003.
  24. ACM
    Maessen J Eager Haskell Proceedings of the 2002 ACM SIGPLAN workshop on Haskell, (38-50)

Recommendations

Reviews

M. S. Joy

Graduate or advanced undergraduate students are the target audience for this book, which covers the two topics of functional programming and parallel functional programming. Although it assumes the reader is a competent programmer, no previous knowledge of either topic is assumed. It contains sufficient material to give the reader a solid background in the semantics of the declarative language pH (a dialect of Haskell), an understanding of the basic concepts of parallelism, and a deep insight into the ability of such a language to support parallelism. Structured as 11 chapters, plus appendices, the book commences by introducing the basic concepts of parallelism and summarizing the material that follows. Functional programming is presented to the reader as a potential solution to the problems of constructing parallel programs in a procedural language. Chapter 2 concentrates on the fundamentals of functional programming, including material on the lambda calculus, reduction, recursion, type checking, and the syntax of the pH language. Type classes, polymorphism and overloading fill chapter 3, and in chapter 4, the reader is introduced to lazy and strict reduction strategies and their implications for parallelism. Chapters 5 and 6 cover abstract and algebraic types and lists. The remaining chapters cover the language structures specific to pH that enable effective parallel programming. Arrays and input and output issues are covered in chapters 7 and 8. Chapters 9 and 10 look in detail at updateable cells and implicit synchronization using I-structures and the non-deterministic M-structures. Chapter 11 concludes, places the work in context and discusses recent and current research in the area. The two appendices describe the lambda calculus and rewrite rules in pH. A list of 77 references is provided. At 500 pages, it is not a short book, but the amount of material included is substantial, and has been developed from teaching materials used by the authors over the last ten years. No supporting materials are included, although many exercises are provided throughout the text. Although the authors consider the material suitable both for advanced undergraduates and junior graduates, I would feel uncomfortable recommending it in an undergraduate module. However, it is ideal for a Master’s course on computer science, or as basic reading for a research student interested in the topics. My only regret is the lack of availability of an implementation of pH suitable for student use. Although versions are downloadable from MIT, they are very much “works in progress,” and the book does not seem to encourage their use. While declarative programming is represented on many degree courses, it is often presented to students as a topic of theoretical rather than practical interest. The rise of Java and C++ and the availability of affordable multiprocessor machines have seen the teaching of parallelism focused on threaded sequential languages and conventional architectures. The ability of a declarative language to support parallelism, underpinned with clean semantics, has not been diminished by this trend, and research into the topic, although perhaps not as high profile as it has been recently, is important and will continue. This is an area of study that will interest computer scientists for a long time to come, and this work is timely. This is a fascinating and exceptionally well-written book, which covers a gap in the market that has existed for several years. The authors are highly respected researchers in the field, and the book contains state-of-the-art material in this specialized area of computer science. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.