Papukaija

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 .

Esimerkkejä

Rekisterit

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.

Parrot Assembly Language

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 loppu

Tuetut alustat

Parrot kokoaa ja toimii useilla eri alustoilla, mukaan lukien kaikki yleisimmät, mukaan lukien Linux ( x86 ), Cygwin , Win32 , Tru64 , OpenVMS (Alpha), Solaris ( Sparc ), FreeBSD (x86).

Katso myös

Muistiinpanot

  1. https://github.com/parrot/parrot/releases/tag/RELEASE_8_1_0
  2. http://www.parrot.org/news/2016/Parrot-8.1.0
  3. Parrotin ohjelmointi (downlink) . perl.com (1. huhtikuuta 2001). Käyttöpäivä: 26. helmikuuta 2015. Arkistoitu alkuperäisestä 18. heinäkuuta 2010.    (Englanti)
  4. Andrei Šitov. 2000-luvun Perl 6  // Pragmaattinen Perl. - Joulukuu 2014. - Numero. 22 .

Linkit