Parrot
| Autor | Parrot Foundation |
|---|---|
| Aktualna wersja stabilna | 8.1.0 – 16 lutego 2016; około 10 lat temu[1] |
| Platforma sprzętowa | wieloplatformowość |
| System operacyjny | wieloplatformowość |
| Rodzaj | maszyna wirtualna |
| Licencja | Licencja Artystyczna |
| Strona internetowa | |
Parrot – maszyna wirtualna przeznaczona do języków dynamicznie typowanych, takich jak Perl, Ruby i Python.
Historia
Nazwa Parrot pochodzi od primaaprilisowego żartu Simona Cozensa, który w 2001 roku napisał artykuł Programming Parrot na Perl.com (O'Reilly Network), pisząc o tym, iż Larry Wall i Guido van Rossum planują rzekomo połączenie języków Perl i Python[2]. Wbrew burzy negatywnych komentarzy, jakie wówczas wywołał, żart ów – jak się później okazało – zawierał więcej prawdy, niż ktokolwiek mógł wtedy sądzić.
Języki programowania
Projekt Parrot powstał na listach dyskusyjnych Perla jako maszyna wirtualna przeznaczona dla Perla 6 (do dziś lista dyskusyjna projektu Parrot nosi nazwę perl6-internals, lecz wkrótce zmieniona zostanie na parrot-internals, pozostając jednak na serwerach perl.org), jednak prawdopodobnie wcześniej będzie można wykonywać za jej pomocą programy w języku Python lub Perl 5 (projekt Pony) niż Perl 6 (projekt Rakudo). Poza nimi trwają już prace nad wykorzystaniem projektu Parrot dla języków BASIC, Befunge, Brainfuck, Cola, Forth, Jako, m4, Miniperl, Ook, OpenComal, PHP, Plot, Ruby, Scheme, Tcl, URM, LOLCODE i YAL. Wewnętrznymi językami dla projektu Parrot są PASM i IMC (PIR).
Duże zainteresowanie projektem przejawiają środowiska związane z Ruby, podczas gdy twórcy Pythona są bardziej zainteresowani pracami nad własnym projektem PyPy.
Zasady działania
Parrot jest maszyną rejestrową z operacjami wysokiego poziomu, takimi jak (podobnie jak aktualny kod bajtowy Perla) operacje na całych łańcuchach.
Rejestry
Parrot ma po 32 rejestry czterech typów:
- I0 do I31 – rejestry całkowitoliczbowe, które mogą zawierać liczbę całkowitą lub wskaźnik (I od integer, liczba całkowita),
- N0 do N31 – rejestry zmiennoprzecinkowe (N od number, liczba),
- S0 do S31 – rejestry łańcuchowe (S od string, łańcuch znaków),
- P0 do P31 – rejestry obiektowe (P od PMC, Parrot Magic Cookie).
W przeciwieństwie do kodu bajtowego Perla, natywne perlowe typy (skalar, tablica, hasz i inne) są tu traktowane jako obiekty, a maszyna wirtualna operuje na znacznie prostszych typach.
Przypisy
- ↑ New supported release 8.1.0 "Andean Parakeet". Parrot Foundation, 2016-02-16. [dostęp 2020-05-01]. (ang.).
- ↑ Parrot : Some Assembly Required [online], Perl.com, 9 września 2001 [dostęp 2024-10-18] (ang.).
Linki zewnętrzne
- Parrot. Foundation [online], www.parrot.org [zarchiwizowane z adresu 2024-05-20] (ang.).
- Simon Cozens, Programming Parrot [online], Perl.com, 1 kwietnia 2001 [dostęp 2020-05-01] (ang.).
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.