Главная » Просмотр файлов » Лутц М. - Изучаем Python

Лутц М. - Изучаем Python (1077325), страница 14

Файл №1077325 Лутц М. - Изучаем Python (Лутц М. - Изучаем Python) 14 страницаЛутц М. - Изучаем Python (1077325) страница 142018-01-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 14)

Реализация 1гопРу1Ьоп позволяет программам на языке РуФЬоп играть роль как клиентских, так и серверных компонентов, доступных из других языков программирования .ХЕТ. Модель реализации 1гопРу(Ьоп очень напоминает ду(Ьоп (и фактически разрабатывается одним и тем же автором) — она подменяет два этапа на рис. 2.2 справа на эквиваленты среды .НЕТ. Как и ду1Ьоп, основной интерес 1гопРу1Ьоп представляет для разработчиков, которым необходима интеграция РуФЬоп с компонентами .Ь)ЕТ. Поскольку разработка ведется компанией М1сгово11, от 1гопРу1Ьоп, помимо прочего, можно было бы еще ожидать существенной оптимизации производительности.

К моменту написания этих строк реализация 1гопРу1Ьоп еще продолжала разрабатываться. За дополнительной информацией обращайтесь к ресурсам Ру1Ьоп или попробуйте самостоятельно поискать в Сети.' ду1Ьоп в 1гопРузЬоп — это полностью независимые реализации языка Ру1Ьоп, которые компилируют исходный программный код для различных архитектур времени выполнения. Из программ для СРу1Ьоп также можно получить доступ к программным компонентам дача и .МЕТ: например, системы дРуре и РугЬоп для .

ХЕТ позволяют коду, исполняемому интерпретатором СРусЬоп, обращаться к компонентам дача и .1хЕТ. 67 Разновидности модели выполнения Средства оптимизации скорости выполнения Все три реализации, СРу$1топ, ду$1топ и 1гопРуФЬоп, реализуют язык Ру$Ьоп похожими способами: исходный программный код компилируют в байт-код и выполняют полученный байт-код с помощью соответствующей виртуальной машины. Но кроме них существуют и другие реализации, включая динамический компилятор Рзусо и транслятор ЯЬес1зк1п С++, которые пытаются оптимизировать основную модель выполнения. Знание этих реализаций пока не является для вас обязательным, тем не менее краткий обзор их реализации модели выполнения поможет пролить свет на модель выполнения в целом.

Динамический компилятор Ряусо Система Рзусо — это не другая реализация языка РуФЬоп, а компонент, расширяющий модель выполнения байт-кода, что позволяет программам выполняться быстрее. В терминах схемы на рис. 2.2 Рэусо — это расширение РЧМ, которое собирает и использует информацию о типах, чтобы транслировать части байт-кода программы в истинный двоичный машинный код, который выполняется гораздо быстрее. Для такой трансляции не требуется вносить изменения в исходный программный код или производить дополнительную компиляцию в ходе разработки.

Грубо говоря, во время выполнения программы Рвусо собирает информацию о типах объектов, и затем эта информация используется для генерации высокоэффективного машинного кода, оптимизированного для объектов этого типа. После этого произведенный машинный код замещает соответствующие участки байт-кода и тем самым увеличивает скорость выполнения программы.

В результате при использовании Реусо существенно уменьшается общее время выполнения программы. В идеале некоторые участки программного кода под управлением Рзусо могут выполняться так же быстро, как скомпилированный код языка С. Поскольку эта компиляция из байт-кода производится во время выполнения программы, обычно Рзусо называют динамическим О1пзФ-!п-Ф1те, ЛТ) компилятором. Однако в действительности Рзусо немного отличается от ЛТ-компиляторов, которые, возможно, некоторые читатели видели в языке дача. В действительности Рзусо — это специализированный Л1Т-компилятор; он генерирует машинный код, оптимизированный для типов данных, которые фактически используются в программе. Например, если один и тот же участок программы использует различные типы данных в разное время, Рзусо может генерировать различные версии машинного кода для поддержки каждой из комбинаций.

Применение Реусо показывает существенное увеличение скорости выполнения программного кода Ру$Ьоп. Согласно информации, которая приводится на домашней странице проекта, Рвусо обеспечивает увеличение скорости «от 2 до 100 раз, обычно в 4 раза, при использовании немодифицированного интерпретатора Ру$Ьоп, неизменного исходного 68 Глава 2. Как Ругйоп запускает программы текста, всего лишь за счет использования динамически загружаемого модуля расширения на языке С». При прочих равных условиях, наибольший прирост скорости наблюдается для программного кода, реализующего различные алгоритмы на чистом языке Ру1Ьоп, — именно такой программный код обычно переносят на язык С с целью оптимизации.

При использовании Рвусо необходимость в таком переносе теряет свою остроту. До сих пор Рвусо не является стандартной частью Ру1Ьоп — его нужно загружать и устанавливать отдельно. Кроме того, он до сих пор находится на экспериментальной стадии развития, поэтому вам нужно будет следить за его разработкой. В действительности, когда я пишу эти строки, Рвусо все еще можно загрузить и установить, но похоже, что большая его часть будет поглощена более новым проектом «Руру», который представляет собой попытку переписать РУМ на языке Ру1Ьоп с целью обеспечения высокой степени оптимизации, как в Рвусо.

