[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/3609025.3609476acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Stretching the Glasgow Haskell Compiler: Nourishing GHC with Domain-Driven Design

Published: 31 August 2023 Publication History

Abstract

Over the last decade Haskell has been productized; transitioning from a research language to an industrial strength language ready for large-scale systems. However, the literature on architecting such systems with a pure functional language is scarce. In this paper we contribute to that discourse, by using a large-scale system: the Glasgow Haskell Compiler (GHC), as a guide to more maintainable, flexible and effective, pure functional architectures. We describe, from experience, how GHC as a system, violates the desirable properties that make pure functional programming attractive: immutability, modularity, and composability. With these violations identified, we provide guidance for other functional system architectures; drawing heavily on Domain-Driven Design. We write from an engineering perspective, with the hope that our experience may provide insight into best practices for other pure functional software architects.

References

[1]
Harold Abelson, Gerald Jay Sussman, and with Julie Sussman. 1996. Structure and Interpretation of Computer Programs (2nd editon ed.). MIT Press/McGraw-Hill, Cambridge. isbn:0-262-01153-0
[2]
Eric Evans. 2003. Domain-Driven Design: Tackling Complexity in the Heart of Software.
[3]
Sylvain Henry, John Ericsson, and Jeffrey M. Young. 2022. Modularizing GHC. https://hsyl20.fr/home/files/papers/2022-ghc-modularity.pdf
[4]
Kenneth E. Iverson. 2007. Notation as a Tool of Thought. Association for Computing Machinery, New York, NY, USA. 1979. isbn:9781450310499 https://doi.org/10.1145/1283920.1283935
[5]
Alexis King. 2019. Parse, don’t validate. https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/
[6]
Simon Marlow. 2010. Haskell 2010 Report. http://www.haskell.org/definition/haskell2010.pdf
[7]
Falcon Momot, Sergey Bratus, Sven M. Hallberg, and Meredith L. Patterson. 2016. The Seven Turrets of Babel: A Taxonomy of LangSec Errors and How to Expunge Them. In 2016 IEEE Cybersecurity Development (SecDev). 45–52. https://doi.org/10.1109/SecDev.2016.019
[8]
Edward Z. Yang. 2017. Backpack: Towards Practical Mix-In Linking in Haskell. Ph. D. Dissertation. Stanford University. https://github.com/ezyang/thesis

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
FUNARCH 2023: Proceedings of the 1st ACM SIGPLAN International Workshop on Functional Software Architecture
August 2023
62 pages
ISBN:9798400702976
DOI:10.1145/3609025
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 the author(s) 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: 31 August 2023

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. functional systems
  2. modularity
  3. supple design

Qualifiers

  • Research-article

Conference

FUNARCH '23
Sponsor:

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 244
    Total Downloads
  • Downloads (Last 12 months)79
  • Downloads (Last 6 weeks)6
Reflects downloads up to 12 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media