デジタル人材の育成
最終更新日:2021年6月25日
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など学術系でも古くから長く研究されている分野でもあるため、世代を超えて、アカデミアとインダストリーが融合してプログラミング言語の基盤技術と実装が進化していくことを期待したい。
2021年6月25日
2021年度未踏IT人材発掘・育成事業:Passaweeプロジェクト概要を掲載しました。