Article ID Journal Published Year Pages File Type
433338 Science of Computer Programming 2014 18 Pages PDF
Abstract

•A practical gradual type system for Smalltalk that supports a smooth path from untyped to typed code.•A novel combination of several typing features, with some interesting interactions.•A discussion of some implementation tradeoffs and challenges for a gradual type system in a “live” programming environment like that of Smalltalk.•An initial validation of the type system through typing several Smalltalk projects.

Being able to combine static and dynamic typing within the same language has clear benefits in order to support the evolution of prototypes or scripts into mature robust programs. While being an emblematic dynamic object-oriented language, Smalltalk is lagging behind in this regard. We report on the design, implementation and application of Gradualtalk, a gradually-typed Smalltalk meant to enable incremental typing of existing programs. The main design goal of the type system is to support the features of the Smalltalk language, like metaclasses and blocks, live programming, and to accommodate the programming idioms used in practice. We studied a number of existing projects in order to determine the features to include in the type system. As a result, Gradualtalk is a practical approach to gradual types in Smalltalk, with a novel blend of type system features that accommodate most programming idioms.

Related Topics
Physical Sciences and Engineering Computer Science Computational Theory and Mathematics
Authors
, , , , ,