Affiliation:
1. Nova University of Lisbon, Portugal / NOVA-LINCS, Portugal
Abstract
This work introduces the novel concept of
kind refinement
, which we develop in the context of an explicitly polymorphic ML-like language with type-level computation. Just as type refinements embed rich specifications by means of comprehension principles expressed by predicates over values in the type domain, kind refinements provide rich
kind
specifications by means of predicates over
types
in the kind domain. By leveraging our powerful refinement kind discipline, types in our language are not just used to statically classify program expressions and values, but also conveniently manipulated as tree-like data structures, with their kinds refined by logical constraints on such structures. Remarkably, the resulting typing and kinding disciplines allow for powerful forms of type reflection, ad-hoc polymorphism and type-directed meta-programming, which are often found in modern software development, but not typically expressible in a type-safe manner in general purpose languages. We validate our approach both formally and pragmatically by establishing the standard meta-theoretical results of type safety and via a prototype implementation of a kind checker, type checker and interpreter for our language.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Going beyond templates: composition and evolution in nested OSTRICH;Software and Systems Modeling;2024-05-20
2. OSTRICH: a rich template language for low-code development (extended version);Software and Systems Modeling;2022-12-16
3. Nested OSTRICH;Proceedings of the 25th International Conference on Model Driven Engineering Languages and Systems;2022-10-23
4. OSTRICH - A Type-Safe Template Language for Low-Code Development;2021 ACM/IEEE 24th International Conference on Model Driven Engineering Languages and Systems (MODELS);2021-10