A simple blame calculus for explicit nulls

Պահպանված է:
Մատենագիտական մանրամասներ
Հրատարակված է:Journal of Functional Programming vol. 34 (Dec 2024)
Հիմնական հեղինակ: LHOTÁK, ONDŘEJ
Այլ հեղինակներ: Wadler, Philip
Հրապարակվել է:
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