Gooseが狙う「ヒープなし」のシステム言語、その設計はどこまで本気か
CやRustに慣れた人ほど、この言語の主張には目が止まるはずだ。Gooseは、ヒープアロケータもガベージコレクタもライフタイム注釈も使わず、それでもメモリ安全なシステム言語だと名乗っている。しかも、掲載されているベンチマークではC++や安全なRustより速く、使うメモリも少ないという。単なる「変わった新言語」の紹介ではなく、メモリ管理そのものの前提をひっくり返そうとする試みとして読むと面白い。 元記事によると、Gooseは「メモリ安全なシステム言語」で、ヒープを持たず、GCもなく、ライフタイム注釈も不要だと説明している。コードの見た目はCやRustに近いが、動的な値はすべてコンパイラが管理する data stack 上に置かれ、スコープを抜けると自動的に解放される。つまり、一般的な言語でいう「新規確保して後で解放する」という発想をかなり外している。 特徴としてまず強調されているのは、メモリの配置と寿命がコンパイル時に決まることだ。データスタックはサイズを増やせるが、増えるときに中身を移動しないので、参照が壊れない。`push` した要素への参照を保持したまま、さらに100万回要素を追加
papoo.work