Abstract
We introduce a notion of guarded recursive (g.r.) datatype constructors, generalizing the notion of recursive datatypes in functional programming languages such as ML and Haskell. We address both theoretical and practical issues resulted from this generalization. On one hand, we design a type system to formalize the notion of g.r. datatype constructors and then prove the soundness of the type system. On the other hand, we present some significant applications (e.g., implementing objects, implementing staged computation, etc.) of g.r. datatype constructors, arguing that g.r. datatype constructors can have far-reaching consequences in programming. The main contribution of the paper lies in the recognition and then the formalization of a programming notion that is of both theoretical interest and practical use.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference25 articles.
1. L. Augustsson. Implementing Haskell overloading. In Functional Programming Languages and Computer Architecture 93.]] 10.1145/165180.165191 L. Augustsson. Implementing Haskell overloading. In Functional Programming Languages and Computer Architecture 93.]] 10.1145/165180.165191
2. C. Chen and H. Xi. Implementing typed meta-programming. Available at http://www.cs.bu.edu/char126hwxi/academic/papers/TMP.ps November 2002.]] C. Chen and H. Xi. Implementing typed meta-programming. Available at http://www.cs.bu.edu/char126hwxi/academic/papers/TMP.ps November 2002.]]
3. A formulation of the simple theory of types
4. Flexible type analysis
Cited by
125 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. When Subtyping Constraints Liberate: A Novel Type Inference Approach for First-Class Polymorphism;Proceedings of the ACM on Programming Languages;2024-01-05
2. The Essence of Generalized Algebraic Data Types;Proceedings of the ACM on Programming Languages;2024-01-05
3. Generating C: Heterogeneous metaprogramming system description;Science of Computer Programming;2024-01
4. Focusing on Refinement Typing;ACM Transactions on Programming Languages and Systems;2023-12-20
5. Weighted Refinement Types for Counterpoint Composition;Proceedings of the 11th ACM SIGPLAN International Workshop on Functional Art, Music, Modelling, and Design;2023-08-30