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 .
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.
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égeA 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).
Perl | |
---|---|
Emberek |
|
Dolgok | |
Keretrendszerek |
|
|
Lua | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
PHP | |
---|---|
Emberek | |
Erőforrások |
|
Megvalósítások | |
Keretrendszerek | |
Tesztelés |
|
ORM | |
IDE | |
Fordítóprogram | Phalanger |
eszköztár | |
Kategória |