Papagáj

Papagáj
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 , 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 [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:

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

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