Matches in SemOpenAlex for { <https://semopenalex.org/work/W3109059682> ?p ?o ?g. }
Showing items 1 to 84 of
84
with 100 items per page.
- W3109059682 abstract "Many researchers have explored retrofitting static type systems to dynamic languages. This raises the question of how to add type annotations to code that was previously untyped. One obvious solution is type inference. However, in complex type systems, in particular those with structural types, type inference typically produces most general types that are large, hard to understand, and unnatural for programmers. To solve this problem, we introduce InferDL, a novel Ruby type inference system that infers sound and useful type annotations by incorporating heuristics that guess types. For example, we might heuristically guess that a parameter whose name ends in “count” is an integer. InferDL works by first running standard type inference and then applying heuristics to any positions for which standard type inference produces overly-general types. Heuristic guesses are added as constraints to the type inference problem to ensure they are consistent with the rest of the program and other heuristic guesses; inconsistent guesses are discarded. We formalized InferDL in a core type and constraint language. We implemented InferDL on top of RDL, an existing Ruby type checker. To evaluate InferDL, we applied it to four Ruby on Rails apps that had been previously type checked with RDL, and hence had type annotations. We found that, when using heuristics, InferDL inferred 22% more types that were as or more precise than the previous annotations, compared to standard type inference without heuristics. We also found one new type error. We further evaluated InferDL by applying it to six additional apps, finding five additional type errors. Thus, we believe InferDL represents a promising approach for inferring type annotations in dynamic languages." @default.
- W3109059682 created "2020-12-07" @default.
- W3109059682 creator A5031013753 @default.
- W3109059682 creator A5038702707 @default.
- W3109059682 creator A5038921193 @default.
- W3109059682 date "2020-11-15" @default.
- W3109059682 modified "2023-09-24" @default.
- W3109059682 title "Sound, heuristic type annotation inference for Ruby" @default.
- W3109059682 cites W1973186567 @default.
- W3109059682 cites W2037037228 @default.
- W3109059682 cites W2043133575 @default.
- W3109059682 cites W2081992169 @default.
- W3109059682 cites W2091335641 @default.
- W3109059682 cites W2106799975 @default.
- W3109059682 cites W2129345992 @default.
- W3109059682 cites W2134093956 @default.
- W3109059682 cites W2135536553 @default.
- W3109059682 cites W2163976959 @default.
- W3109059682 cites W2293770661 @default.
- W3109059682 cites W2537680118 @default.
- W3109059682 cites W2548165777 @default.
- W3109059682 cites W2963384924 @default.
- W3109059682 cites W4229717394 @default.
- W3109059682 cites W4249075482 @default.
- W3109059682 doi "https://doi.org/10.1145/3426422.3426985" @default.
- W3109059682 hasPublicationYear "2020" @default.
- W3109059682 type Work @default.
- W3109059682 sameAs 3109059682 @default.
- W3109059682 citedByCount "4" @default.
- W3109059682 countsByYear W31090596822021 @default.
- W3109059682 countsByYear W31090596822022 @default.
- W3109059682 countsByYear W31090596822023 @default.
- W3109059682 crossrefType "proceedings-article" @default.
- W3109059682 hasAuthorship W3109059682A5031013753 @default.
- W3109059682 hasAuthorship W3109059682A5038702707 @default.
- W3109059682 hasAuthorship W3109059682A5038921193 @default.
- W3109059682 hasConcept C111919701 @default.
- W3109059682 hasConcept C127705205 @default.
- W3109059682 hasConcept C154945302 @default.
- W3109059682 hasConcept C173801870 @default.
- W3109059682 hasConcept C18903297 @default.
- W3109059682 hasConcept C198370458 @default.
- W3109059682 hasConcept C199360897 @default.
- W3109059682 hasConcept C2524010 @default.
- W3109059682 hasConcept C2776036281 @default.
- W3109059682 hasConcept C2776214188 @default.
- W3109059682 hasConcept C2777299769 @default.
- W3109059682 hasConcept C33923547 @default.
- W3109059682 hasConcept C41008148 @default.
- W3109059682 hasConcept C80444323 @default.
- W3109059682 hasConcept C86803240 @default.
- W3109059682 hasConceptScore W3109059682C111919701 @default.
- W3109059682 hasConceptScore W3109059682C127705205 @default.
- W3109059682 hasConceptScore W3109059682C154945302 @default.
- W3109059682 hasConceptScore W3109059682C173801870 @default.
- W3109059682 hasConceptScore W3109059682C18903297 @default.
- W3109059682 hasConceptScore W3109059682C198370458 @default.
- W3109059682 hasConceptScore W3109059682C199360897 @default.
- W3109059682 hasConceptScore W3109059682C2524010 @default.
- W3109059682 hasConceptScore W3109059682C2776036281 @default.
- W3109059682 hasConceptScore W3109059682C2776214188 @default.
- W3109059682 hasConceptScore W3109059682C2777299769 @default.
- W3109059682 hasConceptScore W3109059682C33923547 @default.
- W3109059682 hasConceptScore W3109059682C41008148 @default.
- W3109059682 hasConceptScore W3109059682C80444323 @default.
- W3109059682 hasConceptScore W3109059682C86803240 @default.
- W3109059682 hasFunder F4320322898 @default.
- W3109059682 hasLocation W31090596821 @default.
- W3109059682 hasOpenAccess W3109059682 @default.
- W3109059682 hasPrimaryLocation W31090596821 @default.
- W3109059682 hasRelatedWork W1550049051 @default.
- W3109059682 hasRelatedWork W1571170912 @default.
- W3109059682 hasRelatedWork W191500592 @default.
- W3109059682 hasRelatedWork W1941412300 @default.
- W3109059682 hasRelatedWork W1977621403 @default.
- W3109059682 hasRelatedWork W2154390633 @default.
- W3109059682 hasRelatedWork W2483129770 @default.
- W3109059682 hasRelatedWork W4242791220 @default.
- W3109059682 hasRelatedWork W4252419525 @default.
- W3109059682 hasRelatedWork W2584819674 @default.
- W3109059682 isParatext "false" @default.
- W3109059682 isRetracted "false" @default.
- W3109059682 magId "3109059682" @default.
- W3109059682 workType "article" @default.