Abstract
Object-oriented programming languages feature static and dynamic overloading: Multiple methods share the same name but provide different implementations. Dynamic overloading (also know as dynamic dispatch) is resolved at run time based on the type of the receiver object. In this paper, we focus on static overloading, which is resolved at compile time based on the types of the method arguments. The challenge this paper addresses is to incrementalize static overload resolution in IDEs. IDEs resolve overloaded methods for the developer to help them discern which implementation a method call refers to. However, as the code changes, the IDE has to reconsider previously resolved method calls when they are affected by the code change. This paper clarifies when a method call is affected by a code change and how to re-resolve method calls with minimal computational effort. To this end, we explore and compare two approaches to incremental type checking: co-contextual type checking and IncA.
Original language | English |
---|---|
Title of host publication | ISSTA '18 Companion Proceedings for the ISSTA/ECOOP 2018 Workshops |
Place of Publication | New York, NY |
Publisher | Association for Computing Machinery (ACM) |
Pages | 27-33 |
Number of pages | 7 |
ISBN (Print) | 978-1-4503-5939-9 |
DOIs | |
Publication status | Published - 2018 |
Event | ISSTA 2018: The ACM SIGSOFT International Symposium on Software Testing and Analysis - Amsterdam, Netherlands Duration: 16 Jul 2018 → 18 Jul 2018 |
Conference
Conference | ISSTA 2018 |
---|---|
Country/Territory | Netherlands |
City | Amsterdam |
Period | 16/07/18 → 18/07/18 |
Other | Colocated conferences include ECOOP and Curry On |
Keywords
- Overload resolution
- Type checking
- Static analysis
- Incremental computing
- Object-oriented languages