Интернет магазин китайских планшетных компьютеров



Компьютеры - PyPy

01 июня 2011


Оглавление:
1. PyPy
2. История проекта
3. Поддерживаемые бэкенды



это интерпретатор языка программирования Python, который написан на Python и может компилировать сам себя.

Цели проекта

PyPy был задуман как реализация Python написанная на Python. Тот факт, что PyPy реализован на языке высокого уровня делает его более гибким и позволяет легче экспериментировать с новыми возможностями чем CPython и легко определить области, где он может быть улучшен.

PyPy призван обеспечить единый механизм трансляции. Он поддерживает фреймворк для реализации динамических языков программирования и осуществляет четкое разделение между спецификацией языка и его реализацией.

Он также призван обеспечить совместимость, гибкость и быстроту реализации языка программирования Python и позволяет реализовывать новые возможности без необходимости программирования на языке низкого уровня.

Трансляция

PyPy состоит из стандартного интерпретатора и транслятора.

Интерпретатор полностью реализует язык Python, используя ограниченное подмножество языка, называемого RPython. В отличие от стандартного Python, RPython является статически типизированным для более эффективной компиляции.

Транслятор является набором инструментов, который анализирует код RPython и переводит его в языки более низкого уровня, такие как C, байт-код Java или CIL. Он также поддерживает подключаемые сборщики мусора и позволяет опционально включать Stackless. Также он включает JIT-компилятор для трансляции кода в машинные инструкции во время исполнения программы.

PyPy как средство реализации интерпретаторов

Компилятор языка RPython можно использовать и для написания интерпретаторов с других языков программирования. Добавив в код такого интерпретатора импорт класса JitDriver и создание его экземпляра, а затем передав в этот класс списки глобальных переменных, изменяемых и неизменяемых в ходе выполнения программы, а также сделав ещё несколько очевидных деклараций, мы, после трансляции с флагом --opt=jit:, получаем работающий JIT-компилятор языка.



Просмотров: 2446


<<< OpenERP