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

2025/08/29 09:59 A tiny (1000 lines), fastish, embeddable scripting language can be AOT compiled

出典: https://wareya.wordpress.com/2025/08/11/my-tiny-1000-lines-fastish-embeddable-scripting-language-can-be-aot-compiled/
hakase
博士

ねえロボ子、Filliっていう新しい組み込み言語が出たの知ってるか?C23で書かれてて、LuaとかPythonみたいに使えるらしいぞ。

roboko
ロボ子

Filliですか?初耳です。C23で書かれているということは、比較的新しい言語なのですね。LuaやPythonライクというのは、具体的にどのような点が似ているのでしょうか?

hakase
博士

そこが面白いところじゃ!構文がLuaやPythonに似てるらしいのじゃ。関数とかクロージャ、ジェネレータ、辞書、配列も持ってるって書いてあるぞ。

roboko
ロボ子

なるほど。組み込み言語として、Luaの代替を意識しているのでしょうか?記事によると、Luaよりもサイズが大きく、レコード型がないことが多いという問題意識が背景にあるようですね。

hakase
博士

そうそう!Luaは200KB近くあるから、もっと小さいのが欲しかったみたいじゃな。Filliはパーミッシブライセンスで、サンドボックス化もできるらしいぞ。組み込み用途には嬉しいポイントじゃ。

roboko
ロボ子

ライセンスが緩いのは、商用利用を考える上で重要ですね。サンドボックス化もセキュリティ面で安心です。性能面はどうなのでしょうか?

hakase
博士

インタプリタはLuaより2倍遅いらしい。でも、AOT(事前コンパイル)バージョンは、LuaJITのインタプリタとコンパイラの中間くらいの性能が出るらしいぞ!

roboko
ロボ子

AOTコンパイラがあるのは大きいですね。Cコードを生成してコンパイルするとのことですが、どの程度高速化されるのでしょうか?

hakase
博士

AOTバージョンはインタプリタより6倍速いらしいぞ!LuaJITインタプリタより2.5倍速くて、LuaJITコンパイラ/JITより2.5倍遅いって書いてある。

roboko
ロボ子

それはすごいですね!LuaJITは高速ですが、JITコンパイラは環境によっては使えないこともありますから、AOTコンパイラは非常に魅力的です。

hakase
博士

じゃろ?しかも、インタプリタは1000行未満のCコードで書かれてるらしいぞ。AOTコンパイラは独自の技術を使ってるみたいじゃが。

roboko
ロボ子

1000行未満ですか!非常にコンパクトですね。メモリ管理にはBoehm GCを使用しているとのことですが、組み込み用途ではGCのオーバーヘッドが気になるかもしれません。

hakase
博士

確かに、そこは注意が必要じゃな。ソースファイルあたりの識別子の数に32kの制限があったり、continue/breakのパッチアップポイントの数に制限があったりするみたいじゃ。

roboko
ロボ子

制限事項もあるのですね。大規模なプロジェクトには向かないかもしれませんが、小規模な組み込みスクリプトとしては十分かもしれません。どのような用途が考えられますか?

hakase
博士

例えば、ゲームエンジンのスクリプト言語とか、組み込み機器の設定ファイルとかじゃな。Luaの代わりにFilliを使う、みたいな。

roboko
ロボ子

なるほど。Luaからの移行パスも用意されていると、さらに普及が進みそうですね。Filliの今後の発展に期待したいです。

hakase
博士

そうじゃな!私もFilli、ちょっと触ってみたくなってきたぞ!…って、あれ?Filliのリポジトリ、私の家の冷蔵庫の中にあったのじゃ!

roboko
ロボ子

博士、それは一体どういうことですか…?まさか、冷蔵庫でFilliをコンパイルしていたとか…?

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

Search