Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры спо 2012.docx
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
268 Кб
Скачать
☆

3. Системы программирования

СП объединяют программы, связанные с решением языковых проблем и предназначенные для разработки ПО.

В СП входят:

1) трансляторы;

2) библиотеки программ;

3) редакторы;

4) компоновщики;

5) загрузчики;

6) отладчики

Системы обслуживания программ (утилиты) — это специальные системные программы, с помощью которых можно обслуживать саму ОС

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

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

Интерпретатор — это программа, которая воспринимает входную программу на исходном языке и сразу её выполняет (нет результирующего кода)

Компилятор с точки зрения формальных языков выполняет 2 основные функции:

1) он является распознавателем для языка исходной программы (генератором цепочек является автор входной программы);

2) является генератором для языка результирующей программы (распознавателем является вычислительная система)

Основными фазами компиляции являются:

Лексический анализ — это часть компилятора, которая читает литеры программы и строит из них слова лексемы исходного языка.

Синтаксический анализ — это основная часть компилятора на этапе анализа. Выделяет синтаксические конструкции языка.

Семантический анализ — это часть компилятора, проверяет текст программы с точки зрения семантики исходного языка.

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

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

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

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

4. Таблица идентификаторов.

Таблица идентификаторов — набор данных, служащий для хранения информации об элементах исходной программы. Существует несколько таблиц идентификаторов.

Организация ТИ: В зависимости от идентификатора может храниться различная информация:

1) Переменная – имя, тип, адрес

2) Константа – имя, если есть, адрес, значение;

3) Функция – количество аргументов, тип, имя, адрес

ТИ создается на фазе лексического анализа и заполняется последовательно. На фазе лексического анализа записываются типы идентификаторов. На фазе подготовки генерации кода — выделение памяти.

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

1. Неупорядоченный список — в ТИ добавляются элементы в порядке поступления

(+) простота реализации

(–) непродуктивен при большом количестве элементов

2. Упорядоченный список — все элементы в ТИ упорядочены согласно естественному порядку по убыванию и возрастанию.

(+) сокращение времени поиска необходимого элемента

(–) требует упорядочить ТИ

3. Бинарное дерево ТИ имеет форму бинарного дерева. Каждый элемент или вершина — идентификатор. Корневой вершиной дерева является первый поступивший идентификатор.

Форма бинарного дерева зависит от порядка поступивших идентификаторов. Недостаток — дерево может выродиться в упорядоченный список.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]