Pugs(パグズ)は、
Rakuプログラミング言語の
コンパイラおよび
インタプリタとして、
2005年2月1日に唐鳳(オードリー・タン)氏によって開発が始まりました。このプロジェクトは、Perl 6の完全な実装を目指し、そのブートストラップを実現することを目標としています。Pugsは
Haskellで実装されており、そのアーキテクチャは、プログラミング言語の高度な機能と効率的な実行を両立させることを目指しています。
Pugsの概要
Pugsの主な目的は、Perl 6(現在は
Rakuとして知られています)の仕様に完全に準拠した
コンパイラと
インタプリタを提供することです。これにより、開発者はPerl 6のすべての機能を活用し、その革新的な機能を利用してアプリケーションを構築できます。Pugsは、Perl 6の複雑な文法とセマンティクスを正確に解析し、効率的な実行コードを生成する能力を持つように設計されています。
実行ファイル
Pugsには、主に以下の2つの実行ファイルが含まれています。
1.
pugs: この実行ファイルは、インタラクティブシェルを備えた
インタプリタとして機能します。これにより、ユーザーはコマンドラインからPerl 6のコードを直接実行し、結果を即座に確認することができます。このインタラクティブな環境は、新しいコードのテストや実験に非常に役立ち、開発プロセスを迅速化します。
2.
pugscc: この実行ファイルは、
コンパイラとしての役割を果たします。pugsccは、Perl 6のコードを
Haskell, Perl 5,
JavaScript,
Parrot仮想マシンのPIRアセンブリなど、さまざまな形式にコンパイルできます。これにより、Pugsは多様なプラットフォームと環境での実行をサポートし、開発者がより柔軟にアプリケーションを配布できるようにします。
バージョン番号の付け方
Pugsのバージョン番号は、独特な方法で付けられています。新しいバージョンがリリースされるたびに、6.0, 6.2, 6.28, 6.283, ... というように、2π(約6.2831853)に収束するように番号が付けられます。この方法を採用した背景には、
TeXや
METAFONTなどの組版システムと同様に、ソフトウェアの成熟度と安定性を反映するという意図があります。バージョン番号が2πに近づくにつれて、Pugsがより完成に近づいていることを示唆しています。
Pugsの意義
Pugsは、Perl 6(
Raku)の初期開発段階において、その実装を推進し、コミュニティによる実験とフィードバックを可能にする上で非常に重要な役割を果たしました。Pugsの存在は、Perl 6の仕様が現実のコードとして具体化されるのを助け、言語の進化に大きく貢献しました。また、
Haskellでの実装は、関数型プログラミングの原則をPerl 6の
コンパイラに応用する試みとして、プログラミング言語開発の分野でも興味深い事例を提供しました。
外部リンク
Pugsに関する詳細な情報は、以下のリンクから入手できます。
pugscode.org - Pugsの公式ホームページ
Pugs Journal
Ofun: Optimizing for Fun
Perl6::Pugs on CPAN
*
Kudos from Perl 6 Design Team
Pugsは、
Rakuプログラミング言語の歴史において重要な位置を占めており、その開発プロセスと成果は、プログラミング言語の研究者や開発者にとって貴重な教訓を提供しています。