Associated Effects Flexible Abstractions for Effectful Programming

被引:0
|
作者
Lutze, Matthew [1 ]
Madsen, Magnus [1 ]
机构
[1] Aarhus Univ, Aarhus, Denmark
关键词
effect systems; associated effects; associated types; generic programming; type classes; type functions; ad-hoc polymorphism;
D O I
10.1145/3656393
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present associated effects, a programming language feature that enables type classes to abstract over the effects of their function signatures, allowing each type class instance to specify its concrete effects. Associated effects significantly increase the flexibility and expressive power of a programming language that combines a type and effect system with type classes. In particular, associated effects allow us to (i) abstract over total and partial functions, where partial functions may throw exceptions, (ii) abstract over immutable data structures and mutable data structures that have heap effects, and (iii) implement adaptors that combine type classes with algebraic effects. We implement associated effects as an extension of the Flix programming language and refactor the Flix Standard Library to use associated effects, significantly increasing its flexibility and expressive power. Specifically, we add associated effects to 11 type classes, which enables us to add 28 new type class instances.
引用
收藏
页数:23
相关论文
共 50 条
  • [31] Programming Abstractions for Software-Defined Wireless Networks
    Riggio, Roberto
    Marina, Mahesh K.
    Schulz-Zander, Julius
    Kuklinski, Slawomir
    Rasheed, Tinku
    IEEE TRANSACTIONS ON NETWORK AND SERVICE MANAGEMENT, 2015, 12 (02): : 146 - 162
  • [32] Ontological Interpretation of Object-Oriented Programming Abstractions
    Kiwelekar, Arvind W.
    Joshi, Rushikesh K.
    2013 IEEE 13TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2013, : 189 - 198
  • [33] Programming Abstractions for Orchestration of HPC Scientific Computing (Keynote)
    Dubey, Anshu
    CHIUW'19: PROCEEDINGS OF THE ACM SIGPLAN 6TH CHAPEL IMPLEMENTERS AND USERS WORKSHOP, 2019, : 1 - 1
  • [34] The impact of distributed programming abstractions on application energy consumption
    Kwon, Young-Woo
    Tilevich, Eli
    INFORMATION AND SOFTWARE TECHNOLOGY, 2013, 55 (09) : 1602 - 1613
  • [35] Programming Abstractions for Managing Workflows on Tiered Storage Systems
    Ghoshal, Devarshi
    Ramakrishnan, Lavanya
    ACM TRANSACTIONS ON STORAGE, 2021, 17 (04)
  • [36] Efficient High-Level Abstractions for Web Programming
    Richard-Foy, Julien
    Barais, Olivier
    Jezequel, Jean-Marc
    ACM SIGPLAN NOTICES, 2014, 49 (03) : 53 - 60
  • [37] Programming language abstractions for modularly verified distributed systems
    University of Washington, Seattle
    WA, United States
    不详
    Leibniz Int. Proc. Informatics, LIPIcs, 1868,
  • [38] WARBLE: Programming Abstractions for Personalizing Interactions in the Internet of Things
    Saputra, Yosef
    Hua, Jie
    Wendt, Nathaniel
    Julien, Christine
    Roman, Gruia-Catalin
    2019 IEEE/ACM 6TH INTERNATIONAL CONFERENCE ON MOBILE SOFTWARE ENGINEERING AND SYSTEMS (MOBILESOFT 2019), 2019, : 128 - 139
  • [39] The Cost of Simplicity: Understanding Datacenter Scheduler Programming Abstractions
    Lasa, Aratz Manterola
    Talluri, Sacheendra
    De Matteis, Tiziano
    Iosup, Alexandru
    PROCEEDINGS OF THE 15TH ACM/SPEC INTERNATIONAL CONFERENCE ON PERFORMANCE ENGINEERING, ICPE 2024, 2024, : 166 - 177
  • [40] Linguistic Abstractions for Programming and Policing Autonomic Computing Systems
    Margheri, Andrea
    Pugliese, Rosario
    Tiezzi, Francesco
    2013 IEEE 10TH INTERNATIONAL CONFERENCE ON AND 10TH INTERNATIONAL CONFERENCE ON AUTONOMIC AND TRUSTED COMPUTING (UIC/ATC) UBIQUITOUS INTELLIGENCE AND COMPUTING, 2013, : 404 - 409