Covariance and Controvariance: a fresh look at an old issue - Archive ouverte HAL Accéder directement au contenu
Article Dans Une Revue Logical Methods in Computer Science Année : 2020

Covariance and Controvariance: a fresh look at an old issue

Résumé

Twenty years ago, in an article titled "Covariance and contravariance: conflict without a cause", I argued that covariant and contravariant specialization of method parameters in object-oriented programming had different purposes and deduced that, not only they could, but actually they should both coexist in the same language. In this work I reexamine the result of that article in the light of recent advances in (sub-)typing theory and programming languages, taking a fresh look at this old issue. Actually, the revamping of this problem is just an excuse for writing an essay that aims at explaining sophisticated type-theoretic concepts, in simple terms and by examples, to undergraduate computer science students and/or willing functional programmers. Finally, I took advantage of this opportunity to describe some undocumented advanced techniques of type-systems implementation that are known only to few insiders that dug in the code of some compilers: therefore, even expert language designers and implementers may find this work worth of reading.

Dates et versions

hal-02183397 , version 1 (15-07-2019)

Identifiants

Citer

Giuseppe Castagna. Covariance and Controvariance: a fresh look at an old issue: a primer in advanced type systems for learning functional programmers. Logical Methods in Computer Science, 2020, 16 (1), pp.15:1-15:58. ⟨10.23638/LMCS-16(1:15)2020⟩. ⟨hal-02183397⟩
43 Consultations
0 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More