Pugs

From perl6.cz

Pugs je kompilátor a intrepret pro Perl 6. Cílem projetku Pugs je úplná implementace Perlu 6 podle specifikace definované Synopses a bootstrap Perlu 6. Velká část projektu je napsána v Haskellu, konkrétně v Glasgow Haskell Compiler.

Contents

Úvod

Pugs obsahuje dvě základní části:

  • pugs - interpret s interaktivním shellem
  • pugscc - umožňuje kompilaci Perlu 6 programů do kódu v Haskellu, Perlu 5, JavaScriptu nebo PIR assembleru pro virtuální stroj Parrot

Číslovaní verzí

Čísla verzí konvergují k číslu 2π (podobně jako u enw:TeX a enw:METAFONT). Každé desetinné místo reprezentuje úspěšné dokončení některého milníku. Milníky jsou naplánovany takto:

  • 6.0: první verze
  • 6.2: základní IO operace a řízení toku, proměnlivé (mutable) proměnné, přiřazení
  • 6.28: třídy (classes) a vlastnosti (traits)
  • 6.283: pravidla (rules) a gramatiky (grammars)
  • 6.2831: typový systém a linking
  • 6.28318: makra
  • 6.283185: portování Pugsu do Perlu 6, pokud to bude nutné

Kompatibilita s Perlem 5

Od verze 6.2.6, Pugs umožňuje vložení Perlu 5 a použítí modulů nainstalovaných ze CPANu. Níže uvedený příklad ukazuje použití modulu enw:Perl DBI pro databázi enw:SQLite.

#!/usr/bin/pugs
use v6;
use perl5:DBI;

my $dbh = DBI.connect('dbi:SQLite:dbname=test.db');
$dbh.do("CREATE TABLE Test (Project, Pumpking)");

my $sth = $dbh.prepare("INSERT INTO Test VALUES (?, ?)");
$sth.execute(<PGE Patrick>);
$sth.execute(<Pugs Audrey>);
$sth.execute(<Parrot Leo>);

my $res = $dbh.selectall_hashref('SELECT * FROM Test', 'Pumpking');
# Just another Pugs hacker
say "Just another $res<Audrey><Project> hacker";

Vývojový model

Pugs je vychvalovaný a obvzlášť úspěšný open-source projekt. Hned od svého spuštění na začástku roku 2005 byl jeho rozvoj rychlý. Za hlavní důvody jsou považovány tyto:

Díky licencím a obavám z nedostatku informací o copyrightu od autorů je nepravděpodobné, že The Perl Foundation přijme Pugs jako oficiální implementaci Perlu 6.

Externí odkazy

Personal tools
Language