Go言語にジェネリクスを導入するために,その形式的な議論を研究した論文「Featherweight Go」が6月頭に発表されました. せっかくなので(久々に)全訳をしながら丁寧に読んでみたので,それを簡単にまとめることにします. 可能な限りGo言語に馴染みのない人や,プログラミング言語の形式的な議論に馴染みのない人でも理解できるようにしてみます. 注意 僕は英語がとても苦手です(DeepLを駆使しても3週間かかりました) 僕はGoでアプリケーションを少し書いていますがコアについては全く詳しくありません 僕は言語の形式的な議論を院生時代にやってましたが卒業して数年経ちます なので間違ってる可能性も十分に考慮してください. TL;DR Goにジェネリクスを導入する新しいデザインを提案: インターフェースと型アサーションを駆使する方法 新デザインを形式的に議論するために FG と FGG を定義