APLAS 2023
Sun 26 - Wed 29 November 2023 Taipei, Taiwan
Mon 27 Nov 2023 11:00 - 11:30 at Room 106 & 107, IIS - Types Chair(s): Jacques Garrigue

Dynamic object-oriented languages, such as Python, Ruby, and Javascript are widely used nowadays. A distinguishing feature of dynamic object-oriented languages is that objects, the fundamental runtime data representation, are highly dynamic, meaning that a single constructor may create objects with different types and objects can evolve freely after their construction. While such dynamism facilitates fast prototyping, it brings many challenges to program understanding. Many type systems have been developed to aid programming understanding, and they adopt various types and techniques to represent and track dynamic objects. However, although many types and techniques have been proposed, it is unclear which one suits real dynamic object usages best. Motivated by this situation, we perform an empirical study on 50 mature Python programs with a focus on object dynamism and object type models. We found that (1) object dynamism is highly prevalent in Python programs, (2) class-based types are not precise to handle dynamic behaviors, as they introduce type errors for 53% of the evaluated polymorphic attributes, (3) typestate-based types, although mostly used in static languages, matches the behaviors of dynamic objects faithfully, and (4) some well-designed but still lightweight techniques for object-based types, such as argument type separation and recency abstraction can precisely characterize dynamic object behaviors. Those techniques are suitable to build precise but still concise object-based types.

Mon 27 Nov

Displayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change

10:30 - 12:00
TypesAPLAS 2023 at Room 106 & 107, IIS
Chair(s): Jacques Garrigue Nagoya University
10:30
30m
Talk
Compilation Semantics for a Programming Language with Versions
APLAS 2023
Yudai Tanabe Kyoto University, Luthfan Anshar Lubis Tokyo Institute of Technology, Tomoyuki Aotani Sanyo-Onoda City University, Hidehiko Masuhara Tokyo Institute of Technology
11:00
30m
Talk
What Types are Needed for Typing Dynamic Objects? A Python-based Empirical Study
APLAS 2023
Ke Sun Peking University, Sheng Chen University of Louisiana at Lafayette, Meng Wang University of Bristol, Dan Hao Peking University
11:30
30m
Talk
Types and Semantics for Extensible Data Types
APLAS 2023
Cas van der Rest Delft University of Technology, Casper Bach Poulsen Delft University of Technology