Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования

И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования, страница 7

PDF-файл И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования, страница 7 Практика расчётов на ПЭВМ (38623): Книга - 3 семестрИ.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования: Практика расчётов на ПЭВМ - PDF, страница 7 (38623) - СтудИзба2019-05-08СтудИзба

Описание файла

PDF-файл из архива "И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 7 страницы из PDF

Еслиисходная запись программы ведется на языках, близких к машинному представлениюпрограмм, такая обработка может быть относительно несложной. Программы, которыеобрабатывают тексты на таких языках, называются ассемблерами. Несмотря набольшую разницу в аппаратуре разных вычислительных машин, их языки ассемблерачасто очень похожи друг на друга, отличаясь только представлением самих машинныхкоманд. Для языков ассемблера разработан стандарт, в котором специально указано,что все подобные языки должны обрабатываться соответствующими ассемблерами наоснове принципа “один-в-один”.Другой вид трансляторов – компиляторы.

Термин компилятор обычноиспользуется вместо термина транслятор в тех случаях, когда исходным языкомтрансляции является язык программирования высокого уровня, например Паскаль илиСи++, а объектным языком является автокод, язык ассемблера или машинный языкнекоторой вычислительной машины. Вычислительная система, для которой ведетсякомпиляция, называется целевой вычислительной системой. В это понятие входит нетолько архитектура аппаратных средств ЭВМ, но и операционная система, работающаяна этой аппаратуре, а также набор динамически подключаемых библиотек, которыенеобходимы для выполнения объектной программы и, фактически, становятся еечастью:ИсходнаяпрограммаКомпиляторОбъектнаяпрограммапрограмма № 2,транслируемаяпрограмма № 1,транслирующаяпрограмма № 3,результирующаяРазрыв во времени и в пространствеВходные данныеВыполнениеРезультатСам компилятор может работать в другом операционном окружении, нежели то,в котором будет выполняться откомпилированная им программа.Третий способ использования вычислительной аппаратуры для получениярезультата программы связан с процессом, называемым интерпретацией языка.Интерпретация выполняется программой, называемой интерпретатором.

Приинтерпретации некоторой программы она размещается не в той области памятивычислительной машины, которая предназначена для выполняемых программ, а там,где обычно размещаются исходные данные выполняемых программ.25В отличие от компилятора интерпретатор некоторого исходного языкавыполняет действия, которые этой программой предписываются (для этогоинтерпретатору необходимо передавать еще и входные данные программы).Интерпретатор не порождает объектную программу, которая впоследствии должнавыполняться, а выполняет ее сам. Это и есть принципиальное отличие интерпретатораот компилятора.

Итогом работы интерпретатора является результат, определяемыйсмыслом исходной программы, если исходная программа правильна синтаксически исемантически, либо сообщение об ошибке, в противном случае. В процессеинтерпретации участвуют только две программы (программа интерпретатора иисходная программа) и два набора данных (входные данные программы и ее результат):программа № 1Исходнаяпрограммапрограмма № 2ИнтерпретаторВходные данныеРезультатнабор данных № 2набор данных № 13.2.2. Смешанная стратегия трансляцииИногда интерпретатор сначала производит преобразование исходной программыв некоторое внутреннее представление, которое затем программно интерпретируется.Такой подход называется смешанной стратегией трансляции, это наиболее частовозникающая на практике ситуация.

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

Не все языки программирования допускают такоепостроение интерпретаторов. Для того, чтобы это было возможно, язык долженодновременно допускать возможность существования однопроходного компиляторадля этого языка. Это ограничение приводит к таким свойствам языковпрограммирования, как необходимость описаний объектов данных до их первогоиспользования в программе. Например, не могут интерпретироваться таким способомпрограммы на языках программирования, если эти языки допускают использованиенекоторых объектов прежде, чем в тексте встретится описание этих объектов.Скорость выполнения программы интерпретаторами во много раз меньше, чемпри использовании компиляторов.

