ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 13.12.2020
Просмотров: 4224
Скачиваний: 28
Введение
20
ЧАСТЬ
I
Язык программирования С
Глава 1.
Структура языка С
Глава 2.
Встроенные типы данных и переменные
Глава 3.
Операторы и выражения
Глава 4.
Управляющие инструкции
Глава 5.
Указатели и массивы
Глава 6.
Функции
Глава 7.
Структура программы на языке С
Глава 8.
Типы данных, определяемые программистом
Глава 9.
Директивы препроцессора
Г Л А В А
1
Структура языка С
1.1. Элементы языка С
Как и любой другой, язык программирования С включает сле-
дующие элементы: символы, слова и предложения.
Символы
—
это базовые графические элементы языка, из которых строятся
слова.
Слово
— это последовательность символов, которая имеет
смысл в данном языке. Слова, используемые в языке программи-
рования C, разбиваются на три группы: ключевые слова, иденти-
фикаторы и константы. Подробнее об этих группах слов будет
рассказано в следующих разделах этой главы. Из слов и символов
формируются предложения, которые в языке программирования
C называются инструкциями. То есть,
инструкция
— это после-
довательность слов и символов языка программирования С, кото-
рая имеет смысл в этом языке. Последовательность инструкций
языка С является
программой
на языке С. Программа на языке С
преобразуется компилятором в последовательность машинных
команд, которые исполняются микропроцессором. Схематически
алгоритм работы компилятора может быть представлен блок-
схемой, которая показана на рис. 1.1.
Вообще,
компилятор
— это такая программа, входными данными
для которой является программа, написанная на определенном
языке программирования, а выходными данными — программа в
кодах команд микропроцессора, которая функционально соответ-
ствует входной программе. Другими словами можно сказать, что
Часть I. Язык программирования С
24
компилятор переводит программу с некоторого языка програм-
мирования высокого уровня на машинный код. В соответствии с
приведенной схемой процесс компиляции исходной программы
можно разбить на следующие этапы:
лексический анализ;
синтаксический анализ;
генерацию кода.
Рис. 1.1.
Структурная схема работы компилятора
На этапе лексического анализа компилятор выделяет те элементы
языка, из которых строятся предложения (к таким элементам от-
носятся слова и символы). При этом символы должны иметь са-
мостоятельное назначение и использоваться для специальных
целей. К таким символам, например, относятся символы для обо-
значения знаков препинания и операторов. Элементы языка C,
которые распознаются на этапе лексического анализа, называют-
ся
лексемами
(или
токенами
) (lexical elements или tokens). При
этом компилятор проверяет правильность написания слов язы-
ка С. То есть определяется, состоят ли слова из допустимых сим-
волов языка и правильно ли эти символы используются.
Глава 1. Структура языка С
25
На этапе синтаксического анализа компилятор проверяет, пра-
вильно ли составлены инструкции из лексем. А на этапе генера-
ции кода в соответствие каждой инструкции ставится последова-
тельность кодов команд микропроцессора. Если компилятор мо-
жет выполнять оптимизацию кода, то генератор кода имеет более
сложную структуру. В этом случае отображение инструкций язы-
ка программирования в коды команд микропроцессора не такое
прямолинейное.
1.2. Символы
Каждый язык допускает только определенный набор символов.
Не является исключением и язык программирования C, в котором
могут использоваться только следующие символы:
строчные латинские буквы:
a ... z
;
прописные латинские буквы:
A ... Z
;
цифры:
0 1 2 3 4 5 6 7 8 9
;
специальные символы:
. , : ; ' " # { } [ ] ( ) < > & | ^ !
_ + - * / \ % = ? ~
;
символ "пробел";
нулевой символ или "пусто" (NULL).
Некоторые из символов могут обозначаться специальным об-
разом:
\?
— знак вопроса;
\'
— апостроф;
\" —
кавычки;
\\
— обратная косая черта;
\0
— пусто.
Кроме того, каждый символ может быть обозначен своим кодом
в восьмеричной или шестнадцатеричной системе счисления:
\ddd
— где буквы
ddd
обозначают код символа в восьмеричной
системе счисления;