Perlテックブログ

ITエンジニアの成長意欲を刺激する技術考察、モジュール開発の日記。Perlイベントや国内や海外のPerlの記事の紹介。

モジュール単位でプリコンパイルすることができるようになる予感

SPVM開発が順調に進んでおります。

もう少しで、モジュール単位でプリコンパイルすることができるようになる予感というところです。ドキドキ。

モジュール単位でプリコンパイルできると何がうれしいかというと、Perlの文法でソースコードを書いて、CPANからインストールしてもらうときに、プリコンパイルして、それを実行時に読み込んで、プリコンパイルされたサブルーチンを呼びだすことができるようになります。

つまり、ほぼPerlの文法で書いたソースコードを、ほぼC言語の速度で呼び出すことができるようになるということです。パチパチパチ

実行時コンパイルではなくって、プリコンパイルなので、実行時の読出しもメッチャ速いですよ。プリコンパイルの時間的なコストは、CPANからのインストール時点に押し込めます。

Perlに対する不満をたくさん解決

Perlに対する不満っているのは、たくさん聞くじゃないですか。SPVMは、その、あのっ、非常にシンプルに構成されています。

  • カラコンテキストだけだよ
  • 最後に1;書く必要ないよ
  • 配列は、いわゆるリファレンス記法だけだよ [] のやつね。
  • AST(抽象構文木)を作れるから、ソースコード解析が簡単だよ
  • デフォルトで、クラスを書く構文があるよ
  • クラスに関して、フィールドとサブルーチンのメタ情報を持っているよ
  • 数値計算と配列処理速いよ
  • 記号は少なく$と@だけだよ。
  • サブルーチン呼び出し速いよ
  • C言語ソースコードをはけるからLLVMにもWebAssemblyにも(きっと)変換可能だよ

Perl6が言語の表現力の拡大を目指した言語だとすると、SPVMは、言語の小ささと速度にフォーカスを当てた言語です。

SPVMは、Perlのモジュールとして利用できて、配列操作と数値計算C/C++バインディングを強化します。

まぁ、SPVMは言語としては、とってもつまらない言語だ。