Кроме того, при интерпретации исходная программадолжна подвергаться разбору всякий раз при ее выполнении, а при компиляции разборвыполняется только один раз, после чего используется уже не исходный текст, аобъектный файл с готовой программой. Однако интерпретаторы обладают26независимостью от архитектуры целевой вычислительной системы, в то время, как прикомпиляции готовые программы всегда ориентированы на эту архитектуру.Разнородность оборудования, с которой постоянно приходится сталкиваться вглобальных информационных сетях, например, в сети Интернет, препятствуетиспользованию компиляторов, но способствует развитию систем, интерпретирующихтексты исходных программ, либо систем с двойной технологией – компиляции иинтерпретации, в которых, в зависимости от требований пользователя исходнаяпрограммалибокомпилируется,либоинтерпретируется.Примерамиинтерпретируемых языков являются язык JavaScript , а также язык для решения задачискусственного интелллекта ПЛЭНЕР.

Смешанная стратегия трансляции применяется всистемах, работающих в сети Интернет, программы для которых пишутся на языкеJava.3.3. Компилятор как основной компонент системы программированияНа начальном этапе развития теории построения компиляторов их сравнивалимежду собой по количеству проходов по тексту исходной программы, которыевыполнялись при компиляции программ.

Это количество может меняться от одного донескольких десятков, на их количество, кроме свойств исходного языка, могут влиятьтакже свойства операционного окружения, в котором работает компилятор. Проход –это процесс последовательного чтения компилятором данных из внешней памяти, ихобработки и записи результата во внешнюю память. Во время одного прохода можетвыполняться сразу несколько фаз компиляции, но случается, что одна фаза компиляции(например, синтаксический анализ) выполняется за несколько проходов.В настоящее время практически все компиляторы языков программированияпросматривают сам исходный текст только один раз.

Если же такого просмотраоказывается недостаточно, а его часто оказывается недостаточно, организуютсядополнительные просмотры отдельных фрагментов программы, причем выполняютсяони не по исходному тексту, а по его внутреннему представлению. Чтобы построитьтакое внутреннее представление программы, в компиляторе строятся сложныетаблицы, в которые заносятся сведения, извлекаемые из текста программы на первом иединственном его просмотре.3.3.1. Общая схема работы компилятораНа следующей странице изображена схема работы компилятора языкапрограммирования. Сплошные стрелки на этом рисунке указывают порядок работыкомпилятора, а пунктирные линии – потоки информации.3.3.1.1. Основные компоненты компилятора и фазы компиляцииИнформационные таблицы.

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

Конкретная информация зависит от исходного языка, отобъектного языка и сложности транслятора. Кроме таблицы идентификаторов (“имен”)обычно строится таблица констант, в которую включаются все константы,использованные в программе, и заносятся их адреса в объектной программе.27Компиляторязыка программированияТаблицыкомпилятораНачальные установкиФазы анализа программИсходнаяпрограммаТекстЛексический анализ(сканер)ЛексемыСинтаксический исемантический анализ(контроль контекстныхусловий)Анализ и локализацияобнаруженных ошибокВнутреннеепредставлениеТаблицыслужебныхидентификаторовТаблицаконстантТаблицаименФазы оптимизации программВнутреннеепредставлениеФазы синтеза программТаблицапроцедурТаблицаблоковРаспределение памятиСообщенияоб ошибкахВнутреннее представлениеТаблицацикловРаспределение регистровВнутреннее представлениеОбъектнаяпрограммаТекст или кодГенерация команд имашинно-зависимаяоптимизацияМножестводругихтаблицНачальные установки.

Перед началом работы с программой компиляторунеобходимо провести инициирующие мероприятия. К таковым относятся ввод иобработка режимов запуска компилятора и первичное заполнение таблиц исходнойинформацией.Фазы анализа программ. На этапе анализа в компиляторе выполняетсяраспознавание текста исходной программы и заполнение информационных таблиц. Врезультате формируется некоторое внутреннее представление программы, понятное28следующим фазам компиляции.

Получая на вход исходную программу какпоследовательность символов входного языка (“цепочку”), компилятор долженпроверить, принадлежит ли она входному языку, а также определить правила, покоторым эта последовательность строилась. Анализ часто подразделяется налексический, синтаксический и семантический анализ.Лексический анализатор (сканер). Основная задача лексического анализатора –просмотреть весь текст исходной программы и выделить в нем лексемы (минимальныелексические единицы или элементы текста программы, обладающие смыслом в рамкахданного языка).

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