Parrot virtual machine
Parrot era un progetto open source volto a creare una macchina virtuale progettata specificamente per eseguire linguaggi di programmazione dinamici in modo efficiente. A differenza di molte altre macchine virtuali basate sullo stack, Parrot utilizzava un'architettura a registri, che offriva maggiore flessibilità e potenziali vantaggi in termini di prestazioni. Parrot compilava il codice sorgente dei linguaggi di programmazione in un bytecode intermedio (PIR), che veniva poi eseguito dalla macchina virtuale. Parrot era un software open source rilasciato sotto Licenza Artistica 2.0.[2] Parrot è stato un progetto nato e sviluppato principalmente dalla comunità Perl ma che nel tempo ha saputo attrarre a sé molti altri sviluppatore della comunità open source. La Licenza Artistica 2.0 è stata adottata principalmente per ragioni legate alla necessità di bilanciare gli interessi degli autori con quelli della comunità di sviluppatori e utenti. La piattaforma era compatibile con un'ampia gamma di sistemi e con la maggior parte dei processori moderni. La sua flessibilità e le sue caratteristiche avanzate lo rendevano un'ottima scelta per linguaggi come Raku. Era però in grado di supportare altri linguaggi dinamici come Python, Ruby, PHP e molti altri. La versione 1.0, con un'API (Application programming interface) stabile per lo sviluppo, è stata rilasciata il 17 marzo 2009.[3] L'ultima versione è la release 8.1.0 "Andean Parakeet".[4] Parrot è stato ufficialmente interrotto nell'agosto 2021 [5], dopo essere stato soppiantato da MoarVM nel suo utilizzo principale (Raku) e non essere mai diventato una VM mainstream per nessuno degli altri linguaggi supportati.[6] Linguaggi interni a ParrotEsistono tre forme di codice programma in Parrot:
EsempiRegistriParrot è una macchina virtuale basata sui registri. Questo lo avvicina concettualmente al modello delle moderne CPU più che al modello delle virtual machine basate su stack. Parrot fornisce quattro tipi di registri:
A differenza di molte altre architetture, Parrot non impone un numero fisso di registri che possono essere utilizzati in un programma ma sarà il compilatore ad assegnare un numero qualsiasi di registri a una subroutine, a seconda delle sue esigenze specifiche. Operazioni aritmeticheIn PASM set I1, 4
inc I1 # I1 is now 5
add I1, 2 # I1 is now 7
set N1, 42.0
dec N1 # N1 is now 41.0
sub N1, 2.0 # N1 is now 39.0
print I1
print ', '
print N1
print "\n"
end
In PIR .sub 'main' :main
$I1 = 4
inc $I1 # $I1 is now 5
$I1 += 2 # $I1 is now 7
$N1 = 42.0
dec $N1 # $N1 is now 41.0
$N1 -= 2.0 # $N1 now 39.0
print $I1
print ', '
print $N1
print "\n"
.end
mod_parrotmod_parrot è un modulo opzionale per il server web Apache che crea un ponte per la Parrot Virtual Machine (PVM) direttamente all'interno di un ambiente web. In questo modo il codice Parrot esegue le sue operazioni e genera la risposta HTTP che verrà inviata al client. Voci correlateNote
Collegamenti esterni
|