• Publicidad

Anunciado Parrot v1.0

Novedades y noticias acerca de todo lo relacionado a Perl.

Anunciado Parrot v1.0

Notapor explorer » 2009-03-18 06:14 @301

Ya está publicada la versión 1.0 de Parrot.

Noticia por parte de Zoperman:

«Parrot 1.0.0 con nombre en clave "Haru Tatsu" ya está disponible desde el 17 de Marzo de 2009.
Parrot es una máquina virtual diseñada para compilar y ejecutar bytecode para lenguajes dinámicos. Parrot soporta actualmente un número de implementaciones de lenguajes en diferentes grados de madurez, entre los que se incluyen Tcl, Javascript, Ruby, Lua, Scheme, PHP, Python, Perl 6, APL y un traductor de bytecode de .NET.»

Anuncio oficial (en inglés).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Notapor explorer » 2009-03-20 06:37 @317

Zoperman ya ha hecho la prueba de bajarlo, compilar una versión de Perl 6, y probar el resultado con un código de ejemplo de Perl 6. Y parece que funciona :)

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my %op_dispatch_table = {
        '+'    => { .push(.pop +  .pop) },
        '-'    => { .push(.pop R- .pop) },
        '*'    => { .push(.pop *  .pop) },
        '/'    => { .push(.pop R/ .pop) },
        'sqrt' => { .push(.pop.sqrt   ) },
    };
sub evaluate (%odt, $expr) {
        my @stack;
        my @tokens = $expr.split(/\s+/);
        for @tokens {
                when /\d+/     { @stack.push($_);  }
                when ?%odt{$_} { %odt{$_}(@stack); }
            default        { die "Unrecognized token '$_'; aborting"; }
        }
        @stack.pop;
    }

say "Result: { evaluate(%op_dispatch_table, @*ARGS[0]) }";
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Curioso, además, como a partir del ejemplo original de la calculadora RPN, Patrick Michaud implementa un nuevo operador, para hacer el código más corto. Es el que veis más arriba: R, que lo que hace es invertir el orden de los operandos. Así, (5 R- 4) es lo mismo que (4 - 5).

Esto lo ha hecho por razón de que las operaciones .pop devuelven resultados en orden inverso al que hay que procesarles.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Noticias de Perl

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados