Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
л_1_введение_в_С++.doc
Скачиваний:
10
Добавлен:
02.11.2018
Размер:
292.35 Кб
Скачать

Синтаксический и семантический анализ программы

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

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

Главные элементы программы

Программа имеет в качестве главных элементов данные и операторы.

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

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

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

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

Данные (как и программа) имеют два представления:

внешнее – в тексте программы, при вводе или выводе значений на экран и, возможно, хранении (например, в текстовом файле);

внутреннее – двоичный код, формируемый по определенным правилам компилятором и средой исполнения в оперативной памяти.