Интерпритатор.достоинства и недостатки. Сравнение с процессом компиляция
Дать опред транслятора. Привести общую схему работы транслятора с опис этапов. Транслятор – это программа, которая переводит входную программу на исходном языке в эквивалентную ей выходную программу на результирующем языке. В работе трансляторов учувствуют 3 программы: Сам транслятор Машинная программа Обрабатывающая программа Входными данными для транслятора является последовательность предложений входного языка программирования (файл, который должен содержать текст программы удовлетворяющий синтаксическим и семантическим, требованиям входного языка, выходные данные) Текст – результирующей программы. Важное требование в определении транслятора – эквивалентность входной и выходной программы. Транслятор обычно выполняет так же диагностику ошибок, формирует словари идентификаторов, выдаёт для печати тексты программ. Понятие компилятора. Общая схема. отличие процесса компиляции от интерпретации. Компилировать – это проводить трансляцию машинной программы с проблемно ориентированного языка на машинный ориентированный язык. Компиляция – это: 1) Трансляция программы на язык близкий к машинному. 2) Трансляция программы составленная на исходном языке в объектном модуле. Процесс компиляции состоит из нескольких этапов: Лексического, синтаксического, семантического анализов, генерация промежуточных кода, оптимизации и генерации результирующего машинного кода. Работа компиляции состоит из 2 этапов 1.Этап анализа: Выполняется распознавание текста исходной программы, создание и заполнение таблиц идентификаторов. Результат его работы – внутреннее представление программы понятное компилятору 2.Этап синтеза. На основании внутреннего представления программы и информации содержащейся в таблице идентификаторов порождается текст результирующей программы. Результат этого этапа объектный код. интерпритатор.достоинства и недостатки. Сравнение с процессом компиляция Интерпретатор – это система из компилятора переводящего исходный код программы в промежуточное представление и собственно самого интерпретатора, который выполняет полученный промежуточный код. Достоинства: Большая переносимость интерпретируемых программ – программа будет работать на любой платформе на которой есть соответствующий интерпретатор. Более совершенные наглядные средства. Диагностики ошибок в исходных кодах Упрощение отладки исходных программ. Меньшие размеры кода по сравнению с машинным кодом полученным после обычных компиляторов. Недостатки: Интерпретируемая программа не может выполняться отдельно без программы интерпретатора. Интерпретируемая программа выполняется медленнее по сравнению с исполнением машинного кода в которой был скомпилирован. Практически отсутствует оптимизация кода, что приводит к дополнительным потерям скорости работы. 4.ассемблер, осн-е достоинства. Понятие метки: определение, синтаксис, атрибуты, типы значений: Ассемблер – это компьютерная программа, компилятор исходного текста программы написанной на языке ассемблера. Меткаэто символическое имя, обозначающее определенную ячейку памяти и предназначенное для использования в качестве операнда в командах передачи управления. ИМЯ СЕГМЕНТА КОДА, где эта метка описана; СМЕЩЕНИЕ — расстояние в байтах от начала сегмента кода, в котором описана метка; ТИП, или АТРИБУТ РАССТОЯНИЯ, метки. Последний атрибут может принимать два значения: Near— переход на метку возможен только в пределах сегмента кода, где эта метка описана, то есть для перехода на метку физически достаточно изменить только содержимое регистра EIP/IP; far _- __ переход на метку возможен только в результате межсегментной передачи управления, для осуществления которой требуется изменение содержимого как регистра EIP/IP,так и регистра CS. Метку можно определить двумя способами: оператором: (двоеточие); директивой LABEL. С помощью оператора: можно определить метку только ближнего типа — near. Определенную таким образом метку можно использовать в качестве операнда в командах условных переходов JCCи безусловного перехода JMP, CALL Эти команды, естественно, должны быть в том же сегменте кода, в котором определена метка. Команда ассемблера может находиться как на одной строке с меткой, так и на следующей. Язык ассемблера является самым низкоуровневым языком программирования. Т.е. он ближе любых других приближен к архитектуре ЭВМ и ее аппаратным возможностям, позволяя получить к ним полный доступ. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|