Implementing a Language with Flow-Sensitive and Structural Typing on the JVM
Author(s). David J. Pearce and James Noble.
Venue. In Proceedings of the Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE), ENTCS, 279 (1), pages 47--59, 2011. ©Elsevier
Abstract. Dynamically typed languages are flexible and impose few burdens on the programmer. In contrast, static typing leads to software that is more efficient and has fewer errors. However, static type systems traditionally require every variable to have one type, and that relationships between types (e.g. subclassing) be declared explicitly. The Whiley language aims to hit a sweet spot between dynamic and static typing. This is achieved through structural subtyping and by typing variables in a flow-sensitive fashion. Whiley compiles to the JVM, and this presents a number of challenges. In this paper, we discuss the implementation of Whiley’s type system on the JVM.