Depozit | github.com/perl6/Pugs.hs |
---|---|
Scris in | Haskell |
Sistem de operare | Multiplatform |
Tip | Implementarea unui limbaj de programare ( in ) |
Licență | Licență MIT |
Site-ul web | www.pugs.com |
Pugs a fost o implementare experimentală a Perl 6 în limba Haskell și folosind caracteristicile mai avansate ale GHC . În funcție de generarea de cod și de backend-ul de execuție , Pugs poate fi considerat fie un compilator, fie un interpret . Audrey Tang , principalul său contribuitor, după ce s-a retras în 2012, Pugs a fost înlocuit de Rakudo Perl, dar a fost crucial pentru evoluția Perl 6.
Dezvoltatorii Pugs se referă la ei înșiși drept cămile lambda pentru a marca apartenența lor dublă: cămila este mascota limbii Perl , iar lambda (λ) este o referință la calculul lambda, care este baza programării funcționale .
Pugs Distribuția conține codul sursă de diferite origini și , prin urmare , sub diferite open source licențe : a permis artistic 2.0b5, licența Glasgow Haskell compilatoare [1] , GPL 2, LGPL 2.1 și licența MIT .
În conformitate cu tradiția lumii Perl, Pugs rulează pe multe platforme software, inclusiv Unix , Mac OS X și Windows .
Proiectul Pugs își propune să inițieze Perl 6 prin implementarea specificațiilor complete ale Perl 6, detaliate în sinopsele . Este scris în Haskell și folosește cele mai recente caracteristici ale Glasgow Haskell Compiler .
Astfel, implementarea memoriei tranzacționale software pentru programarea simultană, care face posibilă utilizarea cea mai bună a arhitecturilor multi-core sau multiprocesor .
Sau tipuri de date algebrice generalizate.
Pugs include două executabile principale:
Numerele de versiuni ale Pug-urilor converg la 2 × π (acest lucru amintește de TeX și METAFONT , care utilizează un sistem similar); Fiecare cifră semnificativă din versiunea minoră reprezintă o etapă de succes. Pașii anticipați sunt:
Versiunea actuală a Pugs este 6.2.13.11.
De la versiunea 6.2.6, Pug-urile pot include mașina virtuală Perl 5 și, prin urmare, pot folosi module CPAN . JAPH de mai jos arată cum se utilizează Perl DBI , un modul de popular, pentru a gestiona o SQLite bază de date :
#!/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";Pugs este un proiect open source foarte productiv. Început în 2005, progresul său a fost rapid din următoarele motive: