Towards Type-Directed API Search for Mainstream Languages
Software developers spend a lot of their time finding and composing pre-existing functions from various libraries. Almost all developers today use general-purpose search engines for this search. Specialized search engines such as Hoogle for Haskell additionally use type information to improve this search, and have been successful for some typed functional programming languages. The options currently available for type-directed search for mainstream object-oriented languages is limited. Existing approaches for these languages do not have first-class support for subtyping or parametric polymorphism. The splitting and composition of a desired functionality into and from a number of pre-existing functions is also a task that needs to be done manually. In this paper we present a proof-search-based approach to type-directed search with first-class support for subtyping, parametric polymorphism, splitting, and composition. The approach is language agnostic, and can be specialized to simultaneously support multiple typed object-oriented languages. Given that most mainstream languages fall under this category, this approach would extend the benefits of type-directed search to the majority of programmers. As a proof of concept, we provide a running implementation of the core language-agnostic approach and extend it to support the Java programming language. Further extensions would allow the tool to simultaneously support multiple programming languages using the same query syntax.
Fri 6 SepDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
16:00 - 17:30 | |||
16:00 22mTalk | Typed, Concise, Nanopass (pick 3) (Extended Abstract) TyDe Lawrence Chonavel Utrecht University File Attached | ||
16:22 22mTalk | Term Search in Rust TyDe | ||
16:45 22mTalk | Towards Type-Directed API Search for Mainstream Languages TyDe Marc Etter OST Eastern Switzerland University of Applied Sciences, Farhad Mehta OST Eastern Switzerland University of Applied Sciences | ||
17:07 22mMeeting | TyDe closing TyDe |