fbpx
Wikipedia

Pugs

Pugs es un compilador y un intérprete del lenguaje de programación Perl 6, cuyo desarrollo comenzó el 1 de febrero de 2005 por Audrey Tang.

El desarrollo de Pugs se ha parado, poniendo la mayor parte de los esfuerzos de implementación de Perl 6 en Rakudo; sin embargo su repositorio de código fuente se sigue usando para almacenar el conjunto de pruebas oficial de Perl 6.

Sumario

El proyecto Pugs tiene como objetivo permitir el bootstrap de Perl 6 mediante la implementación de la especificación completa de Perl 6, como se detalla en sus . Está escrito en Haskell, en particular usando el Compilador de Haskell de Glasglow.

Pugs incluye dos ejecutables principales:

  • pugs es el intérprete con un intérprete de comandos interactivo.
  • pugscc puede compilar programas de Perl 6 a código Haskell, Perl 5, JavaScript, o al ensamblador PIR de la máquina virtual Parrot.

Pugs es software libre, distribuible bajo los términos de la licencia pública GNU o la Licencia Artística.[1]​ Estos son los mismos términos de la licencia de Perl.

Versiones

Los números mayores y menores de las versiones de Pugs convergen a 2π (un esquema que recuerda a TeXy METAFONT, que usan esquemas similares); cada dígito significativo de la versión menor representa un hito completado con éxito. El tercer dígito es incrementado para cada liberación. Los hitos hasta ahora son:

  • 6.0: versión inicial.
  • 6.2: entrada/salida básica y elementos de control de flujo; variables mutables; asignación.
  • 6.28: clases y tratos.
  • 6.283: reglas y gramáticas.
  • 6.2831: sistema de tipos y enlazado.
  • 6.28318: macros.
  • 6.283185: portado de Pugs a Perl 6, si fuera necesario.

Compatibilidad con Perl 5

En la versión 6.2.6, Pugs tiene la habilidad de aceptar Perl 5 y usar los módulos de CPAN instalados en el sistema. El siguiente ejemplo muestra el uso del popular módulo Perl DBI para gestionar una base 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"; 

Modelo de Desarrollo

Varios factores han sido sugeridos como razones del progreso de Pugs:

  • El uso de Haskell. El tipado estático hace fácil detectar los errores en el programa en tiempo de compilación. El código en Haskell es a menudo considerado conciso. La biblioteca Parsec, es un analizador sintáctico monádico combinatorial escrito completamente en Haskell, que simplifica el análisis. Debido a que Haskell es un lenguaje funcional puro, requiere algún esfuerzo para interaccionar con el mundo real (entradas/salidas y entorno guiado por el tiempo). Para conseguirlo, Pugs hace un uso extensivo de monádas.
  • El uso en Pugs de una metodología guiada por pruebas (una máxima de la Programación Extrema). Esta metodología dicta que cualquier módulo debe tener código para pruebas, incluso antes que el módulo sea implementado. Los seguidores de esta metodología arguyen que mejora la calidad del software. Sin embargo, el proyecto a menudo ha silenciado los fallos en las pruebas de regresión antes de las liberaciones, cancelando gran parte del beneficio del desarrollo guiado por pruebas.
  • Posición liberal de Tang a la hora de conceder el commit bit. El desarrollo de Pugs actualmente se basa en el uso de un repositorio en Subversion, y se concede libremente acceso - especialmente a aquella gente que desee escribir pruebas. A causa de esto, se ha acumulado una vasta biblioteca de pruebas. Otras implementaciones de Perl 6 usan los muchos tests desarrollados por Pugs como una especificación ejecutable de Perl 6.
  • El estilo de comunicación de Tang; su diario (enlazado abajo) atrae a mucha gente al proyecto. Los desarrolladores de Pugs también se reúnen en el nodo libre del canal #perl6 de IRC.

A pesar de estos factores, el progreso en el propio Pugs se ralentizó durante 2006 debido a temas personales que impidieron que Audrey consagrara tanto tiempo al proyecto como en 2005. Aunque el desarrollo continua, pocos contribuyentes trabajan activamente en el intérprete basado en Haskell, lo cual hace su progreso mucho más lento de lo que mucha gente esperaba al principio del proyecto.

Referencias

Enlaces externos

  •   Portal:Free software. Contenido relacionado con Free software.
  • Pugs Journal
  • Perl6::Pugs módulo Perl en CPAN
  • Inline::Pugs módulo Perl en CPAN para programar Perl6 dentro de Perl5 (en inglés)
  • Kudos from Perl 6 Design Team


  •   Datos: Q914561

