Dependent types for JavaScript
By Ravi Chugh, David Herman, Ranjit Jhala. 2011
105 citations recorded by the source corpus.
Subfields: Artificial Intelligence, Information Systems, Software, Program Analysis & Verification
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
- Anders Møller
- Arjun Guha
- Ming-Ho Yee
- Panagiotis Vekris
- Erik Krogh Kristensen
- Benjamin Cosman
- Ranjit Jhala
- Earl T. Barr
In Information Systems
- Arjun Guha
- Anders Møller
- Charles Sutton
- Ming-Ho Yee
- Earl T. Barr
- Panagiotis Vekris
- A. Gordon
- Benjamin Cosman
In Software
- Anders Møller
- Charles Sutton
- Earl T. Barr
- Ming-Ho Yee
- Arjun Guha
- Panagiotis Vekris
- Benjamin Cosman
- Ranjit Jhala
In Program Analysis & Verification
- Arjun Guha
- Ming-Ho Yee
- Anders Møller
- Panagiotis Vekris
- Benjamin Cosman
- Ranjit Jhala
- Asger Feldthaus
- Charles Sutton
Citations in the corpus
- Do Machine Learning Models Produce TypeScript Types that Type Check? (2023, methodology): “Although this paper focuses on type migration for TypeScript, there are several other gradual type systems for JavaScript [15, 22, 30, 49].”
- Understanding TypeScript (2014, methodology): “[4] employed nested refinements and heap types in DJS, and Guha et al.”
- Fast and precise type checking for JavaScript (2017, methodology): “DJS [Chugh et al. 2012] combines nested refinements with alias types [Smith et al. 2000], a restricted separation logic, to account for aliasing and flow-sensitive heap updates to obtain a static type system for a large portion of JavaScript. DJS comes with very limited type inference and hence requ”
- Checking correctness of TypeScript interfaces for JavaScript libraries (2014, methodology): “Several more expressive type systems for JavaScript than the one in TypeScript have been proposed, including TeJaS [9] and DJS [1].”
- Practical Optional Types for Clojure (2016, methodology): “These include TypeScript [19] and Flow [11] for JavaScript, Hack [10] for PHP, and mypy [15] for Python among the optional systems, and Typed Racket [23], Reticulated Python [25], and Gradualtalk [1] among gradually-typed systems.1 1 We use “gradual typing” for systems like Typed Racket with sound i”
- Refinement types for TypeScript (2016, methodology): “DJS combines nested refinements with alias types [29], a restricted separation logic, to account for aliasing and flow-sensitive heap updates to obtain a static type system for a large portion of JS [5].”
- OptTyper: Probabilistic Type Inference by Optimising Logical and Natural Constraints (2020, methodology): “ent types [Bierman et al. 2012], provides a different approach. LiquidHaskell [Vazou et al. 2014] is a static verifier of Haskell based on Liquid Types via SMT and predicate abstraction. DependentJS [Chugh et al. 2012] incorporates dependent types into JavaScript. We note also, that HM(X) is a famil”