Лутц М. - Изучаем Python (1077325), страница 15
Текст из файла (страница 15)
Например, вполне возможно, что в течение времени, пока эта книга будет сохранять актуальность (едва ли она сохранится у кого- нибудь через десять лет), появится традиционный компилятор для трансляции исходного текста на языке РусЬоп в машинный код. Кроме того, в бу „щем могут появиться новые варианты реализации интерпретатора и разновидности байт-кода. Например: ° Недавно появившийся проект Раггот поставил перед собой цель выработать единый формат байт-кода, единую виртуальную машину и методики оптимизации для различных языков программирования (подробности на сайте Истр://шшш.рут)топ.огу), ° Ятас)з(евз Рутйоп — вариант стандартной реализации СРуФЬоп, в которой не производится сохранение состояния на стеке вызовов языка С.
Это упрощает перенос РуФЬоп на архитектуры с небольшим размером стека и открывает новые возможности программирования, такие как сопрограммы. ° Новый проект РуРу — попытка реализовать РЧМ непосредственно на языке РуФЬоп, что позволит использовать новые приемы программирования. Подобные грядущие схемы реализации могут несколько изменить схему времени выполнения интерпретатора РуФЬоп, однако скорее всего компилятор байт-кода останется стандартом еще какое-то время. Переносимость и гибкость байт-кода во время выполнения — это очень важные качества многих реализаций РуФЬоп. Более того, добавление в язык конструкций объявления типов с целью обеспечения статической компиляции только повредит гибкости, осмысленности, простоте и общему духу языка Ру(Ьоп.
Из-за динамической природы языка РуФЬоп любые реализации в будущем скорее всего сохранят некоторые черты нынешней РЧМ. В заключение В втой главе была представлена модель выполнения Ру1Ьоп (как РуФЬоп запускает программы) и исследованы некоторые наиболее известные разновидности втой модели (динамические компиляторы и тому подобное). Чтобы писать сценарии на языке РуФЬоп, вам необязатель- Закрепление пройденного но знать внутреннюю организацию интерпретатора и, тем не менее, некоторое знакомство с темой этой главы поможет вам понять, как выполняются ваши программы. В следующей главе вы начнете выполнять свой собственный программный код. А теперь — обычные контрольные вопросы. Закрепление пройденного Контрольные вопросы 1.
Что такое интерпретатор Ру$Ьоп? 2. Что такое исходный программный код? 3. Что такое байт-код? 4. Что такое Рч'М? 5. Назовите две разновидности стандартной модели выполнения Ру1Ьоп. 6. В чем заключаются различия между СРуФЬоп, ЮуФЬоп и 1гопРуФЬоп? Ответы 1. Интерпретатор РуФЬоп — это программа, которая выполняет программы на языке Ру1Ьоп. 2.
Исходный программный код — это инструкции, составляющие вашу программу. Он состоит из текста в текстовых файлах, имена которых обычно имеют расширение .ру. 3. Байт-код — это низкоуровневое представление программы после ее компиляции. РуФЬоп автоматически сохраняет полученный байткод в файлах с расширением .рус. 4. РЧМ вЂ” это Ру$Ьоп Ъ'1г$па! Масыпе (виртуальная машина Ру1Ьоп)— механизм РуФЬоп, который интерпретирует компилированный программный код. 5, Рзусо, БЬебзЫп и фиксированные двоичные файлы — все это разновидности модели выполнения.
6. СРукЬоп — зто стандартная реализация языка. дуФЬоп и 1гопРуФЬоп реализуют поддержку программирования на языке Ру1Ьоп в среде дача и .МЕТ, соответственно; они являются альтернативными компиляторами языка РуФЬоп. Как пользователь запускает программы Итак, настал момент запустить какой-нибудь программный код.
Теперь, когда вы получили представление, как программы запускаются, вы готовы приступать к программированию на языке Руспоп. С этого момента я буду предполагать, что интерпретатор РуФпоп уже установлен у вас на компьютере, в противном случае вернитесь к предыдущей главе, а также прочитайте приложение А, где приводятся советы по установке и настройке интерпретатора. Существует несколько способов заставить интерпретатор Ру1Ьоп выполнить программу, которую вы написали. В этой главе рассматриваются все наиболее часто используемые приемы запуска программ. Попутно вы узнаете, как вводить программный код в интерактивном режиме, как сохранять его в файлах, которые можно будет запускать из командной строки, щелчком на ярлыке и импортировать в виде модулей.
Мы также поговорим об интегрированных средах разработки с графическим интерфейсом, таких как ПП.Е и Ес11рве, и о многом другом. Если вам требуется лишь узнать, как запускать программы на языке РуФЬоп, прочитайте раздел, где описывается ваша платформа, и переходите к главе 4. Однако не пропускайте материал, где описывается импортирование модулей, потому что эти сведения являются основой для понимания архитектуры программ на языке РуФЬоп. Я также рекомендую просмотреть разделы с описанием 1РЬЕ и других интегрированных сред разработки, чтобы вы представляли, какие инструментальные средства доступны, когда приступите к разработке более сложных программ.
Интерактивный режим Пожалуй, самый простой способ запускать программы на языке Ру$Ьоп — это вводить инструкции непосредственно в командной строке Интерактивный режим интерпретатора. Запустить эту командную строку можно разными способами — в интегрированной среде разработки, в системной консоли и т. д. Предположим, что интерпретатор установлен в вашей системе как выполняемая программа, тогда самый универсальный способ запустить интерактивный сеанс работы с интерпретатором заключается в том, чтобы ввести команду рутноп, без аргументов, в командной строке вашей операционной системы.
Например: к рутпоп Ру[ПО» 2.5 [г25:51908, 3вр 19 2006, 09 52.17) [М50 ч 1310 32 Ш1 [Тпте))) оп чггп 32 ТУРЕ 'ПЕ)Р", "СОРУГ1951, "СГЕП118" ОГ ")ШЕПВЕ" ГОГ ПОГЕ 1ПГОГПагГОП »> После ввода слова «ру1Ьоп» командная оболочка вашей операционной системы запустит интерактивный сеанс работы с интерпретатором РуФ)гоп (символ «'/»» здесь означает строку приглашения к вводу, он не должен вводиться вами). Понятие системной командной строки является универсальным, но как получить доступ к ней, зависит от используемой платформы: ° В операционной системе Ж1пг[очгз команду рутноп можно ввести в консоли ПОЗ (она же — Командная Строка (Сопгпгапб Ргопгрт), которую обычно можно найти в разделе Стандартные (Ассемопев), меню Все программы (Ргойгап)3), которое появляется после щелчка на кнопке Пуск (5(аг[)), или в диалоге Пуск-+Выполнить... (5(агт-«йпп...). ° В операционных системах П[ч[1Х, Е1ппх и Мас ОЯ Х эту команду можно ввести в командной оболочке или в окне терминала (например, в хгегпг или в консоли, где запущена командная оболочка, такая как )гвй или свЬ).
° В других операционных системах можно использовать похожие или какие-то специфичные для платформы устройства. Например, чтобы запустить интерактивный сеанс в Ра1шР11о(в, можно щелкнуть на ярлыке Ру()гоп. Если вы не включили путь к каталогу установки Ру1йоп в переменную окружения РАТН, вам вместо простого слова «руФ)топ» может потребоваться ввести полный путь к выполняемой программе. В операционной системе 1)(Г1пг(отче можно попробовать ввести команду С: 1рутноп25ч,рут Поп (для версии 2.
б); в ПХ1Х и в 1лпих: /нвг/1сса1/Ьгп/руг Поп (или /03 г/Ьг0/ рутпсп). Или перед вводом команды «ру1)гоп» можно перейти в каталог, куда был установлен интерпретатор РуФ)топ (для этого в операционной системе ю!пг)оугв, например, можно выполнить команду 00 с: ч,ругпсп25). Интерактивный сеанс работы с интерпретатором Ру1Ьоп начинается с вывода двух строк информационного текста (которые я буду опускать в примерах, для экономии места), затем выводится приглашение к вводу»>, когда интерпретатор РуФ)гоп переходит в режим ожидания ввода новой инструкции или выражения. При работе в интерактивном режиме результаты выполнения ваших инструкций будут выводиться Глаза 3. Как пользователь запускает программы сразу же вслед за строкой с приглашением»>.
Ниже приводятся ре- зультаты выполнения двух инструкций рг! пт: % рутлел »> рг1лт 'Нене ьсг10!' Не11о ьог1О' »> рг1пт 2 ° ° 8 255 Вам пока также не стоит вникать в детали инструкций ргтпц приведенных здесь (изучение синтаксиса мы начнем в следующей главе). В двух словах, эта инструкция вывела текстовую строку и целое число, как видно в строках, которые были напечатаны ниже строк с приглашением к вводу»>. при работе в интерактивном режиме, как показано в этом примере, вы можете вводить любое число команд Ру(Ьоп, и каждая из них будет вы- Тестирование программного кода в интерактивном режиме Благодаря тому, что программный код выполняется немедленно, интерактивный режим превращается в замечательный инструмент для выполнения зксперизгентов с конструкциями языка.