robot de la enciclopedia para niños

Pugs para niños

Enciclopedia para niños

Pugs es un programa especial que funciona como un compilador y un intérprete para el lenguaje de programación Perl 6. Su desarrollo comenzó el 1 de febrero de 2005, gracias a Audrey Tang.

Aunque el desarrollo principal de Pugs se detuvo, la mayor parte del trabajo en Perl 6 se trasladó a otro proyecto llamado Rakudo. Sin embargo, el lugar donde se guarda el código de Pugs sigue siendo muy útil, ya que se usa para guardar todas las pruebas oficiales de Perl 6.

¿Qué es Pugs y para qué sirve?

El objetivo principal de Pugs era ayudar a construir el propio Perl 6, implementando todas las reglas y características de este lenguaje, que están detalladas en sus documentos llamados "Synopsis". Pugs fue escrito usando otro lenguaje de programación llamado Haskell, específicamente con una herramienta conocida como el Compilador de Haskell de Glasgow.

Pugs tiene dos programas principales que puedes usar:

  • pugs es el intérprete, que te permite ejecutar código de Perl 6 directamente y probarlo en una ventana interactiva.
  • pugscc es un compilador que puede transformar programas de Perl 6 en otros tipos de código, como Haskell, Perl 5, JavaScript o el lenguaje PIR para la máquina virtual Parrot.

Pugs es un programa de software libre, lo que significa que puedes usarlo, estudiarlo, modificarlo y compartirlo libremente. Se distribuye bajo las mismas condiciones que el propio Perl, usando la licencia pública GNU o la Licencia Artística.

¿Cómo se nombran las versiones de Pugs?

Los números de las versiones de Pugs son un poco especiales, ya que se acercan cada vez más al número 2π (aproximadamente 6.283185...). Este sistema es similar al que usan otros programas como TeX y METAFONT. Cada número después del punto decimal representa un logro importante que se ha completado. El tercer número se aumenta cada vez que se lanza una nueva versión.

Aquí te mostramos algunos de los logros que marcaron las versiones:

  • 6.0: Fue la primera versión.
  • 6.2: Se añadió la capacidad de manejar entradas y salidas básicas, y elementos para controlar el flujo de los programas, como variables que pueden cambiar y asignaciones.
  • 6.28: Se incluyeron las clases y los "tratos" (características de programación).
  • 6.283: Se añadieron las reglas y gramáticas.
  • 6.2831: Se implementó el sistema de tipos y cómo se conectan las cosas en el programa.
  • 6.28318: Se incorporaron las macros.
  • 6.283185: Se planeó que Pugs pudiera ser reescrito en Perl 6, si fuera necesario.

¿Pugs funciona con Perl 5?

Sí, a partir de la versión 6.2.6, Pugs puede entender código de Perl 5 y usar módulos (pequeños programas que añaden funciones) de CPAN, que es una gran colección de módulos de Perl.

Por ejemplo, aquí puedes ver cómo se usa un módulo popular llamado Perl DBI para trabajar con bases de datos:

#!/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";

¿Cómo se desarrolló Pugs?

Varias cosas ayudaron al progreso de Pugs:

  • Uso de Haskell: Al usar Haskell, que es un lenguaje con "tipado estático", es más fácil encontrar errores en el programa antes de que se ejecute. El código en Haskell es a menudo muy claro y directo. Además, una herramienta llamada Parsec, que ayuda a analizar el código, simplificó mucho el trabajo.
  • Desarrollo guiado por pruebas: Pugs siguió una forma de trabajar donde se escriben pruebas para el código incluso antes de que el código principal esté listo. Esto ayuda a mejorar la calidad del programa. Sin embargo, a veces se ignoraban algunos fallos en las pruebas antes de lanzar nuevas versiones, lo que reducía un poco este beneficio.
  • Acceso abierto para colaboradores: Audrey Tang fue muy abierta al permitir que muchas personas ayudaran a escribir código para Pugs. Esto hizo que se creara una gran cantidad de pruebas. Otros proyectos de Perl 6 usan estas pruebas de Pugs para asegurarse de que sus propias versiones de Perl 6 funcionan correctamente.
  • Comunicación de Audrey Tang: El diario de Audrey Tang atrajo a mucha gente al proyecto. Los desarrolladores de Pugs también se reunían en un canal de IRC llamado #perl6.

A pesar de estos puntos positivos, el avance de Pugs se hizo más lento a partir de 2006. Esto se debió a que Audrey Tang no pudo dedicarle tanto tiempo como al principio. Aunque el desarrollo continuó, pocos colaboradores trabajaron activamente en el intérprete basado en Haskell, lo que hizo que el progreso fuera más lento de lo que muchos esperaban al inicio del proyecto.

Véase también

Kids robot.svg En inglés: Pugs (compiler) Facts for Kids

kids search engine
Pugs para Niños. Enciclopedia Kiddle.