Pyston

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Pyston — проект, у рамках якого компанія Dropbox, в якій працює Гвідо ван Россум, розвиває реалізацію мови Python, створену з використанням напрацювань проекту LLVM. Реалізація примітна застосуванням сучасних технологій JIT-компіляції і націлена на досягнення високої продуктивності, близької до продуктивності традиційних системних мов, таких як C++. Початковий код Pyston написаний на мові C++ і поширюється під ліцензією Apache.

На відміну від проекту PyPy, котрий також просуває ідею застосування JIT для прискорення виконання Python-скриптів, у Pyston використовується не трасуючий JIT, що базується на компіляції в машинний код часто виконуваних циклів, а застосовуваний у сучасних JavaScript-рушіях JIT на основі трансляції окремих методів (method-at-a-time), який, на думку інженерів Dropbox, є перспективнішою технологією. Принцип роботи Pyston зводиться до розбору коду мовою Python і його трансляції в проміжне представлення LLVM (IR, Intermediate Representation). Далі IR-представлення проходить обробку в оптимізаторі LLVM і передається для виконання в JIT-рушій LLVM, який перетворює IR-представлення у машинний код.

Для отримання інформації про типи змінних для програм на динамічній мові Python застосовується техніка ймовірнісного передбачення типів об'єктів з наступним уточненням правильності вибору типу в процесі виконання. Таким чином Pyston постійно варіює виконання між двома гілками — швидкою, коли дані про передбачені типи підтверджуються, і повільною, використовуваною в разі неузгодженості даних про тип. Робота може здійснюватися в багатонитевому режимі, допускає паралельне виконання декількох нитей коду мовою Python і позбавлення від глобального блокування інтерпретатора (GIL, global interpreter lock).

Посилання

[ред. | ред. код]