A simple blame calculus for explicit nulls
Պահպանված է:
| Հրատարակված է: | Journal of Functional Programming vol. 34 (Dec 2024) |
|---|---|
| Հիմնական հեղինակ: | |
| Այլ հեղինակներ: | |
| Հրապարակվել է: |
Cambridge University Press
|
| Խորագրեր: | |
| Առցանց հասանելիություն: | Citation/Abstract Full Text - PDF |
| Ցուցիչներ: |
Չկան պիտակներ, Եղեք առաջինը, ով նշում է այս գրառումը!
|
MARC
| LEADER | 00000nab a2200000uu 4500 | ||
|---|---|---|---|
| 001 | 3149298078 | ||
| 003 | UK-CbPIL | ||
| 022 | |a 0956-7968 | ||
| 022 | |a 1469-7653 | ||
| 024 | 7 | |a 10.1017/S0956796824000121 |2 doi | |
| 035 | |a 3149298078 | ||
| 045 | 2 | |b d20241201 |b d20241231 | |
| 084 | |a 79046 |2 nlm | ||
| 100 | 1 | |a LHOTÁK, ONDŘEJ |u University of Waterloo, Waterloo, Canada (e-mail: olhotak@uwaterloo.ca ) | |
| 245 | 1 | |a A simple blame calculus for explicit nulls | |
| 260 | |b Cambridge University Press |c Dec 2024 | ||
| 513 | |a Journal Article | ||
| 520 | 3 | |a Gradual typing provides a model for when a legacy language with less precise types interacts with a newer language with more precise types. Casts mediate between types of different precision, allocating blame when a value fails to conform to a type. The blame theorem asserts that blame always falls on the less-precisely typed side of a cast. One instance of interest is when a legacy language (such as Java) permits null values at every type, while a newer language (such as Scala or Kotlin) explicitly indicates which types permit null values. Nieto et al. in 2020 introduced a gradually typed calculus for just this purpose. The calculus requires three distinct constructors for function types and a non-standard proof of the blame theorem; it can embed terms from the legacy language into the newer language (or vice versa) only when they are closed. Here, we define a simpler calculus that is more orthogonal, with one constructor for function types and one for possibly nullable types, and with an entirely standard proof of the blame theorem; it can embed terms from the legacy language into the newer language (and vice versa) even if they are open. All results in the paper have been mechanized in Coq. | |
| 653 | |a Language | ||
| 653 | |a Calculus | ||
| 653 | |a Java | ||
| 653 | |a Theorems | ||
| 653 | |a Theorem proving | ||
| 653 | |a Semantics | ||
| 700 | 1 | |a Wadler, Philip |u School of Informatics, University of Edinburgh, Edinburgh, UK (e-mail: wadler@inf.ed.ac.uk ) | |
| 773 | 0 | |t Journal of Functional Programming |g vol. 34 (Dec 2024) | |
| 786 | 0 | |d ProQuest |t Advanced Technologies & Aerospace Database | |
| 856 | 4 | 1 | |3 Citation/Abstract |u https://www.proquest.com/docview/3149298078/abstract/embedded/75I98GEZK8WCJMPQ?source=fedsrch |
| 856 | 4 | 0 | |3 Full Text - PDF |u https://www.proquest.com/docview/3149298078/fulltextPDF/embedded/75I98GEZK8WCJMPQ?source=fedsrch |