Лексемы

Алфавит

Стандарт С99 выделяет два набора символов, входящих в алфавит: базовый и расширенный. Базовый набор включает следующие символы:

- прописные и строчные буквы латинского алфавита;

- арабские цифры;

- специальные знаки: “ { }, | [ ] () + - / % \; ‘:? < = > _! & # ~ ^. *

Расширенный набор символов может быть как пустым, так и содержать, например, символы национальных алфавитов. Например, Ms Visual Studio 2008 позволяет использовать некоторые подмножества пространства Юникод, в том числе, кириллицу.

Есть специальные группы из трех символов (трехсимвольные последовательности / trigraph sequences), которые на этапе препроцессорной обработки преобразуются в другие символы, например, ??= соответствует #, ??( соответствует [, ??/ соответствует \ и другие.

Из символов алфавита формируются следующие лексемы языка.

1. Идентификаторы — набор символов, используемый для идентификации объектов (переменных, функций, классов, типов данных и т.д.) Идентификаторы записываются в соответствии с правилами — это последовательность букв, цифр и символов подчёркивания, начинающаяся не с цифры. Идентификаторы в языках С, С++ чувствительны к регистру букв, в отличие, например, от ЯВУ Pascal.

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

Стандарт С99 закрепляет следующие ключевые слова: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, inline, int, long, register, restrict, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while, _Bool, _Complex, _Imaginary

2. Константы — это объекты, обращение к которым происходит «по значению» (терминология Э.Дейкстры, определявшего отличие констант и переменных по способу их использования в программах, — используя имя переменной, мы указываем адрес данного, а используя константу, мы записываем её саму, то есть её значение). В Си поддерживается четыре простых типа констант — символьные, целые, с плавающей точкой и строковые. Тип константы определяет способ ее хранения в памяти и операции, допустимые по отношению к ней. Значение типа задается формой записи константы (её внешним видом).

3. Знаки операций.

4. Разделители. В качестве разделителей выступают пробел, табуляция и переход на новую строку.

5. Комментарии — наиболее простой элемент. Их назначение — улучшить «читаемость» текста человеком, они необходимы для сопровождения программ и являются элементом технологии разработки программного обеспечения. В языке поддерживаются два типа комментариев — блочные и строчные.

Блочные комментарии включают любую последовательность символов на одной или нескольких строках, они начинаются и заканчиваются специальной комбинацией символов /* и */, которые нельзя использовать ни в каком другом контексте.

Строчные комментарии располагаются на одной строке и начинаются двойным слешем

Примеры

// Комментарий должен уместиться до конца строки

/*

а между этими символами можно писать многострочные комментарии

*/

Если некоторый текст программы занимает несколько строк, но должен быть обработан компилятором как одна строка, используют символ «\».

Пример

printf(“Это \

всё \

одна \

строка\

“);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: