Generic Programming with Extensible Data Types

被引:0
|
作者
Hubers, Alex [1 ]
Morris, J. Garrett [1 ]
机构
[1] Univ Iowa, Dept Comp Sci, 14 MacLean Hall, Iowa City, IA 52240 USA
基金
美国国家科学基金会;
关键词
generic programming; extensible data types; row types; row polymorphism; qualified types;
D O I
10.1145/3607843
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a novel approach to generic programming over extensible data types. Row types capture the structure of records and variants, and can be used to express record and variant subtyping, record extension, and modular composition of case branches. We extend row typing to capture generic programming over rows themselves, capturing patterns including lifting operations to records and variations from their component types, and the duality between cases blocks over variants and records of labeled functions, without placing specific requirements on the fields or constructors present in the records and variants. We formalize our approach in System R omega, an extension of F omega with row types, and give a denotational semantics for (stratified) R omega in Agda.
引用
下载
收藏
页数:29
相关论文
共 50 条
  • [41] Extensible Tooling for Reactive Programming Based on
    Ramson, Stefan
    Brand, Markus
    Lincke, Jens
    Hirschfeld, Robert
    JOURNAL OF OBJECT TECHNOLOGY, 2024, 23 (01):
  • [42] CASTOR: Programming with extensible generative visitors
    Zhang, Weixin
    Oliveira, Bruno C. d S.
    SCIENCE OF COMPUTER PROGRAMMING, 2020, 193
  • [43] Generic Component: A Generic Programming Approach
    Chen Yewang
    Jiang Zhixiong
    Zhao Wenyun
    Peng Xin
    2007 CIT: 7TH IEEE INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION TECHNOLOGY, PROCEEDINGS, 2007, : 87 - 92
  • [44] G - A FUNCTIONAL LANGUAGE WITH GENERIC ABSTRACT-DATA-TYPES
    BAILES, PA
    COMPUTER LANGUAGES, 1987, 12 (02): : 69 - 94
  • [45] DEFINING AND IMPLEMENTING FORTRAN GENERIC ABSTRACT-DATA-TYPES
    COLLINS, WR
    MILLER, KW
    INFORMATION AND SOFTWARE TECHNOLOGY, 1991, 33 (04) : 281 - 291
  • [46] A Generic Specification Framework for Weakly Consistent Replicated Data Types
    Jiang, Xue
    Wei, Hengfeng
    Huang, Yu
    2020 INTERNATIONAL SYMPOSIUM ON RELIABLE DISTRIBUTED SYSTEMS (SRDS 2020), 2020, : 143 - 154
  • [47] Architectural types revisited:: Extensible and/or connections
    Bernardo, M
    Franzè, R
    FUNDAMENTAL APPROACHES TO SOFTWARE ENGINEERING, PROCEEDINGS, 2002, 2306 : 113 - 127
  • [48] Inductive data types based on fibrations theory in programming
    Miao D.
    Xi J.
    Guo Y.
    Tang D.
    2016, University of Zagreb, Faculty of Political Sciences (24) : 1 - 16
  • [49] Structured parallel programming: Parallel abstract data types
    Darlington, J
    1996 CERN SCHOOL OF COMPUTING, 1996, 96 (08): : 203 - 210
  • [50] Beluga: Programming with Dependent Types, Contextual Data, and Contexts
    Pientka, Brigitte
    FUNCTIONAL AND LOGIC PROGRAMMING, PROCEEDINGS, 2010, 6009 : 1 - 12