skip to main content
10.1145/1273920.1273935acmconferencesArticle/Chapter ViewAbstractPublication PagesppdpConference Proceedingsconference-collections
Article

Observing intermediate structures in a parallel lazy functional language

Published: 14 July 2007 Publication History

Abstract

Due to the use of higher-order functions and laziness, debugging lazy functional programs is not a trivial task. Fortunately, several debuggers have appeared during the last years. However, the difficulty of the debugging process is increased when considering parallel extensions of lazy functional languages. Thus, it is necessary not only to develop practical debuggers, but also to provide a clear semantic environment to understand what the debuggers should do. In this paper we present a formal framework for debugging two different parallel extensions of the lazy functional language Haskell. In order to do that, we define an operational semantics model which allows us to deal with side-effects and parallelism. By doing so, we provide a formalization of a parallel debugger we have already implemented by extending the sequential debugger Hood.

References

[1]
C. Baker-Finch, D. King, and P. W. Trinder. An operational semantics for parallel lazy evaluation. In ACM-SIGPLAN Int. Conf. on Functional Programming (ICFP'00), pages 162--173. ACM, 2000.
[2]
M. Cole. Algorithmic Skeletons: Structure Management of Parallel Computations. MIT Press, 1989. Research Monographs in Parallel and Distributed Computing.
[3]
M. Cole. Bringing skeletons out of the closet: A pragmatic manifesto for skeletal parallel programming. Parallel Computing, 30:389--406, 2004.
[4]
A. Encina, L. Llana, and F. Rubio. Introducing debugging capabilities to natural semantics. In Perspectives of System Informatics (PSI'06), LNCS 4378, pages 195--208. Springer-Verlag, 2006.
[5]
A. Encina, L. Llana, and F. Rubio. Introducing debugging capabilities to natural semantics (extended version). Available from authors, 2006.
[6]
A. Encina and R. Peña. Formally deriving an STG machine. In Principles and Practice of Declarative Programming (PPDP'03), pages 102--112. ACM, 2003.
[7]
A. Encina, I. Rodríguez, and F. Rubio. Testing speculative work in a lazy/eager parallel functional language. In Languages and Compilers for Parallel Computing (LCPC'05), LNCS 4339, pages 274--288. Springer-Verlag, 2007.
[8]
A. Gill. Debugging Haskell by observing intermediate data structures. In Proceedings of the 4th Haskell Workshop. Tech. Rep. University of Nottingham, 2000.
[9]
M. Hidalgo-Herrero. Semánticas formales para un lenguaje funcional paralelo. PhD thesis, Universidad Complutense de Madrid, 2004.
[10]
M. Hidalgo-Herrero and Y. Ortega-Mallén. An operational semantics for the parallel language Eden. Parallel Processing Letters, 12(2):211--228, 2002.
[11]
U. Klusik, R. Loogen, S. Priebe, and F. Rubio. Implementation skeletons in Eden: Low-effort parallel programming. In Implementation of Functional Languages (IFL'00), LNCS 2011, pages 71--88. Springer-Verlag, 2001.
[12]
H. W. Loidl, F. Rubio, N. Scaife, K. Hammond, S. Horiguchi, U. Klusik, R. Loogen, G. J. Michaelson, R. Peña, Á. J. Rebón Portillo, S. Priebe, and P. W. Trinder. Comparing parallel functional languages: Programming and performance. Higher-Order and Symbolic Computation, 16(3):203--251, 2003.
[13]
R. Peña and F. Rubio. Parallel functional programming at two levels of abstraction. In Principles and Practice of Declarative Programming (PPDP'01), pages 187--198. ACM, 2001.
[14]
S. L. Peyton Jones and J. Hughes. Report on the programming language Haskell 98. Technical report, 1999. http://www.haskell.org.
[15]
C. Reinke. GHood -- graphical visualization and animation of Haskell object observations. In Proceedings of the 5th Haskell Workshop, volume 59 of ENTCS. Elsevier Science, 2001.
[16]
N. Scaife, H. S., G. Michaelson, and P. Bristow. A parallel SML compiler based on algorithmic skeletons. J. Functional Programming, 15(4):615--650, 2005.
[17]
P. W. Trinder, K. Hammond, J. S. M. Jr., A. S. Partridge, and S. L. P. Jones. GUM: a portable parallel implementation of Haskell. In Programming Language Design and Implementation (PLDI'96), pages 79--88. ACM Press, 1996.
[18]
P. W. Trinder, K. H. Hammond, H. W. Loidl, and S. L. Peyton Jones. Algorithm + Strategy = Parallelism. Journal of Funcional Programming, 8(1):23--60, 1998.
[19]
P. W. Trinder, H. Loidl, and R. Pointon. Parallel and distributed Haskells. Journal of Functional Programming, 12(4-5):469--510, 2002.

Cited By

View all
  • (2020)A Semantic Framework to Debug Parallel Lazy Functional LanguagesMathematics10.3390/math80608648:6(864)Online publication date: 26-May-2020
  • (2011)Eden --- parallel functional programming with haskellProceedings of the 4th Summer School conference on Central European Functional Programming School10.1007/978-3-642-32096-5_4(142-206)Online publication date: 14-Jun-2011

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PPDP '07: Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
July 2007
240 pages
ISBN:9781595937698
DOI:10.1145/1273920
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 14 July 2007

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. debugging
  2. parallel functional programming
  3. semantics

Qualifiers

  • Article

Conference

PPDP07
Sponsor:

Acceptance Rates

Overall Acceptance Rate 230 of 486 submissions, 47%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2020)A Semantic Framework to Debug Parallel Lazy Functional LanguagesMathematics10.3390/math80608648:6(864)Online publication date: 26-May-2020
  • (2011)Eden --- parallel functional programming with haskellProceedings of the 4th Summer School conference on Central European Functional Programming School10.1007/978-3-642-32096-5_4(142-206)Online publication date: 14-Jun-2011

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media