RPython

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
RPython
Paradygmat wieloparadygmatowy
Typowanie statyczne
Platforma sprzętowa wieloplatformowy
Platforma systemowa wieloplatformowy
Strona internetowa

RPython (Restricted Python) – język programowania będący statycznie typowanym podzbiorem języka Python. Nazwą tą określa się także projekt (dawniej zwany PyPy, obecnie nazwa ta jest zarezerwowana dla innego projektu) pozwalający na manipulację programów RPython.

Każdy program napisany w RPython jest zarazem poprawnym programem w zwykłym Pythonie.

Wymóg statycznego typowania oznacza, że każda zmienna w danej przestrzeni nazw może być zainicjowana wartością tylko jednego typu. Przykładowo, jeżeli w danej funkcji podstawiono pod zmienną "a" wartość 1, to nie może w tej funkcji znaleźć się instrukcja przyporządkowująca zmiennej "a" wartość łańcuchową "pies". RPython pozwala jednak na ograniczony polimorfizm, można np. łączyć w jednej funkcji podstawienia wartości całkowitych i zmiennoprzecinkowych pod jedną zmienną. Przyjęto także, że każda zmienna oprócz zmiennych liczbowych może być ustawiona na wartość None.

RPython ma mniejsze możliwości od pełnego Pythona, programowanie w nim jest trudne i mało wydajne. Nie służy on zatem do pisania normalnych programów. Użyteczność RPythona bierze się natomiast z tego, że jeżeli zostanie w nim napisany interpreter dowolnego języka programowania, to odpowiedni zestaw narzędzi jest go w stanie przekształcić w kompilator lub też w maszynę wirtualną. Projekt RPython jest zatem zestawem narzędzi ułatwiającym tworzenie kompilatorów i maszyn wirtualnych.

Projekt RPython pozwala na tworzenie interpreterów JIT.

W języku RPython został napisany interpreter pełnego języka Python. Projekt ten nazywa się PyPy. Stworzono przy jego pomocy interpreter JIT języka Python, który jest często wydajniejszy od tradycyjnego interpretera napisanego w C (CPython).