
- •Системное программное обеспечение
- •II. Трансляторы
- •1. Общие сведения о трансляторах
- •1.2. Синтаксис языка.
- •1.3. Семантика.
- •1.4. Лексический анализ.
- •1.5. Синтаксический анализ.
- •2. Общие особенности языков программирования и трансляторов
- •5. Различия формальных грамматик языков.
- •2.2. Общие характеристики и параметры языков программирования.
- •2.3. Особенности трансляторов.
- •III. Структуры, организация, хранение и поиск данных
- •1. Структуры данных
- •1.1. Статические структуры данных.
- •Массив как статическая структура данных
- •Линейный поиск в массивах данных
- •Способы сортировки в массивах данных
- •1. Пузырьковая сортировка (попарные перестановки).
- •2. Сортировка выбором.
- •3. Сортировка простыми вставками.
- •Некоторые рекомендации при работе с массивом
- •Запись как статическая структура данных
- •Статическая структура данных – множество
2.3. Особенности трансляторов.
Независимо от специфики языка любой транслятор можно считать функциональным преобразователем F, обеспечивающим однозначное отображение X в Y, где X – программа на исходном языке, Y – программа на выходном языке, поэтому сам процесс трансляции формально можно представить:
Y = F(X)
Формально каждая правильная программа X – это цепочка символов из некоторого алфавита A, преобразуемая в соответствующую ей цепочку Y, составленную из символов алфавита B.
III. Структуры, организация, хранение и поиск данных
1. Структуры данных
Уровню языков программирования соответствуют абстрактные типы и структуры данных.
Данные предшествуют алгоритму (поскольку прежде, чем выполнять какие-либо операции, необходимо иметь объекты, к которым они применяются) и представляют собой абстракции реальных объектов.
Простые переменные представляют собой данные базовых типов.
Переменные сложных типов отличаются от простых переменных тем, что имеют более одного компонента.
В языках программирования и в трансляторах часто используют различные совокупности данных, организованные определенным образом, которые называются структурами данных, состоящими из элементов и определяющимися правилами, которые устанавливают отношения между ними.
1.1. Статические структуры данных.
Фундаментальная (статическая) структура данных – это набор элементов базового представления данных, из которых строятся более сложные структуры; является совокупностью фиксированного количества данных постоянной размерности с неизменным характером связей между ними.
Переменные статических структур могут изменять только свое значение, а их структура и множество допустимых значений остаются неизменными, поэтому размер памяти, занимаемой такими переменными, – постоянный.
К статическим структурам данных в PASCAL относятся массивы, записи, множества, являющиеся базовыми, т.к. из них можно образовывать более сложные структуры.
Массив как статическая структура данных
Примером агрегации переменных является массив, который представляет собой упорядоченный набор (последовательность) данных одинакового типа, имеющий общее имя; доступ к элементам массива осуществляется при помощи индексов, которые могут быть любого порядкового типа и которые являются порядковыми номерами элементов в последовательности.
Массив как статическая структура обладает следующими свойствами:
имеет описание, и обращение осуществляется по имени;
память выделяется на этапе компиляции;
объем памяти фиксирован и не меняется в процессе выполнения программы.
Массивы могут быть одномерными и многомерными.
Одномерный массив – это массив, для получения доступа к элементам которого достаточно одной индексной переменной; математическим представлением является вектор.
Многомерный массив – это массив, для получения доступа к элементам которого требуется более одной индексной переменной; математическим представлением является матрица.
Частный случай многомерного массива – двумерный массив, математическое представление которого – это двумерная матрица.