萌えハッカーニュースリーダー

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

うまい!座布団一枚!

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

Search