Papegøje | |
---|---|
Type | virtuel maskine |
Udvikler | Perl Foundation [d] |
Skrevet i | Xi |
Operativ system | Cross-platform software |
nyeste version |
|
Licens |
Kunstnerisk licens og GNU GPL (Engelsk) |
Internet side | parrot.org |
Parrot ( papegøje eller papegøje ; fra engelsk papegøje - papegøje) er en virtuel maskine, der bruges af fortolkede sprog til effektiv udførelse af bytekode. Navnet kommer fra en aprilsnar [ 3] , da der blev annonceret et nyt sprog, der kombinerede Perl og Python .
En vigtig grund til at udvikle den nye virtuelle maskine var skelnen mellem sprog med statiske og dynamiske datatyper. Nutidens mainstream virtuelle maskiner, såsom Java VM og .NET CLR , er designet til sprog med statiske datatyper, mens de sprog, som Parrot sigter mod at understøtte, bruger dynamiske typer. Den virtuelle Parrot-maskine er baseret på brugen af registre , ikke stakken , da dette ifølge udviklerne øger hastigheden og bedre afspejler strukturen af moderne processorer.
Parrot var beregnet til at være grundlaget for Perl -fortolkeren , såvel som målplatformen til kompilering af Perl 6 -kode . Ud over den implementerede del af Perl 6 kan programmer på andre sprog kompileres til bytekode, herunder APL , BASIC , Befunge , Brainfuck , Cola , Forth , Jako , Lisp , m4 , Miniperl , Ook! , Parakeet , OpenComal , PHP , Plot , Pheme , Punie , Python , Ruby , Scheme , Span , Tcl , URM og YAL , men de fleste af implementeringerne af disse sprog til Parrot er ufuldstændige og i en eksperimentel tilstand.
I 2014, på grund af udviklingsproblemer med Parrot, blev MoarVM [4] frigivet som en alternativ virtuel maskineimplementering til Perl 6 .
Parrot er baseret på brugen af registre , i modsætning til de fleste stakbaserede virtuelle maskiner. Parrot tilbyder 4 typer registre:
Til og med version 0.3.0 plejede Parrot at levere programmer med 32 registre af hver type, med mulighed for at øge dette antal til 64. Senere versioner begyndte at give et ubegrænset antal registre; hver funktion kan anmode om så mange registre, som den har brug for.
Ud over selve bytekoden har Parrot et specielt lavniveausprog kaldet Parrot Assembly Language (PASM). Nedenfor er et eksempel på et lille program på det:
sæt I1, 4 # Skriv 4 for at registrere I1 inc I1 # Increment I1 add I1, 2 # Tilføj 2 til I1; værdien i I1 bliver 7 sæt N1, 42,0 # Skriv til N1 værdien 42,0 dec N1 # Sænk N1, ny værdi bliver 41,0 sub N1, 2.0 # N1 bliver 39.0 print I1 # Udskriv indholdet af I1 print ", " # Output streng ", " print N1 # Udskriv værdien af N1 udskriv "\n" # Udskriv nylinjetegn endeParrot kompilerer og kører på en lang række platforme, inklusive alle de mest almindelige, inklusive Linux ( x86 ), Cygwin , Win32 , Tru64 , OpenVMS (Alpha), Solaris ( Sparc ), FreeBSD (x86).
Perl | |
---|---|
Mennesker |
|
Ting | |
Rammer |
|
|
Lua | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
PHP | |
---|---|
Mennesker | |
Ressourcer |
|
Implementeringer | |
Rammer | |
Afprøvning |
|
ORM | |
IDE |
|
Kompiler | Phalanger |
værktøjskasse | |
Kategori |