Mopslíky (programování) - Pugs (programming)
Mopslíci je překladač a tlumočník pro Raku programovací jazyk, zahájeno 1. února 2005, Audrey Tang. (V té době byl Raku známý jako Perl 6.)
Vývoj mopslíků je nyní kladen na přestávku,[1] přičemž většina implementačních snah Raku nyní probíhá Rakudo.
Přehled
Cílem projektu Pugs bylo bootstrap Perl 6 implementací úplné specifikace Perl 6, jak je podrobně uvedeno v Synopse. Je napsán v Haskell, konkrétně zaměřené na Překladač Glasgow Haskell.
Pugs obsahuje dva hlavní spustitelné soubory:
- Mopslíci je tlumočník s interaktivním shellem.
- Pugscc umí kompilovat programy Perlu 6 do kódu Haskell, Perlu 5, JavaScript nebo Virtuální stroj papouška je PIR shromáždění.
Pugs je svobodný software, distribuovatelné za podmínek buď GNU General Public License nebo Umělecká licence.[2] Jedná se o stejné termíny jako Perl.
Číslování verzí
Počty hlavních / vedlejších verzí Pugů konvergují k 2π (připomíná TeX a METAFONT, které používají podobné schéma); každá významná číslice v menší verzi představuje úspěšně dokončený milník. Třetí číslice se zvyšuje pro každé vydání. Aktuální milníky jsou:
- 6.0: Počáteční vydání.
- 6.2: Základní IO a ovládací prvky toku; proměnlivé proměnné; úkol.
- 6.28: Třídy a vlastnosti.
- 6.283: Pravidla a gramatiky.
- 6.2831: Typový systém a propojení.
- 6.28318: Makra.
- 6.283185: V případě potřeby přeneste porty na Perl 6.
Kompatibilita s Perl 5
Od verze 6.2.6 má Pugs také schopnost vložit Perl 5 a používat CPAN moduly nainstalované v systému. Níže uvedený příklad ukazuje použití populárního Perl DBI modul pro správu databáze:
#! / usr / bin / pugspoužití v6;použití perl5: DBI;můj $ dbh = DBI.připojit('dbi: SQLite: dbname = test.db');$ dbh.dělat("VYTVOŘIT TABULKU Test (projekt, Pumpking)");můj $ něco = $ dbh.připravit(„INSERT INTO Test VALUES (?,?)“);$ něco.vykonat(<PGE Patrick>);$ něco.vykonat(<Pugs Audrey>);$ něco.vykonat(<Parrot Leo>);můj $ res = $ dbh.selectall_hashref('SELECT * FROM Test', 'Pumpking');# Jen další hacker Pugsříci „Just another $ res hacker“ ;
Model rozvoje
Jako důvody pokroku Pugse bylo navrženo několik faktorů:
- Haskellova statické psaní může usnadnit detekci chyb programu v době kompilace. Haskellův kód je také často považován za výstižný. Knihovna Parsec [1], a monadický kombinační analyzátor napsaný zcela v Haskellu, zjednodušuje analýzu. Protože Haskell je čistě funkční jazyk umožnění interakce funkčního kódu se skutečným světem (vstupy / výstupy a časově řízené prostředí) vyžaduje přemýšlení. K dosažení tohoto cíle Pugs hojně využívá monády.
- Pugs používá metodika založená na zkouškách (princip Extrémní programování ). Tato metodika určuje, že každý modul by měl mít testovací kód, a to ještě před implementací modulů. Zastánci této metodiky tvrdí, že se zlepšuje kvalita softwaru. Projekt však často umlčel neúspěšné regresní testy před vydáním, čímž odstranil většinu výhod vývoje řízeného testy[Citace je zapotřebí ].
- Tangovo liberální udělení spáchat bit. Vývoj mopslíků je v současné době založen na a Podvracení úložiště a přístup je volně poskytován - zejména lidem, kteří chtějí psát testy. Z tohoto důvodu se nahromadila obrovská knihovna testů. Další implementace Perl 6 se spoléhají na mnoho testů vyvinutých pro Pugs jako spustitelná specifikace pro Perl 6.
- Tangův komunikační styl; její deník (odkaz níže) přilákal do projektu mnoho lidí. Vývojáři mopslíků se také scházejí na # perl6 freenode IRC kanál.
Navzdory těmto faktorům se pokrok v implementaci Haskell zastavil koncem roku 2006, protože osobní záležitosti držely Audrey, aby projektu nevěnovala tolik času jako v roce 2005.
Mnoho přispěvatelů Pugs se od té doby přesunulo k implementaci systémů inspirovaných Perl6 jako modulů CPAN na Perlu 5, například Los projekt.