Static type inference for Ruby
By Michael Furr, Jong-hoon An, Jeffrey S. Foster, Michael W. Hicks. 2009
179 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Information Systems, Software, Program Analysis & Verification, Software Engineering
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Artificial Intelligence
- Arjun Guha
- Ming-Ho Yee
- Miltiadis Allamanis
- Jeffrey S. Foster
- Ranjit Jhala
- Milod Kazerounian
- Georgios Gousios
- Panagiotis Vekris
In Information Systems
- Georgios Gousios
- Arjun Guha
- Miltiadis Allamanis
- Michael Pradel
- Ming-Ho Yee
- Charles Sutton
- Jeffrey S. Foster
- Earl T. Barr
In Software
- Arjun Guha
- Michael Pradel
- Georgios Gousios
- Ming-Ho Yee
- Miltiadis Allamanis
- Earl T. Barr
- Jeffrey S. Foster
- Vincent J. Hellendoorn
In Program Analysis & Verification
- Arjun Guha
- Ming-Ho Yee
- Jeffrey S. Foster
- Georgios Gousios
- Milod Kazerounian
- Ranjit Jhala
- Panagiotis Vekris
- Miltiadis Allamanis
In Software Engineering
- Arjun Guha
- Ming-Ho Yee
- Jeffrey S. Foster
- Ranjit Jhala
- Milod Kazerounian
- Bonan Min
- Georgios Gousios
- Baowen Xu
Citations in the corpus
- Do Machine Learning Models Produce TypeScript Types that Type Check? (2023, background): “DRuby [20] infers types for Ruby and treats type annotations in a novel way: inference assumes that annotations are correct, and defers checking them to runtime.”
- TypeWriter: neural type prediction with search-based validation (2019, methodology): “These approaches are sound by design, but due to the dynamic nature of some languages, they often infer only simple or very generic types [8, 17].”
- An analysis of the dynamic behavior of JavaScript programs (2010, unknown): “For JavaScript, Anderson et al. proposed a type system with de.nite and potential types [2, 1, 3], while Heidegger and Thiemann following up on some of their earlier work [24, 18] propose recency types in [13], and Furr et al. proposed a related system for DRuby [9].”
- Type4Py: Practical Deep Similarity Learning-Based Type Inference for Python (2021, methodology): “Static type inference methods [9, 14] can be employed to support adding these annotations, which is otherwise a manual, cumbersome, and error-prone process [46].”
- Profile-guided static typing for dynamic scripting languages (2009, methodology): “Instrumented operational semantics (partial) proofs are available in a companion technical report (Furr et al. 2009a).”
- Type Analysis for JavaScript (2009, unknown): “Furr and others [15] have developed a typed dialect of Ruby, a scripting language with features very similar to JavaScript.”
- Python probabilistic type inference with natural language support (2016, methodology): “The classifier takes the source code of a Python project and applies an existing static type inference technique [1, 7, 23, 28].”
- Refinement types for TypeScript (2016, methodology): “DRuby [10] uses intersection types to represent summaries for overloaded functions.”
- Dependent types for JavaScript (2011, background): “DJS supports the particularly challenging features such as run-time type-tests, higher-order functions, extensible objects, prototype inheritance, and arrays through a combination of nested re.nement types, strong updates to the heap, and heap unrolling to precisely track prototype hierarchies.”
- Dynamic inference of static types for ruby (2011, unknown): “Lastly, we also support intersection types for methods, which are common in the Ruby core library [12].”
- JSTrace: Run-time Type Discovery for JavaScript (2010, unknown): “al present Diamondback Ruby [11], a static type system along with an inference algorithm for the dynamic language Ruby.”
- Sound, heuristic type annotation inference for Ruby (2020, background): “Many researchers have explored ways to add static types to dynamic languages [3, 4, 15, 19, 29, 31, 36, 37], to help programmers find and prevent type errors.”
- Typing Local Control and State Using Flow Analysis (2011, background): “Diamondback Ruby [5] is a type system and type inference for Ruby.”
- The Design and Implementation of Typed Scheme: From Scripts to Programs (2011, unknown): “Their work does not yet have a published soundness theorem, and requires the use of a new Ruby interpreter, whereas Typed Scheme runs purely as a library for PLT Scheme.”
- SimTyper: sound type inference for Ruby using type equality prediction (2021, methodology): “…al. 1994; Cartwright and Fagan 1991; Pottier 1998; Wright and Cartwright 1997] as well, and this has enabled the development of practical type inference systems for dynamic languages such as Python [Aycock 2000], JavaScript [Anderson et al. 2005; Hackett and Guo 2012], and Ruby [Furr et al. 2009].”
- The ruby type checker (2013, background): “proposals for adding static types to dynamic languages [9, 15, 5, 11, 3, 4, 14].”
- Deep learning type inference (2018, background): “Inferring types for dynamic languages has become an important research area in light of the widespread use of languages such as JavaScript and Python, and recent moves to allow partial typing of these [6, 13, 34].”