pugs, compilador, intérprete, lenguaje, programación, perl, cuyo, desarrollo, comenzó, febrero, 2005, audrey, tang, desarrollo, parado, poniendo, mayor, parte, esfuerzos, implementación, perl, rakudo, embargo, repositorio, código, fuente, sigue, usando, para, . Pugs es un compilador y un interprete del lenguaje de programacion Perl 6 cuyo desarrollo comenzo el 1 de febrero de 2005 por Audrey Tang El desarrollo de Pugs se ha parado poniendo la mayor parte de los esfuerzos de implementacion de Perl 6 en Rakudo sin embargo su repositorio de codigo fuente se sigue usando para almacenar el conjunto de pruebas oficial de Perl 6 Indice 1 Sumario 2 Versiones 3 Compatibilidad con Perl 5 4 Modelo de Desarrollo 5 Referencias 6 Enlaces externosSumario EditarEl proyecto Pugs tiene como objetivo permitir el bootstrap de Perl 6 mediante la implementacion de la especificacion completa de Perl 6 como se detalla en sus Synopsis Esta escrito en Haskell en particular usando el Compilador de Haskell de Glasglow Pugs incluye dos ejecutables principales pugs es el interprete con un interprete de comandos interactivo pugscc puede compilar programas de Perl 6 a codigo Haskell Perl 5 JavaScript o al ensamblador PIR de la maquina virtual Parrot Pugs es software libre distribuible bajo los terminos de la licencia publica GNU o la Licencia Artistica 1 Estos son los mismos terminos de la licencia de Perl Versiones EditarLos numeros mayores y menores de las versiones de Pugs convergen a 2p un esquema que recuerda a TeXy METAFONT que usan esquemas similares cada digito significativo de la version menor representa un hito completado con exito El tercer digito es incrementado para cada liberacion Los hitos hasta ahora son 6 0 version inicial 6 2 entrada salida basica y elementos de control de flujo variables mutables asignacion 6 28 clases y tratos 6 283 reglas y gramaticas 6 2831 sistema de tipos y enlazado 6 28318 macros 6 283185 portado de Pugs a Perl 6 si fuera necesario Compatibilidad con Perl 5 EditarEn la version 6 2 6 Pugs tiene la habilidad de aceptar Perl 5 y usar los modulos de CPAN instalados en el sistema El siguiente ejemplo muestra el uso del popular modulo Perl DBI para gestionar una base 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 lt PGE Patrick gt sth execute lt Pugs Audrey gt sth execute lt Parrot Leo gt my res dbh selectall hashref SELECT FROM Test Pumpking Just another Pugs hacker say Just another res lt Audrey gt lt Project gt hacker Modelo de Desarrollo EditarVarios factores han sido sugeridos como razones del progreso de Pugs El uso de Haskell El tipado estatico hace facil detectar los errores en el programa en tiempo de compilacion El codigo en Haskell es a menudo considerado conciso La biblioteca Parsec 1 es un analizador sintactico monadico combinatorial escrito completamente en Haskell que simplifica el analisis Debido a que Haskell es un lenguaje funcional puro requiere algun esfuerzo para interaccionar con el mundo real entradas salidas y entorno guiado por el tiempo Para conseguirlo Pugs hace un uso extensivo de monadas El uso en Pugs de una metodologia guiada por pruebas una maxima de la Programacion Extrema Esta metodologia dicta que cualquier modulo debe tener codigo para pruebas incluso antes que el modulo sea implementado Los seguidores de esta metodologia arguyen que mejora la calidad del software Sin embargo el proyecto a menudo ha silenciado los fallos en las pruebas de regresion antes de las liberaciones cancelando gran parte del beneficio del desarrollo guiado por pruebas Posicion liberal de Tang a la hora de conceder el commit bit El desarrollo de Pugs actualmente se basa en el uso de un repositorio en Subversion y se concede libremente acceso especialmente a aquella gente que desee escribir pruebas A causa de esto se ha acumulado una vasta biblioteca de pruebas Otras implementaciones de Perl 6 usan los muchos tests desarrollados por Pugs como una especificacion ejecutable de Perl 6 El estilo de comunicacion de Tang su diario enlazado abajo atrae a mucha gente al proyecto Los desarrolladores de Pugs tambien se reunen en el nodo libre del canal perl6 de IRC A pesar de estos factores el progreso en el propio Pugs se ralentizo durante 2006 debido a temas personales que impidieron que Audrey consagrara tanto tiempo al proyecto como en 2005 Aunque el desarrollo continua pocos contribuyentes trabajan activamente en el interprete basado en Haskell lo cual hace su progreso mucho mas lento de lo que mucha gente esperaba al principio del proyecto Referencias Editar Pugs Apocryphon 1Enlaces externos Editar Portal Free software Contenido relacionado con Free software pugscode org Pugs homepage Pugs Journal Ofun Optimizing for Fun Perl6 Pugs modulo Perl en CPAN Inline Pugs modulo Perl en CPAN para programar Perl6 dentro de Perl5 en ingles Kudos from Perl 6 Design Team Datos Q914561Obtenido de https es wikipedia org w index php title Pugs amp oldid 125249038, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos