ClojureからYAMLScriptへのトランスパイラ登場
github.com
2026年5月30日 (土)
- •「cljys」プロジェクトは、表現力豊かなClojureクエリをネイティブのYAMLScriptバイナリに変換するデュアルパス・トランスパイラである。
- •LLMがセマンティックなフロントエンドとして複雑なClojureコードを正規化し、Pythonが決定論的なASTマッピングを実行する。
- •GraalVMを活用してYAMLScriptコードをスタンドアロンのネイティブ実行ファイルにコンパイルすることで、JVMのオーバーヘッドを回避する。
whitecell-devが提供する「cljys」プロジェクトは、ClojureのデータクエリをYAMLScript(YS)へ変換し、依存関係のないネイティブバイナリを生成するツールチェーンである。この手法は、LLM処理と決定論的なコンパイルを分離するデュアルパス・アーキテクチャを採用することで、Lisp構文の解析における複雑さを解決する。
パイプラインの初期段階では、LLMを活用したセマンティック・フロントエンドが、慣用的なClojureコードを厳格でフラットな中間表現へと正規化する。この工程でデータ構造を展開する「パラメーターの分解(Destructuring)」の除去や、明示的な文字列結合が保証され、手作業による複雑なパーサーの実装が不要となる。
正規化を経て、Python製の出力プログラム(clj-to-ys.py)がClojureの抽象構文木(AST)をYAMLScriptの構造へと直接マッピングする。生成されたYAMLScriptコードは「ys -c」コマンドでネイティブなバックエンドへと送られ、JVMオーバーヘッドなしにミリ秒単位で実行可能なバイナリへコンパイルされる。プロジェクトは、print文における可変引数の禁止や、ベクトルインデックス参照には「(nth vector index)」形式を用いるといった特定の構文ルールを規定している。
このツールチェーンにより、開発者は意図を維持した変換にLLMを活用しつつ、コンパイルには厳格なローカルツールを利用できる。ソースコードはPython、Clojure、シェルスクリプトで構成され、MITライセンスのもとで公開されている。