Object-oriented programming is often characterized as encapsulation plus polymorphism plus inheritance. The original Simula67 demonstrated that we could do without encapsulation and Kristen Nygaard insisted that some OOP could be done without inheritance. I present generic programming as providing encapsulation plus polymorphism. In C++, this view is directly supported by language facilities, such as classes, templates and (only recently) concepts. I show a range of type-and-resource-safe techniques covering a wide range of applications including containers, algebraic concepts, and numerical and non-numerical algorithms.
@InProceedings{stroustrup:LIPIcs.ECOOP.2015.1, author = {Stroustrup, Bjarne}, title = {{Object-Oriented Programming without Inheritance}}, booktitle = {29th European Conference on Object-Oriented Programming (ECOOP 2015)}, pages = {1--1}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-939897-86-6}, ISSN = {1868-8969}, year = {2015}, volume = {37}, editor = {Boyland, John Tang}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/entities/document/10.4230/LIPIcs.ECOOP.2015.1}, URN = {urn:nbn:de:0030-drops-52129}, doi = {10.4230/LIPIcs.ECOOP.2015.1}, annote = {Keywords: object orientation, generic programming, polymorphism, concepts, encapsulation} }
Feedback for Dagstuhl Publishing