Carnegie Mellon University
Browse

How do Haskell programmers debug?

Download (105.36 kB)
conference contribution
posted on 2023-03-30, 16:42 authored by Ruanqianqian (Lisa) Huang, Elizaveta Pertseva, Michael Coblenz, Sorin Lerner

Functional programming is a paradigm that emphasizes avoiding shared mutable state. Compared to imperative programming, which focuses more on how the runtime state should be updated to perform a computation, functional programming adopts a more declarative syntax that highlights what the computation should achieve without involving mutable state. Since functional programming differs from imperative programming, programmers might adopt different debugging strategies in functional programming. However, how programmers debug in functional languages remains under-explored. As an initial step, we interviewed four experienced functional programmers to gain insight into how they debug in Haskell, a popular functional programming language. Our preliminary findings show that while debugging strategies for Haskell are similar to strategies for other languages, some features of Haskell and functional programming introduce challenges to using these debugging strategies. Informed by the findings, we call for future work that gains more understanding of how debugging is done in Haskell and functional programming in general, and explores design opportunities for usable debugging aids in this domain.

Funding

NSF CCF-2107397

History

Date

2023-02-13

Usage metrics

    Licence

    Exports

    RefWorks
    BibTeX
    Ref. manager
    Endnote
    DataCite
    NLM
    DC