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

被引:0
|
作者
Young, Jeffrey M. [1 ]
Henry, Sylvain [1 ]
Ericson, John [2 ]
机构
[1] IOG, Dallas, TX 75225 USA
[2] Obsidian Syst, New York, NY USA
关键词
functional systems; modularity; supple design;
D O I
10.1145/3609025.3609476
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:34 / 39
页数:6
相关论文
共 36 条
  • [1] Design and implementation of thunk recycling in the Glasgow Haskell Compiler
    Takano, Yasunao
    Iwasaki, Hideya
    Sato, Shigeyuki
    Computer Software, 2015, 32 (01) : 253 - 287
  • [2] The Application of Domain-Driven Design in NMS
    Zhang Jinsong
    Chen Yan
    Qin Shengjun
    FOURTH INTERNATIONAL CONFERENCE ON MACHINE VISION (ICMV 2011): COMPUTER VISION AND IMAGE ANALYSIS: PATTERN RECOGNITION AND BASIC TECHNOLOGIES, 2012, 8350
  • [3] Application of a systemic soft domain-driven design framework
    Salahat, Mohammed
    Wade, Steve
    Ul-Haq, Izhar
    World Academy of Science, Engineering and Technology, 2009, 33 : 476 - 486
  • [4] Reverse Modeling Support Method for Domain-driven Design
    Zhong C.-X.
    Li W.-J.
    Ren G.-J.
    Rong G.-P.
    Ruan Jian Xue Bao/Journal of Software, 2022, 33 (07): : 2562 - 2580
  • [5] Towards an Ontological Concepts for Domain-Driven Software Design
    Al Saiyd, Nedhal
    Al Said, Intisar
    Al Neaimi, Afaf
    NDT: 2009 FIRST INTERNATIONAL CONFERENCE ON NETWORKED DIGITAL TECHNOLOGIES, 2009, : 127 - 131
  • [6] AGL: Incorporating behavioral aspects into domain-driven design
    Dang, Duc-Hanh
    Le, Duc Minh
    Le, Van-Vinh
    INFORMATION AND SOFTWARE TECHNOLOGY, 2023, 163
  • [7] Challenges of Domain-Driven Microservice Design A Model-Driven Perspective
    Rademacher, Florian
    Sorgalla, Jonas
    Sachweh, Sabine
    IEEE SOFTWARE, 2018, 35 (03) : 36 - 43
  • [8] Domain-Driven Design Patterns: A Metadata-Based Approach
    Due Minh Le
    Due-Hanh Dang
    Viet-Ha Nguyen
    2016 IEEE RIVF INTERNATIONAL CONFERENCE ON COMPUTING & COMMUNICATION TECHNOLOGIES, RESEARCH, INNOVATION, AND VISION FOR THE FUTURE (RIVF), 2016, : 247 - 252
  • [9] The Investigation of WEB Software System Based on Domain-Driven Design
    Wang, Fei
    Yan, LiHua
    Zhou, Peng
    Sun, Wei
    Ding, Yuan
    WEB INFORMATION SYSTEMS AND MINING, PT I, 2011, 6987 : 11 - 18
  • [10] Towards a UML Profile for Domain-Driven Design of Microservice Architectures
    Rademacher, Florian
    Sachweh, Sabine
    Zuendorf, Albert
    SOFTWARE ENGINEERING AND FORMAL METHODS, SEFM 2017, 2018, 10729 : 230 - 245