Precise concrete type inference for object-oriented languages
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Sound polymorphic type inference for objects
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Efficient inference of object types
Information and Computation
A lambda calculus of objects with self-inflicted extension
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
A Theory of Objects
Making Type Inference Practical
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
The Cartesian Product Algorithm: Simple and Precise Type Inference Of Parametric Polymorphism
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
An Imperative, First-Order Calculus with Object Extension
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Precise Constraint-Based Type Inference for Java
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Type inference for record concatenation and subtyping
Information and Computation
Automatic discovery of covariant read-only fields
ACM Transactions on Programming Languages and Systems (TOPLAS)
The design and implementation of typed scheme
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
JavaScript: The Good Parts
Static type inference for Ruby
Proceedings of the 2009 ACM symposium on Applied Computing
SAS '09 Proceedings of the 16th International Symposium on Static Analysis
Profile-guided static typing for dynamic scripting languages
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
An analysis of the dynamic behavior of JavaScript programs
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Recency types for analyzing scripting languages
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Typing local control and state using flow analysis
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
Towards a type system for analyzing javascript programs
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Towards type inference for javascript
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Dependent types for JavaScript
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Type refinement for static analysis of JavaScript
Proceedings of the 9th symposium on Dynamic languages
Hi-index | 0.00 |
This paper presents a polymorphic type inference algorithm for a small subset of JavaScript. The goal is to prevent accessing undefined members of objects. We define a type system that allows explicit extension of objects through add operation and implicit extension through method calls. The type system also permits strong updates and unrestricted extensions to new objects. The type inference algorithm is modular so that each function definition is only analyzed once and larger programs can be checked incrementally.