Promises Are Made To Be Broken: Migrating R to Strict Semantics
Identifikátory výsledku
Kód výsledku v IS VaVaI
<a href="https://www.isvavai.cz/riv?ss=detail&h=RIV%2F68407700%3A21240%2F21%3A00351843" target="_blank" >RIV/68407700:21240/21:00351843 - isvavai.cz</a>
Výsledek na webu
<a href="https://doi.org/10.1145/3485478" target="_blank" >https://doi.org/10.1145/3485478</a>
DOI - Digital Object Identifier
<a href="http://dx.doi.org/10.1145/3485478" target="_blank" >10.1145/3485478</a>
Alternativní jazyky
Jazyk výsledku
angličtina
Název v původním jazyce
Promises Are Made To Be Broken: Migrating R to Strict Semantics
Popis výsledku v původním jazyce
Function calls in the R language do not evaluate their arguments, these are passed to the callee as suspended computations and evaluated if needed. After 25 years of experience with the language, there are very few cases where programmers leverage delayed evaluation intentionally and laziness comes at a price in performance and complexity. This paper explores how to evolve the semantics of a lazy language towards strictness-by-default and laziness-on-demand. To provide a migration path, it is necessary to provide tooling for developers to migrate libraries without introducing errors. This paper reports on a dynamic analysis that infers strictness signatures for functions to capture both intentional and accidental laziness. Over 99% of the inferred signatures were correct when tested against clients of the libraries.
Název v anglickém jazyce
Promises Are Made To Be Broken: Migrating R to Strict Semantics
Popis výsledku anglicky
Function calls in the R language do not evaluate their arguments, these are passed to the callee as suspended computations and evaluated if needed. After 25 years of experience with the language, there are very few cases where programmers leverage delayed evaluation intentionally and laziness comes at a price in performance and complexity. This paper explores how to evolve the semantics of a lazy language towards strictness-by-default and laziness-on-demand. To provide a migration path, it is necessary to provide tooling for developers to migrate libraries without introducing errors. This paper reports on a dynamic analysis that infers strictness signatures for functions to capture both intentional and accidental laziness. Over 99% of the inferred signatures were correct when tested against clients of the libraries.
Klasifikace
Druh
J<sub>ost</sub> - Ostatní články v recenzovaných periodicích
CEP obor
—
OECD FORD obor
10201 - Computer sciences, information science, bioinformathics (hardware development to be 2.2, social aspect to be 5.8)
Návaznosti výsledku
Projekt
<a href="/cs/project/EF15_003%2F0000421" target="_blank" >EF15_003/0000421: Big Code: Škálovatelná analýza rozsáhlých bází programů</a><br>
Návaznosti
P - Projekt vyzkumu a vyvoje financovany z verejnych zdroju (s odkazem do CEP)
Ostatní
Rok uplatnění
2021
Kód důvěrnosti údajů
S - Úplné a pravdivé údaje o projektu nepodléhají ochraně podle zvláštních právních předpisů
Údaje specifické pro druh výsledku
Název periodika
Proceedings of the ACM on Programming Languages (PACMPL)
ISSN
2475-1421
e-ISSN
—
Svazek periodika
5
Číslo periodika v rámci svazku
OOPSLA
Stát vydavatele periodika
US - Spojené státy americké
Počet stran výsledku
20
Strana od-do
1-20
Kód UT WoS článku
000731569200005
EID výsledku v databázi Scopus
2-s2.0-85117615930