Paper on gradual typing by Éric Tánter receives recognition at the Dynamic Languages Symposium (DLS)

October, 2023.- The “Most Notable Paper Award” from the 19th Dynamic Language Symposium recognizes the most influential research work, with 10 years of hindsight, and this year the featured paper is “Cast Insertion Strategies for Gradually-Typed Objects” (2013), by Esteban Allende, Johan Fabry and Éric Tanter, all of them, at the time, from the Departamento de Ciencias de la Computación de la Universidad de Chile and the Pleiad Laboratory.

Éric Tanter

Gradual Typing (Gradual Typing) allows for a smooth and progressive integration of dynamic and static programming languages: this work explores the costs, both at a micro and macro scale, of various strategies that seek to protect gradual typing in an object-oriented programming language, examining how these different strategies affect typed, untyped, and mixed code components.

The 19th Dynamic Language Symposium (DLS) is one of the conferences of ACM SIGPLAN, which focuses on discussing dynamically typed languages, their implementation and application. DLS provides a space for researchers, and those working on practical applications, to come together and share their knowledge, experiences and ideas for future research and development in the field.

Éric Tanter, Researcher at the Millennium Institute for Foundational Research on Data (IMFD), points out that “10 years ago, gradual typing was something fairly new, with important theoretical advances but with few implementations in real programming languages. Esteban Allende’s PhD thesis focused on implementing gradual typing for the Smalltalk language. While working on this implementation, we realized there were several challenges to implementing gradual typing in object-oriented languages, and this paper presents an analysis of these problems, and several possible solutions”.

At DLS, it is highlighted as a seminal contribution to the understanding of the performance of gradual typing, which has since become an important area of research. “All the strategies used in gradually typed languages today can trace their lineage to the strategies described and proposed in this paper, especially, the hybrid approach proposed has been adapted numerous times by many systems, giving this work a long-lasting impact that transcends its original scope”, they highlight in the recognition.

In later years, several works focused on how to implement gradual typing, the efficiency problems it can bring, and other challenges. Also, the industry began to propose several languages with gradual types, so this award comes to recognize the impact that this work had on those subsequent efforts, the symposium highlights.

For Éric Tanter, in the study of dynamically typed languages, gradual typing is a very important line of research. “But it is not the only one: the line of research on how to optimize the implementation of dynamic languages, and how to evolve them for emerging contexts (cloud programming, AI, etc.), remains very active”.

Static, dynamic and gradual

Programming languages can be divided into two large groups: statically typed languages, in which type checking is performed at compile time (such as Java, C++, Scala, OCaml, among others), and dynamically typed languages, in which type checking is performed at runtime (such as JavaScript, Python, Ruby, etc).

Both families have dual (dis)advantages: static typing ensures early error detection and allows for certain optimizations, but it introduces some complexity and imposes conservative restrictions, while dynamic typing is more flexible and simple, but is generally more costly, and leaves error reporting to the program’s execution itself.

Gradual typing or gradual typing is precisely a way to combine the strengths of each language family, and as evidence of the interest in this line of research, many dynamic languages now have optional/gradual type systems (TypeScript for JavaScript, Python 3 and its type hints, Hack for PHP, Sorbet for Ruby, etc.).