LinuxForum.Fans
Тема

Представлен HOPE, JIT-компилятор для языка Python, транслирующий в C++

Автор: xxblx 3 сообщений 1047 просмотров
20.10.2014 12:15 #397299

Разработчики из Института астрономии и исследовательской лаборатории космологии Швейцарской высшей технической школы Цюриха открыли исходные тексты проекта HOPE, разработанного для ускорения выполнения программных систем на языке Python, используемых для астрономических вычислений. Код проекта распространяется под лицензией GPLv3.

HOPE представляет собой JIT-компилятор, оформленный в виде модуля на языке Python, транслирующий специально отмеченные блоки кода в представление на языке C++ и на лету компилирующий их в машинный код. При первом запуске Python-скрипта при помощи пакета setuptools и штатного C++ инструментария выполняется компиляция HOPE-блоков в форму разделяемой библиотеки, после чего результат кэшируется при последующих вызовах. Обрабатываемые при помощи HOPE функции помечаются специальным декоратором "@jit" или вызываются с использованием функции jit(), например:

text

from hope import jit

@jit def poly(x, y, a): x1 = x - a y[:] = x1 + x1 * x1

или

text
def sum(x, y):
    return x + y

Внутри компилируемых функций допускается использование специального подмножества языка Python с поддержкой явного определения типов, предоставляющего достаточные возможности для научных вычислений. Выигрыш в производительности при использовании HOPE по сравнению с обычным Python может достигать десятков раз - скорость выполнения скомпилированных функций приближается по производительности к программам на С++.



Источник: http://www.opennet.ru/opennews/art.shtml?num=40869
Главная ссылка к новости: https://news.ycombinator.com/item?id=8471638

20.10.2014 13:52 #397317

Не слишком ли амбициозно называть свой компилятор "НАДЕЖДА"?

21.10.2014 01:42 #397418
"Vascom" написал:
Не слишком ли амбициозно называть свой компилятор "НАДЕЖДА"?

Возможно, это акроним, причём состоящий из слов какого-нибудь из официальных языков Швейцарии (немецкий, итальянский, французский, шв. ретороманский.

Войдите или зарегистрируйтесь, чтобы ответить.