Are you an EPFL student looking for a semester project?
Work with us on data science and visualisation projects, and deploy your project as an app on top of Graph Search.
This lecture covers the optimization of method dispatch in object-oriented languages. It starts with the basics of virtual methods tables and hierarchy, then delves into memory organization and dispatching matrices. The concept of inline caching is introduced as a way to speed up method calls at monomorphic call sites. The lecture explains how inline caching works, its implementation, and provides examples to illustrate its pros and cons. Polymorphic inline caching is discussed as a solution for polymorphic call sites. The lecture also explores membership tests, including relative numbering and Cohen's encoding. Techniques for multiple subtyping settings, such as range compression, packed encoding, and PQ encoding, are explained. The lecture concludes with hybrid techniques for membership tests in Java implementations.