Пожалуй, самым большим недостатком Рвусо является то обстоятельство, что в настоящее время он способен генерировать машинный код только для архитектуры 1п1е1 х86, впрочем, на этой архитектуре работают такие операционные системы, как»т'1пс1очгв, 11ппх и даже Мас. За дополнительной информацией о расширении Рвусо и других попытках реализации «ПТ-компилятора обращайтесь на сайт /зттр://итгега.руИол.огл. Кроме того, вы можете посетить домашнюю страницу проекта Рвусо, которая в настоящее время размещается по адресу /«терс//рауео.аоигее/огяелег.

Транслятор 51зедвИп С++ ЯЬе«1в1«1п — это еще одна система, которая реализует нетрадиционный подход к выполнению программ на языке Ру1Ьоп. Она преобразует исходный код на языке Ру$Ьоп в исходный код на языке С++, который затем может быть скомпилирован в машинный код. Кроме того, эта система реализует платформонезависимый подход к выполнению программного кода Ру1Ьоп.

К моменту написания этих строк система БЬес1эх1п еще находилась на экспериментальной стадии развития и ограничивала программы Ру1Ьоп неявным использованием статических типов, что является ненормальным явлением для программ на языке Ру1Ьоп, поэтому мы не будем углубляться в описание этой системы. Тем не менее, по предварительным результатам, у нее имеется немалый потенциал, чтобы выиграть гонку за скоростью как у стандартной реализации Ру1Ьоп, так и у расширения Рвусо, и это весьма многообещающий проект.

Сведения о текущем состоянии проекта вы можете самостоятельно найти в Сети. Фиксированные двоичные файлы Иногда, когда пользователи спрашивают про «настоящий» компилятор языка Ру1Ьоп, в действительности они просто ищут способ созда- Разновидности модели выполнения 69 вать из своих программ на языке Ру1Ьоп самостоятельные исполняемые файлы. Это необходимо скорее для упаковки и распространения программ, чем для их исполнения, но эти две стороны взаимосвязаны между собой. При помощи инструментов сторонних разработчиков, которые можно загрузить из Сети, вы можете превратить свои программы на языке Ру(Ьоп в настоящие исполняемые файлы, которые в мире Ру1Ьоп известны, как фиксированные двоичные файлы (Ггозеп ЫпаНез). Фиксированные двоичные файлы объединяют в единый файл пакета байт-код программ, РЧМ (интерпретатор) и файлы поддержки, необходимые программам.

Существуют разные реализации такого подхода, но в конечном результате получается единственный исполняемый файл (например, файл с расширением .ехе в тЧ1пс)отче), который легко можно передать заказчику. Такую модель можно представить, если на рис. 2.2 объединить байт-код и РЧМ в единый компонент — фиксированный двоичный файл. На сегодняшний день существует три основных инструмента создания фиксированных двоичных файлов: ру2ехе (для ЧЧ)пс)отче), Ру1пз(а((ег (напоминает ру2ехе, но также работает в Б)ппх и ())ч)1Х и способен производить самоустанавливающиеся исполняемые файлы) и /геезе (оригинальная версия). Вам придется загружать эти инструменты отдельно от Ру(Ьоп, но они распространяются совершенно бесплатно.

Кроме того, они постоянно развиваются, поэтому за дополнительной информацией об этих инструментах обращайтесь на сайт проекта Ру(Ьоп (стерт// шшш ру(йоп.огу) и ЧаиИз о1 Рагпаазие (/ттгрт//шшш.оех.лез/рагпаззиз/). Чтобы дать вам общее представление об области применения этих инструментов, замечу, что ру2ехе может создавать автономные программы, использующие библиотеки Т)с(п$ег, РМЧЧ, тчхРуСЬоп и РуСТК для создания графического интерфейса; программы, использующие инструментальные средства создания игр рудалте; клиентские программы тч1п32сот и многие другие.

Фиксированные двоичные файлы — это не то же самое, что получается в результате работы настоящего компилятора, потому что они выполняют байт-код с помощью виртуальной машины. Следовательно, программы в фиксированных двоичных файлах исполняются с той же скоростью, что и обычные файлы с исходными текстами программ, разве что улучшен способ их запуска. Фиксированные двоичные файлы имеют немалый размер (они содержат в себе РЧМ), но по современным меркам их все же нельзя назвать необычно большими. Так как интерпретатор Ру(Ьоп встроен непосредственно в фиксированные двоичные файлы, его установка не является обязательным требованием для запуска программ на принимающей стороне. Более того, поскольку программный код упакован в фиксированный двоичный файл, он надежно скрыт от получателя.

Такая схема упаковки программ в единственный файл особенно подходит для нужд разработчиков коммерческого программного обеспечения. Глава 2. Как Ругйоп запускает программы Например, программа с графическим интерфейсом на базе Т)с)псег может быть упакована в исполняемый файл и распространятьея как самостоятельная программа на СП или через Интернет. Конечному пользователю не нужно будет устанавливать (и даже знать о том, что это такое) Ру1Ьоп, чтобы запустить распространяемую программу. Будущие возможности В заключение обратите внимание, что модель выполнения, обсуждавшаяся здесь, в действительности является лишь отражением текущей реализации интерпретатора Ру1Ьоп, но не самого языка программирования.

Характеристики

Тип файла
DJVU-файл
Размер
11,21 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6451
Авторов
на СтудИзбе
305
Средний доход
с одного платного файла
Обучение Подробнее