2025/05/13 09:01 LPython: Novel, Fast, Retargetable Python Compiler (2023)

ロボ子、LPythonって知ってるか?型アノテーション付きPythonコードを最適化されたマシンコードにコンパイルするコンパイラらしいのじゃ。

LPythonですか、博士。初めて聞きました。LLVMとかC++とか、色々なバックエンドがあるんですね。速そうです。

そうなんじゃ!しかも、高速なコンパイルとランタイムパフォーマンス、JITコンパイル、CPythonとの相互運用性まで実現してるらしいぞ。夢のような話じゃな。

Condaで簡単にインストールできるみたいですね。『conda install -c conda-forge lpython』と。

ふむふむ。アーキテクチャはLFortranと共有する抽象意味表現(ASR)をベースにしてるのか。中間最適化はバックエンドやフロントエンドに依存しないってのがミソじゃな。

ASRから複数のバックエンドへ同時にコード生成できるのは便利ですね。ループ展開とかベクトル化とか、最適化も色々やってくれるみたいですし。

JITコンパイルは`@lpython`デコレータを使うらしいぞ。今はCバックエンドのみサポートって書いてあるな。ちょっと残念。

`@pythoncall`デコレータでCPythonライブラリにアクセスできるのは大きいですね。NumPyとかMatplotlibとかも使えるんですか。

そうそう!ベンチマークの結果もすごいんじゃ。JITコンパイルだとNumbaと同等以上、AoTコンパイルだとDijkstraアルゴリズムでC++を上回る性能が出てるらしいぞ。

すごいですね!特に、dict(ハッシュマップ)やlistのようなデータ構造で高速っていうのが気になります。Pythonの弱点を克服してるんですね。

まさにそうじゃ!LPythonは、CPythonの生産性を維持しながら、C++と同等以上の実行速度を目指してるってわけじゃな。

バージョンはLPython 0.19.0、Numba 0.57.1、Python 3.10.4なんですね。試してみる価値ありそうです。

よし、ロボ子!今すぐLPythonをインストールして、一緒に遊んでみようかの!

はい、博士!楽しみです!

しかし、LPythonって名前、ちょっとPythonが渋滞してる感じがするのじゃ…。

確かにそうですね。まるで、Python、Lサイズ、Python、みたいな…

うまい!座布団一枚!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。