Papukaija | |
---|---|
Tyyppi | virtuaalikone |
Kehittäjä | Perl Foundation [d] |
Sisään kirjoitettu | Xi |
Käyttöjärjestelmä | Monialustainen ohjelmisto |
uusin versio |
|
Lisenssi |
Taiteellinen lisenssi ja GNU GPL (Englanti) |
Verkkosivusto | parrot.org |
Parrot ( parrot tai parrot ; englanniksi parrot - parrot) on virtuaalikone, jota tulkitut kielet käyttävät tavukoodin tehokkaaseen suorittamiseen. Nimi tulee aprillipilasta [ 3] , kun julkaistiin uusi kieli, joka yhdistää Perlin ja Pythonin .
Yksi tärkeä syy uuden virtuaalikoneen kehittämiseen oli ero kielten välillä, joissa on staattisia ja dynaamisia tietotyyppejä. Nykypäivän valtavirran virtuaalikoneet, kuten Java VM ja .NET CLR , on suunniteltu kielille, joissa on staattisia tietotyyppejä, kun taas kielet, joita Parrot pyrkii tukemaan, käyttävät dynaamisia tyyppejä. Parrot-virtuaalikone perustuu rekistereiden käyttöön , ei pinoon , koska kehittäjien mukaan tämä lisää nopeutta ja heijastaa paremmin nykyaikaisten prosessorien rakennetta.
Parrot oli tarkoitettu Perl - tulkin perustaksi sekä kohdealustaksi Perl 6 - koodin kääntämiselle . Perl 6:n toteutetun osan lisäksi tavukoodiksi voidaan kääntää ohjelmia muilla kielillä, mukaan lukien APL , BASIC , Befunge , Brainfuck , Cola , Forth , Jako , Lisp , m4 , Miniperl , Ook ! , Parakeet , OpenComal , PHP , Plot , Pheme , Punie , Python , Ruby , Scheme , Span , Tcl , URM ja YAL , mutta suurin osa näiden Parrotin kielten toteutuksista on keskeneräisiä ja kokeellisessa tilassa.
Vuonna 2014 Parrotin kehitysongelmien vuoksi MoarVM [4] julkaistiin vaihtoehtoisena virtuaalikonetoteutuksena Perl 6:lle .
Parrot perustuu rekistereiden käyttöön , toisin kuin useimmat pinopohjaiset virtuaalikoneet. Parrot tarjoaa 4 tyyppistä rekisteriä:
Versioon 0.3.0 asti, mukaan lukien, Parrot tarjosi ohjelmille 32 rekisteriä kutakin tyyppiä, ja tämä luku oli mahdollisuus kasvattaa 64:ään. Myöhemmät versiot alkoivat tarjota rajoittamattoman määrän rekistereitä; jokainen toiminto voi pyytää niin monta rekisteriä kuin se tarvitsee.
Itse tavukoodin lisäksi Parrotilla on erityinen matalan tason kieli nimeltä Parrot Assembly Language (PASM). Alla on esimerkki pienestä ohjelmasta:
aseta I1, 4 # Kirjoita 4 rekisteriin I1 sis. I1 # Lisäys I1 lisää I1, 2 # Lisää 2 I1:een; I1:n arvosta tulee 7 aseta N1, 42.0 # Kirjoita N1:een arvo 42.0 dec N1 # Vähennä N1, uusi arvo on 41,0 sub N1, 2.0 # N1 muuttuu 39.0 tulosta I1 # Tulosta I1:n sisältö print ", " # Output string ", " tulosta N1 # Tulosta N1:n arvo print "\n" # Tulosta rivinvaihtomerkki loppuParrot kokoaa ja toimii useilla eri alustoilla, mukaan lukien kaikki yleisimmät, mukaan lukien Linux ( x86 ), Cygwin , Win32 , Tru64 , OpenVMS (Alpha), Solaris ( Sparc ), FreeBSD (x86).
Perl | |
---|---|
Ihmiset |
|
Asiat | |
Kehykset |
|
|
Lua | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
PHP | |
---|---|
Ihmiset | |
Resurssit |
|
Toteutukset | |
Kehykset |
|
Testaus |
|
ORM | |
IDE |
|
Kääntäjä | Phalanger |
-työkalusarja | |
Kategoria |