Pugs
From Wikipedia, the free encyclopedia
| Développé par | Audrey Tang |
|---|---|
| Dépôt | github.com/perl6/Pugs.hs |
| Écrit en | Haskell |
| Système d'exploitation | Multiplateforme (en) |
| Type | Implémentation d'un langage de programmation (en) |
| Licence | Licence MIT |
Pugs était une mise en œuvre expérimentale de Perl 6 en langage Haskell, et utilisant les spécificités les plus avancées de GHC. Selon le dorsal de génération et d'exécution de code, Pugs peut être considéré soit comme un compilateur, soit comme un interprète. Audrey Tang, sa principale contributrice, s'étant retirée en 2012, Pugs a été supplanté par Rakudo Perl mais a été crucial pour l'évolution de Perl 6.
Les développeurs de Pugs se désignent comme lambda camels (chameaux lambda) pour marquer leur double appartenance : le chameau est la mascotte du langage Perl, et le lambda (λ) est une référence au lambda calcul qui est à la base de la programmation fonctionnelle.
La distribution Pugs contient du code source de diverses origines et donc sous différentes licences open source : la licence artistique 2.0b5, la licence du Glasgow Haskell Compiler , la GPL 2, la LGPL 2.1 et la licence MIT.
Conformément à la tradition du monde Perl, Pugs tourne sur de nombreuses plates-formes logicielles dont Unix, Mac OS X et Windows.
Le projet Pugs a pour but de bootstrapper Perl 6 en mettant en œuvre la totalité de la spécification de Perl 6, détaillée à Synopses. Il est écrit en Haskell et utilise les fonctionnalités les plus récentes du Glasgow Haskell Compiler.
Ainsi la mise en œuvre de la mémoire transactionnelle logicielle pour la programmation concurrente qui permet d'exploiter au mieux les architectures multi cœur ou multiprocesseurs.
Ou les types algébriques de données généralisés.
Pugs inclut deux exécutables principaux :
- pugs est l'interprète avec un shell interactif ;
- pugscc peut compiler des programmes Perl 6 en code Haskell, en code Perl 5, en JavaScript, ou en assembleur imcc destiné à être interprété par la machine virtuelle Parrot.
