Трансляторы, интерпретаторы, компиляторыСтр 1 из 21Следующая ⇒
СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ
Учебное пособие Под редакцией Б.М. Суховилова
Челябинск Издательство ЮУрГУ УДК 681.3.06(075.8) М438
Одобрено Рецензенты: А.В. Мельников, Е.М. Сартасов
© Издательство ЮУрГУ, 2010 Глава 1. Основные понятия Машинный код Машинный код – это система команд конкретной вычислительной машины, который исполняется непосредственно микропроцессором данной вычислительной машины. Система команд определяется архитектурой процессора и представляет собой набор элементарных операций (инструкций). Каждая операция имеет уникальный номер, называемый кодом операции. Анализируя код операции, процессор определяет, что именно нужно сделать. Базовыми командами являются, как правило, следующие: - арифметические; - логические; - пересылки; - ввода-вывода; - передачи управления. Различие архитектуры процессоров заставляет говорить об их совместимости. Считается, что процессор A совместим с процессором B, если система команд процессора B является подмножеством системы команд процессора A. Набор инструкций, выполняемых процессором, называется программой. Каждая команда программы имеет свой адрес – указатель на ячейку памяти, в которой храниться код команды. (В качестве адреса выступает целое число, ассоциированное с некоторой ячейкой памяти.) Язык программирования Язык программирования – формальная знаковая система с определенным набором лексических, синтаксических и семантических правил, предназначенная для записи программ. Язык ассемблера – это низкоуровневый язык программирования, представляющий собой формат записи машинных команд, удобный для восприятия человеком. Команды языка ассемблера один в один соответствуют командам процессора и, фактически, представляют собой удобную символьную форму записи (мнемокод) команд и их аргументов. Однако, каждая модель процессора, в принципе, имеет свой набор команд и соответствующий ему язык (или диалект) ассемблера. Трансляторы, интерпретаторы, компиляторы Транслятор – это программа, которая переводит входной текст на исходном (входном) языке в эквивалентный текст на результирующем (выходном) языке. Исходный текст должен удовлетворять синтаксическим и семантическим требованиям входного языка. Результирующий текст также строится по синтаксическим правилам выходного языка. При этом важным требованием в определении транслятора является семантическая эквивалентность входного и выходного текста. Компилятор – это транслятор, который осуществляет перевод текста программы, написанного на некотором языке программирования, в эквивалентный машинный код или программу на языке низкого уровня (например, на языке ассемблера). Интерпретатор – это транслятор, который анализирует (транслирует) входную программу на исходном языке и выполняет (интерпретирует) ее. Анализ и исполнение входной программы осуществляется, как правило, построчно (или покомандно). В отличие от трансляторов интерпретаторы не порождают результирующую программу (и вообще какого-либо результирующего кода) – и в этом принципиальная разница между ними. Результатом работы интерпретатора будет результат, заданный смыслом исходной программы. Конечно, чтобы исполнить исходную программу, интерпретатор так или иначе должен преобразовать ее в машинный код, однако полученные машинные коды не являются доступными для пользователя интерпретатора. Эти машинные коды порождаются интерпретатором, исполняются и уничтожаются по мере надобности. Пользователь же видит только результат выполнения исходной программы [1]. ©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|