dluciv: (Default)
[personal profile] dluciv
Хабр очень радуется тому, что интерпретатор Питона на Питоне уел интерпретатор Питона на Си: http://habrahabr.ru/blogs/python/87364/

Интерпретатор содержит JIT, и результат, в общем-то, предсказуем. То, что он обгоняет обычный CPython («основную» реализации Питона) — не подвиг. Если ему с чем и соревноваться, так, например, с psyco — другим JIT, предназначенным для CPython.

Хабр, как это с ним бывает (всё меньше олдскула, да), прагматичен, и интересуется, в основном, тем, насколько правильно и быстро что-то отработало, а не тем как оно было сделано. А тут-то самое интересное и есть.

Что такое JIT? Это транслятор из интерпретируемого кода в машинный. Вообще говоря, машинный код исполняется без интерпретатора. Но от обычного компилятора JIT отличается тем, что его вызывают по мере необходимости. И это не даётся бесплатно. Проблема не только в том, что это замедляет, по сравнению с обычным компилятором, работу. Гораздо серьёзнее то, что от JIT не «отвязаться» во время исполнения программы. Т.е. JIT, хотя и генерирует, казалось бы, автономный машинный код, никакой автономности не добавляет. Он влияет исключительно на количественный результат, и это я оставлю для Хабра, пускай ковыряются. А сам буду его наличие игнорировать.

Интересным же моментом является то, что интерпретатор «раскручен» (далее этот термин без кавычек). Если для компилятора раскрутка — процесс интересный, но вполне конечный, то для интерпретатора раскрутка, можно сказать, не может быть закончена. Почему? Из-за той же самой автономности машинного кода. Компилятор может, в конце концов, откомпилировать себя и работать дальше без проблем. Сам. По аналогии, интерпретатор можно интерпретировать. Интерпретатором, как ни парадоксально. А тот интерпретатор чем? Тоже интерпретатором, пусть тем же самым, но другим экземпляром. Очевидно, что такая схема не заработает. Т.е. в конце цепочки должен быть готовый интерпретатор на машинном коде или компилятор, который его даст на выходе.

Так и было сделано. Был написан полноценный компилятор с подмножества языка Python (RPython), который как раз и смог выступить последним звеном цепочки. Раскручивали его, кстати, скорее всего, через интерпретатор CPython, но это не принципиально.

Так вот, уважаемые мои сверстники, которые ещё были пионерами какое-то время, я нашим поколением горжусь. Первый комментарий, упоминающий RPython ( http://habrahabr.ru/blogs/python/87364/#comment_2615286 ) был от человека, родившегося в один год со мной. Кхе-кхе, пук-пук =).
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

February 2022

S M T W T F S
  12345
6789101112
13141516 171819
20212223242526
2728     

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 17th, 2026 10:22 pm
Powered by Dreamwidth Studios