Copatterns

Author:

Abel Andreas1,Pientka Brigitte2,Thibodeau David2,Setzer Anton3

Affiliation:

1. Ludwig-Maximilians-University, Munich, Germany

2. McGill University, Montreal, PQ, Canada

3. Swansea University, Swansea, Wales Uk

Abstract

Inductive datatypes provide mechanisms to define finite data such as finite lists and trees via constructors and allow programmers to analyze and manipulate finite data via pattern matching. In this paper, we develop a dual approach for working with infinite data structures such as streams. Infinite data inhabits coinductive datatypes which denote greatest fixpoints. Unlike finite data which is defined by constructors we define infinite data by observations. Dual to pattern matching, a tool for analyzing finite data, we develop the concept of copattern matching, which allows us to synthesize infinite data. This leads to a symmetric language design where pattern matching on finite and infinite data can be mixed. We present a core language for programming with infinite structures by observations together with its operational semantics based on (co)pattern matching and describe coverage of copatterns. Our language naturally supports both call-by-name and call-by-value interpretations and can be seamlessly integrated into existing languages like Haskell and ML. We prove type soundness for our language and sketch how copatterns open new directions for solving problems in the interaction of coinductive and dependent types.

Publisher

Association for Computing Machinery (ACM)

Subject

Computer Graphics and Computer-Aided Design,Software

Reference43 articles.

1. M. Abadi and L. Cardelli . A theory of primitive objects. Untyped and first-order systems. In M. Hagiya and J. Mitchell editors Theoretical Aspects of Computer Software volume 789 of Lect . Notes in Comput. Sci. pages 296 -- 320 . Springer 1994 . M. Abadi and L. Cardelli. A theory of primitive objects. Untyped and first-order systems. In M. Hagiya and J. Mitchell editors Theoretical Aspects of Computer Software volume 789 of Lect. Notes in Comput. Sci. pages 296--320. Springer 1994.

2. A. Abel . Mixed inductive/coinductive types and strong normalization. In Z. Shao editor Proc. of the 5th Asian Symp. on Programming Languages and Systems APLAS 2007 volume 4807 of Lect . Notes in Comput. Sci. pages 286 -- 301 . Springer 2007. ISBN 978--3--540--76636-0. A. Abel. Mixed inductive/coinductive types and strong normalization. In Z. Shao editor Proc. of the 5th Asian Symp. on Programming Languages and Systems APLAS 2007 volume 4807 of Lect. Notes in Comput. Sci. pages 286--301. Springer 2007. ISBN 978--3--540--76636-0.

3. Type-Based Termination, Inflationary Fixed-Points, and Mixed Inductive-Coinductive Types

4. Agda team. The Agda Wiki 2012. Agda team. The Agda Wiki 2012.

Cited by 62 articles. 订阅此论文施引文献 订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献

1. Grokking the Sequent Calculus (Functional Pearl);Proceedings of the ACM on Programming Languages;2024-08-15

2. Deriving Dependently-Typed OOP from First Principles;Proceedings of the ACM on Programming Languages;2024-04-29

3. Some techniques for reasoning automatically on co-inductive data structures;Journal of Logic and Computation;2023-06-06

4. Live Pattern Matching with Typed Holes;Proceedings of the ACM on Programming Languages;2023-04-06

5. A Bowtie for a Beast: Overloading, Eta Expansion, and Extensible Data Types in F⋈;Proceedings of the ACM on Programming Languages;2023-01-09

同舟云学术

1.学者识别学者识别

2.学术分析学术分析

3.人才评估人才评估

"同舟云学术"是以全球学者为主线,采集、加工和组织学术论文而形成的新型学术文献查询和分析系统,可以对全球学者进行文献检索和人才价值评估。用户可以通过关注某些学科领域的顶尖人物而持续追踪该领域的学科进展和研究前沿。经过近期的数据扩容,当前同舟云学术共收录了国内外主流学术期刊6万余种,收集的期刊论文及会议论文总量共计约1.5亿篇,并以每天添加12000余篇中外论文的速度递增。我们也可以为用户提供个性化、定制化的学者数据。欢迎来电咨询!咨询电话:010-8811{复制后删除}0370

www.globalauthorid.com

TOP

Copyright © 2019-2024 北京同舟云网络信息技术有限公司
京公网安备11010802033243号  京ICP备18003416号-3