PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Lisp and Symbolic Computation
Type inference for records in natural extension of ML
Theoretical aspects of object-oriented programming
Dynamic typing: syntax and proof theory
ESOP'92 Selected papers of the symposium on Fourth European symposium on programming
Safe polymorphic type inference for a dynamically typed language: translating Scheme to ML
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
A practical soft type system for scheme
ACM Transactions on Programming Languages and Systems (TOPLAS)
A practical subtyping system for Erlang
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Static typing for dynamic messages
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-based analysis of uncaught exceptions
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An abstract interpretation for estimating uncaught exceptions in standard ML programs
Science of Computer Programming
A Theory of Objects
ERLANG for Concurrent Programming
ERLANG for Concurrent Programming
A soft-typing system for Erlang
Proceedings of the 2003 ACM SIGPLAN workshop on Erlang
JavaScript instrumentation for browser security
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Status report: specifying javascript with ML
ML '07 Proceedings of the 2007 workshop on Workshop on ML
Better abstractions for secure server-side scripting
Proceedings of the 17th international conference on World Wide Web
Flow Analysis of Code Customizations
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Interfaces and Metainterfaces for Models and Metamodels
MoDELS '08 Proceedings of the 11th international conference on Model Driven Engineering Languages and Systems
An Operational Semantics for JavaScript
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Static type inference for Ruby
Proceedings of the 2009 ACM symposium on Applied Computing
Points-to analysis for JavaScript
Proceedings of the 2009 ACM symposium on Applied Computing
Staged information flow for javascript
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Towards gradual typing for generics
Proceedings for the 1st workshop on Script to Program Evolution
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
Dynamic updates for web and cloud applications
APLWACA '10 Proceedings of the 2010 Workshop on Analysis and Programming Languages for Web Applications and Cloud Applications
Isolating JavaScript with filters, rewriting, and wrappers
ESORICS'09 Proceedings of the 14th European conference on Research in computer security
AjaxScope: A Platform for Remotely Monitoring the Client-Side Behavior of Web 2.0 Applications
ACM Transactions on the Web (TWEB)
GULFSTREAM: staged static analysis for streaming JavaScript applications
WebApps'10 Proceedings of the 2010 USENIX conference on Web application development
Interprocedural analysis with lazy propagation
SAS'10 Proceedings of the 17th international conference on Static analysis
Recency types for analyzing scripting languages
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Dynamic inference of static types for ruby
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Flexible in-lined reference monitor certification: challenges and future directions
Proceedings of the 5th ACM workshop on Programming languages meets program verification
TypeCastor: demystify dynamic typing of JavaScript applications
Proceedings of the 6th International Conference on High Performance and Embedded Architectures and Compilers
Modeling the HTML DOM and browser API in static analysis of JavaScript web applications
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
The eval that men do: A large-scale study of the use of eval in javascript applications
Proceedings of the 25th European conference on Object-oriented programming
The impact of optional type information on jit compilation of dynamically typed languages
Proceedings of the 7th symposium on Dynamic languages
Polymorphic type inference for scripting languages with object extensions
Proceedings of the 7th symposium on Dynamic languages
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Naming anonymous javascript functions
Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion
Towards a program logic for JavaScript
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Nested refinements: a logic for duck typing
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The ins and outs of gradual type inference
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Towards type inference for javascript
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Fast and precise hybrid type inference for JavaScript
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Remedying the eval that men do
Proceedings of the 2012 International Symposium on Software Testing and Analysis
Dependent types for JavaScript
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Eval begone!: semi-automated removal of eval from javascript programs
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Practical static analysis of JavaScript applications in the presence of frameworks and libraries
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
All about the with statement in JavaScript: removing with statements in JavaScript applications
Proceedings of the 9th symposium on Dynamic languages
A trusted mechanised JavaScript specification
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
JavaScript is a popular language for client-side web scripting. It has a dubious reputation among programmers for two reasons. First, many JavaScript programs are written against a rapidly evolving API whose implementations are sometimes contradictory and idiosyncratic. Second, the language is only weakly typed and comes virtually without development tools. The present work is a first attempt to address the second point. It does so by defining a type system that tracks the possible traits of an object and flags suspicious type conversions. Because JavaScript is a classless, object-based language with first-class functions, the type system must include singleton types, subtyping, and first class record labels. The type system covers a representative subset of the language and there is a type soundness proof with respect to an operational semantics.