Abstract
JavaScript is a powerful imperative object based language made popular by its use in web pages. It supports flexible program development by allowing dynamic addition of members to objects. Code is dynamically typed: a runtime access to a non-existing member causes an error. We suggest a static type system for JavaScript that will detect such type errors. Therefore, programmers can benefit from the flexible programming style offered by JavaScript and from the safety offered by a static type system. We demonstrate our type system with a formalism of JavaScript, JS0. Our types are structural. Members of an object type are classified into definite and potential. A potential member becomes definite upon assignment. We outline a proof that our type system is sound.
| Original language | English |
|---|---|
| Pages (from-to) | 37-58 |
| Number of pages | 22 |
| Journal | Electronic Notes in Theoretical Computer Science |
| Volume | 138 |
| Issue number | 2 |
| DOIs | |
| Publication status | Published - 23 Nov 2005 |
| Event | Proceedings of the Second Workshop on Object Oriented Developments (WOOD 2004) - Duration: 30 Aug 2004 → 30 Aug 2004 |
Keywords
- JavaScript
- Scripting Languages
- Structural Recursive Types
- Type Checking
Fingerprint
Dive into the research topics of 'Type checking for JavaScript'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver