annotations that are unsound by design and discarded by the
TypeScript compiler as it emits code. This design point preserves
programming idioms developers are familiar with, and allows them to leave their
legacy code unchanged, while offering a measure of static error checking in
parts of the program that have type annotations.
Languages such as
StrongScript extend this by
adding sound type checking, but with a tradeoff:
substantially slower than
TypeScript due to runtime checks, and
StrongScript is more restrictive, as only nominal types are
Meanwhile, Just-in-Time (JIT) compilers for
performance by inferring types, and thus treating objects like instances of
Java or any other statically-typed programming
This raises a question: How does one technology use types to be faster, while a closely related technology uses types to be slower? The answer is that there is an impedence mismatch between the types understood and inferred by the JIT, and those created by the language. This project aims to rectify that.
- The VM Already Knew That, in OOPSLA'17 [.pdf];
- the current release of
- the current release of our recreation of
SafeTypeScript, targeting the contracts supported by
HiggsCheck, which includes our benchmarks [.tgz];
- and our adapted benchmarks [.tgz].
- Gregor Richards
- Ellen Arteca
- Alexi Turcotte