Meta-software group#
News#
- May 2026: We welcomed new students to our group.
- April 2026: Our group was established.
About#
普段あまり意識することはないかもしれませんが、ソフトウェア開発は色々なソフトウェアに支えられています。Python 等の言語処理系、NumPy 等のライブラリ、VSCode 等のエディタ、Git 等の版管理システム、Docker 等の仮想化プラットフォーム、Claude Code 等の AI エージェント。これらは全て、ソフトウェア開発を支えるソフトウェアです。
私たちは、そのような「ソフトウェア開発を支えるソフトウェア」をまとめて “メタソフトウェア” と呼び、メタソフトウェアのための技術開発や実証調査といった研究に取り組んでいます。
なぜメタソフトウェアを研究するのか?#
道具の改善は、人類が実現できる物事の水準を向上させます。何千年かの昔、人類は単純な道具しか持っていませんでした。そのため、ピラミッド1つ作るにも大勢の人と長い年月が必要でした。しかし人類は今、高度な道具をいくつも手にしています。そのおかげで、ピラミッドよりも遥かに巨大で複雑、しかも安全で便利な建物を、少人数・短期間で作ることができています。
メタソフトウェアは、ソフトウェア開発を支える道具です。つまり、メタソフトウェアの改善は、人類が実現できるソフトウェアの水準を向上させます。社会のソフトウェア化は今後も進み、今まで以上に巨大で複雑、しかも安全で便利なソフトウェアが数多く必要になるでしょう。そのような状況にも関わらず、もしメタソフトウェアが今のままだとしたら、開発には多くの人と長い年月が必要になってしまいます。この社会的課題を前にして、人を増やすという力技に頼ったり、長い年月を諦めて我慢したりするのは、賢明な選択とは言えません。
具体的にどういう研究をしているのか?#
これまで取り組んできた研究は、大きく2つあります。
プログラミング環境「Multiverse Notebook」の開発#
Jupyter などのプログラミング環境は、情報教育からデータサイエンスの現場まで、様々な場面で利用されています。しかし、人気がある一方で、コードを消しても実行状態の変化は消えないなど、不便な点も多く指摘されています。これらの問題を解決するため、私たちは Multiverse Notebook という新しいプログラミング環境を開発しました。Multiverse Notebook は、実行状態を巻き戻すタイム・トラベリング機能を搭載しており、この機能により、実行状態の推定可能性と実行結果の再現可能性を保ちながら試行錯誤を進めることができるようになっています。
ライブラリ生成ツール「Silverchain」の開発#
ソフトウェア開発において、ライブラリの利用は一般的です。しかし複雑なライブラリは、どのように使えば良いか分かりにくく、誤った使い方をすることも増えてしまいます。この問題を解決するため、私たちは Silverchain というライブラリ生成ツールを開発しました。Silverchain は、ライブラリ API の文法を入力すると、その文法に沿ったメソッド連鎖のみが型検査に通る(文法に沿わない場合はコンパイル時の型エラーが発生する)Fluent API を生成します。Silverchain を使うと、音楽の知識がない人でも簡単なメロディ作成ができるライブラリなどを作ることができます(詳細は以下の GitHub レポジトリや YouTube 動画を参照してください)。
研究室への参加を希望する方へ#
ここまでの内容に共感できる方、興味関心がある方を当研究室は歓迎します。プログラミングやソフトウェア開発のスキルや経験は、あって損はないですが、参加時点で必ずしも必要ではありません。個々人の具体的な研究テーマは、参加後に興味や関心を聞きながら決めていきます。(研究室で進めているプロジェクトの末端にある小さな題材を自動的に与えられるということはありません。)みなさんと共に面白いメタソフトウェアを開発できることを楽しみにしています。
Staffs#
Students#
- Daisuke Shirai
- Haru Sugiyama
- Haru Togashi
- Hayato Goto
- Nanae Yokoyama
- Yuki Mimura
- Yuta Kono