Abstract
We propose a language design where types can be enriched by tags corresponding to predicates written by the programmer. For instance, int&positive; is a type, where positive is a user-defined boolean function on integers. Expressions of type int&positive; are obtained by an explicit check construct, analogous to cast, e.g., (positive) 2. In this way, the fact that the value of an expression is guaranteed to succeed a runtime check is a static property which can be controlled by the type system. We formalize our proposal as an extension of the simply-typed lambda calculus, and prove, besides soundness, the fact that expressions of tagged types reduce to values which satisfy the corresponding predicates.
| Original language | English |
|---|---|
| Pages (from-to) | 75-87 |
| Number of pages | 13 |
| Journal | CEUR Workshop Proceedings |
| Volume | 1720 |
| Publication status | Published - 2016 |
| Event | 17th Italian Conference on Theoretical Computer Science, ICTCS 2016 - Lecce, Italy Duration: 7 Sept 2016 → 9 Sept 2016 |
Fingerprint
Dive into the research topics of 'Runtime checks as nominal types'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver