デジタル人材の育成

未踏IT人材発掘・育成事業:2023年度採択プロジェクト概要(芝山PJ)

公開日:2023年6月19日

1.担当プロジェクトマネージャー

  • 竹迫 良範(株式会社リクルート データプロダクトユニット ユニット長)

2.採択者氏名

  • 芝山 駿介(早稲田大学先進理工学部物理学科)

3.採択金額

  • 2,736,000円

4.プロジェクト名

  • Pythonにトランスパイル可能な静的型付けプログラミング言語の開発

5.関連Webサイト

6.申請プロジェクト概要

本プロジェクトでは動的型付けプログラミング言語Pythonにトランスパイル(変換)可能な静的型付けプログラミング言語、及びその周辺ツールを開発する。Pythonは産業・学術・教育用に広く普及しているプログラミング言語であるが、実行時にコードを検査する動的型付けという方式を採用しているため、実行するまでバグに気づきにくい、実行効率が悪いなどといったデメリットがある。またPythonはそのシェアに比して公式の開発ツール群が貧弱であり、環境構築が難しい言語とされている。これは再現性が重視される学術計算分野においては大きなデメリットである。本プロジェクトで開発するプログラミング言語でそれらの問題を解決する。

本プログラミング言語はPythonコードにトランスパイル可能にする。これにより、Pythonで書かれたコードやライブラリをゼロコストで流用可能となる。本プログラミング言語は強い静的型システムを持ち、より多くの潜在的バグをコード実行前に検出可能にする。このような動的型付け言語に静的型システムを載せる試みは、TypeScriptなどの先例があり、その有用性が実証されている。ただし本プログラミング言語はTypeScriptと違い、トランスパイル対象の言語との文法の互換性に拘らない。問題のあるPythonの文法を修正し、他言語で有効性が実証されている最新のコンセプト(トレイト、関数型プログラミングなど)を導入する。

また、ネイティブコードを出力する機能も実装し、高速な実行を可能とする。更に、ランゲージサーバ、Linter、フォーマッタ、パッケージマネージャなど、開発を補助するツール群を組み込み、それらをコマンド一つで呼び出せるようにする。これにより低い環境構築難度と高い再現性を実現する。

7.採択理由

本プロジェクトは、Pythonへトランスパイル可能な静的型付けプログラミング言語とその周辺ツールを開発する提案である。Rust風なPythonというコンセプトは2023年5月初旬にもMojoが発表されたりと業界内でも人気が高く、ホットである。

動的型付けのプログラミング言語に対して静的型システムを持ち込むという試みは、過去ではJavaScriptにおけるTypeScriptだったり、最近ではLaTeXの代替を目指す静的型付け組版システムSATySFiや、シェルスクリプトの代替を目指す静的型付けスクリプト言語Cotowaliなどの先例があり、多くのプログラマーの生産性を高めることに成功している。

最近は高速なPython処理系の実装も増えてきていることから、多様なバックエンドの選択肢も増えている。さらにネイティブコード実装をすることで高速化の他にライブラリのバージョン依存関係をコンパイル時に確定することでシングルバイナリとしての再現・再配布が用意となるメリットもある。過去のPythonライブラリの資産をうまく活用できるのであれば、エコシステムとしても良い。
JuliaやScalaなど過去の先人達の設計や実装もリスペクトしつつ、TypeScriptのPython版のようなものが生まれることを期待して本提案を採択した。

更新履歴

  • 2023年6月19日

    2023年度採択プロジェクト概要(芝山PJ)を掲載しました。