paperbot · PL 论文追踪

RSS

Covariance and Controvariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers)

LMCS vol.Volume 16, Issue 12022
Giuseppe Castagna

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(Abstract)

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.Comment: This is a corrected version of the paper arXiv:1809.01427v7 published originally on Feb. 13, 2020

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot1722,
  title = {Covariance and Controvariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers)},
  author = {Giuseppe Castagna},
  journal = {Logical Methods in Computer Science},
  volume = {Volume 16, Issue 1},
  year = {2022},
  doi = {10.23638/lmcs-16(1:15)2020}
}