Apr 6, 2014
Asumu Takikawa: Practical Gradual Typing for Dynamic OO Languages
Dynamically-typed OO languages have become a main staple of the practical programmer's toolkit. Once they build large systems in these languages, however, they realize that they want to equip their code with reliable type information for use in maintenance, documentation, and other software engineering tasks. While researchers have started to design gradual type systems to support these efforts, existing systems do not yet support the most dynamic features of these languages. In this talk, I present an OO extension of Typed Racket. Like most dynamically typed OO languages, Racket takes classes seriously and supports them as first-class run-time values. As a result, Racket programmers rely on idioms such as mixins that require first-class classes. My talk will explain how Typed Racket's expanded type system accommodates these idioms and how its type-to-contract compiler ensures the soundness of the boundaries between typed and untyped components. Joint work with: Daniel Feltey, Sam Tobin-Hochstadt, Matthias Felleisen