未踏プロジェクトダッシュボード

IPA未踏事業 プロジェクト一覧

修正・お問い合わせはこちら
一覧に戻る
2021年度未踏IT

Goの資産を再利用できるコンパイラ基盤

プロジェクト概要

Goは、現在のソフトウェア産業界で最も勢いと需要のあるプログラミング言語の一つである。Goで実装されたソフトウェアやOSSライブラリはコンテナ型仮想化の基盤ソフトウェアであるDockerを始めとして、日に日に増えている。

Goコンパイラの特徴としてソースコードを様々なアーキテクチャで動くシングルバイナリとしてクロスコンパイルできることが挙げられる。これはコンテナサイズを小さくしたいモダンなWebアプリケーションアーキテクチャと相性が良く、実装言語として採用される理由に一役買っている。しかしその一方で、以下のような言語機能やコンパイラアーキテクチャの課題が挙げられる。

本プロジェクトでは、以上の問題を解決するために、フロントエンドに依存せずにGoの資産を再利用できるコンパイラ基盤を開発する。

採択理由

本提案はLLVMやWASMのようなコンパイラ基盤をGo Assemblyベースで実現するという野心的なプロジェクトである。過去PerlコミュニティでParrotというレジスタベースの仮想マシンが提案されたことがあり、Perl6やPythonをサポートするためにPVM、PASM、PIR、PBC、IMCC、PIRCなど様々なレイヤーでの実装が作られたが、実行速度の問題もありメジャーになることはできなかった。

最初の性能要件として実行速度が重要視されて作られたGo Assemblyをベースにコンパイラ基盤を開発することが出来れば、Parrotで実現できなかったことが今の時代でできるかもしれない。コンパイラ共通基盤はCOINSなど学術系でも古くから長く研究されている分野でもあるため、世代を超えて、アカデミアとインダストリーが融合してプログラミング言語の基盤技術と実装が進化していくことを期待したい。

PM

竹迫 良範

株式会社リクルート データプロダクトユニット ユニット長

クリエータ

Jantakorn Passawee

株式会社はてな Mackerel 開発チーム

採択金額

2,736,000

関連リンク