Здавалка
Главная | Обратная связь

Трансляторы, интерпретаторы, компиляторы



СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ

 

Учебное пособие

Под редакцией Б.М. Суховилова

 

Челябинск

Издательство ЮУрГУ


УДК 681.3.06(075.8)

М438

 

Одобрено
учебно-методической комиссией
факультета «Экономика и управление»

Рецензенты:

А.В. Мельников, Е.М. Сартасов

 

  М438 Межов, А. С. Системное программирование: учебное пособие / А.С. Межов; под ред. Б.М. Суховилова. – Челябинск: Изд-во ЮУрГУ, 2010. – 97 с.
    Учебное пособие содержит теоретический материал и практические работы для изучения курса «Системное программирование». В пособии приведена классификация современных операционных систем, подробно рассмотрены основные объекты операционной системы Microsoft Windows. Особое внимание уделяется задачам межпроцессного взаимодействия и синхронизации потоков. Учебное пособие ориентировано на студентов специальности 080801 «Информатика».   УДК 681.3.06(075.8)

 

© Издательство ЮУрГУ, 2010


Глава 1. Основные понятия

Машинный код

Машинный код – это система команд конкретной вычислительной машины, который исполняется непосредственно микропроцессором данной вычислительной машины.

Система команд определяется архитектурой процессора и представляет собой набор элементарных операций (инструкций). Каждая операция имеет уникальный номер, называемый кодом операции. Анализируя код операции, процессор определяет, что именно нужно сделать.

Базовыми командами являются, как правило, следующие:

- арифметические;

- логические;

- пересылки;

- ввода-вывода;

- передачи управления.

Различие архитектуры процессоров заставляет говорить об их совместимости. Считается, что процессор A совместим с процессором B, если система команд процессора B является подмножеством системы команд процессора A.

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

Язык программирования

Язык программирования – формальная знаковая система с определенным набором лексических, синтаксических и семантических правил, предназначенная для записи программ.

Язык ассемблера – это низкоуровневый язык программирования, представляющий собой формат записи машинных команд, удобный для восприятия человеком.

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

Трансляторы, интерпретаторы, компиляторы

Транслятор – это программа, которая переводит входной текст на исходном (входном) языке в эквивалентный текст на результирующем (выходном) языке.

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

Компилятор – это транслятор, который осуществляет перевод текста программы, написанного на некотором языке программирования, в эквивалентный машинный код или программу на языке низкого уровня (например, на языке ассемблера).

Интерпретатор – это транслятор, который анализирует (транслирует) входную программу на исходном языке и выполняет (интерпретирует) ее. Анализ и исполнение входной программы осуществляется, как правило, построчно (или покомандно).

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

Конечно, чтобы исполнить исходную программу, интерпретатор так или иначе должен преобразовать ее в машинный код, однако полученные машинные коды не являются доступными для пользователя интерпретатора. Эти машинные коды порождаются интерпретатором, исполняются и уничтожаются по мере надобности. Пользователь же видит только результат выполнения исходной программы [1].







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.