「perlのみがPerlを解析できる」という公理。「perl」はインタプリタバイナリであり、「Perl」は言語であり、ファイルの解析中に解析ルールが変更される可能性があるという事実に大きく由来しています。Perl 5では、これはプロトタイプのサブルーチン宣言、さまざまなプラグマ、およびソースフィルターから取得されます。
私の意見では、これはPerl 6でのみ問題になるでしょう。Perl5では、パーサールールが変更される可能性のある場所の数は限られていますが、Perl6ではそれらは幅広く多様です。Perl 5が持つすべてのものに加えて、Perl 6では独自の演算子を定義できます。この定義はPerlコードで行われるため、それを理解するにはPerlインタープリターが必要です。
私の知る限り、これをサポートする実装はまだありませんが、Perl 6仕様には、テキストまたはASTを操作することによってPerl6コードを再構築できる実際の言語レベルのマクロも含まれています。これらは両方とも、魔法を実行するためにPerlインタープリターの存在を必要とします。
結論として、Perl6はPerl5よりも公理を強くするだろうと私は感じています(そして構文蛍光ペンの作者にとってはさらに悪夢になるでしょう:))もちろんこれは表現力を高めるためのすべてです言語の力なので、譲歩しても大丈夫です。
上記の当然の結果として、Perl 5とは異なり、Perl 6には正式な仕様があるため、公理を「Perl6仕様を実装するインタープリターのみがPerl6を解析できる」に変更する必要があるかもしれませんが、それは少し厄介です。
アップデートごと:
定義上、そのようなコンパイラーにもPerl 6インタープリターが含まれている必要があるため、上記がPerl6用のJITコンパイラーのアイデアを排除するとは思いません。静的コンパイルに関する限り、それは可能かもしれませんが、evalを含む構造は機能しないため、言語の実行時の能力を大幅に制限します。
PPIはPerl5ランドで役立ちます。これは、perlインタープリターがASTへの豊富で使いやすいインターフェースを多く提供していないためです。Perl 6では、イントロスペクションのレベルがはるかに高いため、インタープリター自体が必要なすべてのツールを提供する場合があります。