Subtype polymorphism à la carte via machine learning on dependent types

Jerry Swan, Colin G. Johnson, Edwin C. Brady

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

The essential rationale for subtype polymorphism is adherence to the 'Open/Closed Principle' [12]: the ability to write framework code in terms of superclasses and subsequently invoke it with any subclass that exhibits 'proper subtyping' via the Liskov Substitution Principle (LSP) [11]. Formally, the LSP states that if ø(t : T) is a provable property of objects t of type T, then ø(s) should be true for objects s of subtype S of T. In practice, such properties have typically been those expressible via 'Design by Contract' [12], specifically preconditions, postconditions and invariants. Such abstraction via subtype polymorphism is intended to insulate against requirements change. However, when new requirements do necessitate a change of contract, the maintenance consequences can be severe. In the (typical) absence of explicit language or tool support, enforcement of proper subtyping is laborious and error-prone: contractual changes typically require manual inspection/repair of the class hierarchy to determine/address violations of the LSP.
Original languageEnglish
Title of host publicationCompanion Proceedings for the ISSTA/ECOOP 2018 Workshops
Place of PublicationNew York, NY
PublisherACM
Pages14-16
Number of pages3
ISBN (Electronic)9781450359399
DOIs
Publication statusPublished - 16 Jul 2018
Event2nd International Workshop on Machine Learning techniques for Programming Languages - Amsterdam, Netherlands
Duration: 18 Jul 201818 Jul 2018
Conference number: 2
https://conf.researchr.org/track/ecoop-issta-2018/ML4PL-2018-papers

Workshop

Workshop2nd International Workshop on Machine Learning techniques for Programming Languages
Abbreviated titleML4PL
Country/TerritoryNetherlands
CityAmsterdam
Period18/07/1818/07/18
Internet address

Fingerprint

Dive into the research topics of 'Subtype polymorphism à la carte via machine learning on dependent types'. Together they form a unique fingerprint.

Cite this