Суть и прагматика
Mar. 13th, 2010 11:09 amИнтерпретатор содержит JIT, и результат, в общем-то, предсказуем. То, что он обгоняет обычный CPython («основную» реализации Питона) — не подвиг. Если ему с чем и соревноваться, так, например, с psyco — другим JIT, предназначенным для CPython.
Хабр, как это с ним бывает (всё меньше олдскула, да), прагматичен, и интересуется, в основном, тем, насколько правильно и быстро что-то отработало, а не тем как оно было сделано. А тут-то самое интересное и есть.
Интересным же моментом является то, что интерпретатор «раскручен» (далее этот термин без кавычек). Если для компилятора раскрутка — процесс интересный, но вполне конечный, то для интерпретатора раскрутка, можно сказать, не может быть закончена. Почему? Из-за той же самой автономности машинного кода. Компилятор может, в конце концов, откомпилировать себя и работать дальше без проблем. Сам. По аналогии, интерпретатор можно интерпретировать. Интерпретатором, как ни парадоксально. А тот интерпретатор чем? Тоже интерпретатором, пусть тем же самым, но другим экземпляром. Очевидно, что такая схема не заработает. Т.е. в конце цепочки должен быть готовый интерпретатор на машинном коде или компилятор, который его даст на выходе.
Так и было сделано. Был написан полноценный компилятор с подмножества языка Python (RPython), который как раз и смог выступить последним звеном цепочки. Раскручивали его, кстати, скорее всего, через интерпретатор CPython, но это не принципиально.
Так вот, уважаемые мои сверстники, которые ещё были пионерами какое-то время, я нашим поколением горжусь. Первый комментарий, упоминающий RPython ( http://habrahabr.ru/blogs/python/87364/#comment_2615286 ) был от человека, родившегося в один год со мной. Кхе-кхе, пук-пук =).
no subject
Date: 2010-03-13 10:08 am (UTC)no subject
Date: 2010-03-13 10:59 am (UTC)Кубенскому бы стоило замутить что-нибудь по сложности на уровне алгебры, но он был добрый и ему было влом. Тогда, в принципе, и пользы бы было слегка побольше, и всем бы резко стало не смешно.
no subject
Date: 2010-03-13 11:06 am (UTC)