close

Papagáj

Ugrás a navigációhoz Ugrás a kereséshez
Papagáj
Papagáj program logója
Típusú Virtuális gép
Fejlesztő A Perl Alapítvány [d]
Beírva Xi
Operációs rendszer Többplatformos szoftver
legújabb verzió
Engedély

Művészi licenc és GNU GPL

 (Angol)
Weboldal parrot.org

A Parrot ( parrot vagy papagáj ; az angol  parrot  - parrot szóból) egy virtuális gép , amelyet értelmezett nyelvek használnak a bájtkód hatékony végrehajtására. A név egy áprilisi tréfából [3] származik, amikor bejelentették egy új nyelvet, amely egyesíti a Perl -t és a Pythont .

Az új virtuális gép fejlesztésének egyik fontos oka a statikus és dinamikus adattípusú nyelvek megkülönböztetése volt. A mai főbb virtuális gépeket, mint például a Java VM és a .NET CLR , statikus adattípusú nyelvekhez tervezték, míg a Parrot által támogatni kívánt nyelvek dinamikus típusokat használnak. A Parrot virtuális gép a regiszterek használatára épül , nem a veremre , mivel a fejlesztők szerint ez növeli a sebességet és jobban tükrözi a modern processzorok szerkezetét.

A Parrot a Perl interpreter alapja volt , valamint a Perl 6 kód fordításának célplatformja . A Perl 6 implementált része mellett más nyelvű programok is fordíthatók bájtkódba, köztük APL , BASIC , Befunge , Brainfuck , Cola , Forth , Jako , Lisp , m4 , Miniperl , Ook ! , Parakeet , OpenComal , PHP , Plot , Pheme , Punie , Python , Ruby , Scheme , Span [en] , Tcl , URM és YAL , de ezeknek a nyelveknek a legtöbb megvalósítása a Parrot számára hiányos és kísérleti állapotban van.

2014-ben a Parrot fejlesztési problémái miatt a MoarVM [en] [4] megjelent a Perl 6 alternatív virtuálisgép-megvalósításaként .

Példák

Regisztrálok

A Parrot a regiszterek használatán alapul , ellentétben a legtöbb verem alapú virtuális géppel. A Parrot 4 típusú regisztert kínál:

  • I: egész számok ( angolul  i nteger )
  • N: lebegőpontos számok (az angol  n umber nyelvből )
  • S: kiterjesztett karakterlánc-regiszterek Unicode támogatással (az angol  s tringből )
  • P: A PMC vagy a Parrot Magic Cookie egy speciális típusú Parrot objektum

A 0.3.0-s verzióig a Parrot minden típusból 32 regiszterrel látta el a programokat, és ezt a számot 64-re lehetett növelni. A későbbi verziók korlátlan számú regisztert biztosítottak; minden funkció annyi regisztert kérhet, amennyire szüksége van.

Parrot Assembly Language

Magán a bájtkódon kívül a Parrot rendelkezik egy speciális , alacsony szintű nyelvvel , a Parrot Assembly Language (PASM) néven. Az alábbiakban egy példa látható egy kis programra:

set I1, 4 # Írjon 4-et az I1 regiszterhez
inc I1 # Növekmény I1
add I1, 2 # Add 2 to I1; az I1 értéke 7 lesz
állítsa be N1, 42.0 # Írja be az N1-be a 42.0 értéket
dec N1 # N1 csökkentése, az új érték 41,0 lesz
sub N1, 2.0 # N1 lesz 39.0
print I1 # Nyomtassa ki az I1 tartalmát
print ", " # Output string ", "
print N1 # Nyomtassa ki az N1 értékét
print "\n" # Újsor karakter nyomtatása
vége

Támogatott platformok

A Parrot sokféle platformot fordít és fut, beleértve a legelterjedtebbeket is, beleértve a Linuxot ( x86 ), a Cygwint , a Win32 -t , a Tru64 -et , az OpenVMS -t (Alpha), a Solarist ( Sparc ), a FreeBSD -t (x86).

Lásd még

  • libJIT könyvtár Reese Weatherly, Klaus Treichel, Alexey Demakov és Kirill Kononenko menet közbeni összeállításához

Jegyzetek

  1. https://github.com/parrot/parrot/releases/tag/RELEASE_8_1_0
  2. http://www.parrot.org/news/2016/Parrot-8.1.0
  3. Parrot programozása (downlink) . perl.com (2001. április 1.). Hozzáférés dátuma: 2015. február 26. Az eredetiből archiválva : 2010. július 18.    (Angol)
  4. Andrej Sitov. 21. századi Perl 6  // Pragmatic Perl. - 2014. december. - Kiadás. 22 .

Linkek