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 ) был от человека, родившегося в один год со мной. Кхе-кхе, пук-пук =).

Date: 2010-03-13 10:08 am (UTC)
From: [identity profile] shmel.livejournal.com
Помню, в детстве смеялись, что Кубенский всякую теоретическую фигню рассказывает, а ведь самый ценный курс был.

Date: 2010-03-13 10:59 am (UTC)
From: [identity profile] dluciv.livejournal.com
Ну я не смеялся, хотя и теории у него там с гулькин нос было. Смеяться меня в лицее отучили ещё. Если половину где-то слышал, это ещё не значит, что на остальную половину надо забить.

Кубенскому бы стоило замутить что-нибудь по сложности на уровне алгебры, но он был добрый и ему было влом. Тогда, в принципе, и пользы бы было слегка побольше, и всем бы резко стало не смешно.

Date: 2010-03-13 11:06 am (UTC)
From: [identity profile] dluciv.livejournal.com
Алсо да, я тоже добрый и мне тоже влом. А тоже стоило бы.

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 04:06 pm
Powered by Dreamwidth Studios