Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
303.62 Кб
Скачать

1.2.2. Договоренности о лексике

Когда компилятор обрабатывает программу, он разбивает программу на группы символов, называемых лексемами.

Лексема- это единица текста программы, которая имеет определенный смысл для компилятора и которая не может быть разбита в дальнейшем.

Есть шесть классов лексем: идентификаторы(имена), ключевые слова, константы, строки, операторы и прочие разделители (см. табл.3), такие как квадратные скобки ([]), фигурные скобки ({}), угловые скобки (<>),круглые скобки и запятые. Границы лексем определяются пробельными символами и другими лексемами, такими как операции и знаки пунктуации. Чтобы предупредить неправильную работу компилятора, запрещаются пробельные символы между символами идентификаторов, операциями, состоящими из нескольких символов, кроме операции присваивания, и символами ключевых слов. Количество пробелов, являющихся границами лексем, не является значащим, там, где можно поставить один пробел, можно поставить их сколько угодно:

с=2+2; и с= 2 + 2; для компилятора эквивалентны.

1.2.2.1 Комментарии

Комментарий – подсказка, которую пользователь (или разработчик какого-то программного продукта) вносит в текст программы для облегчения понимания текста данной программы.

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

Пример: /* Задание1 */ В данном случае комментарий занимает некоторую часть строки ( на этой же строке можно продолжать написание части программы, которая уже не будет относиться к комментариям).

или /* Задание 1 Все, что будет находиться в этой строке, считается комментарием.

Выполнено */ А здесь уже нет.

// Вся строка комментарий.

Допускается вставка комментариев в описания переменных, констант, в выражения и т.д. Пример:

int /*объявление*/ i /* целого типа*/;

При задании комментариев желательно( но не всегда обязательно) ставить пробелы перед или(и) после их написания.

Пример:

int /*объявление*/ k =р//* деление на а*/ а;

+с;

В данном примере знак деления, т.к. он не отделен пробелом от начала комментария вида /*, будет отнесен к началу комментария вида //, и результат примет вид int k =р+с;

1.2.2.2 Идентификаторы (имена)

Идентификатор – произвольное имя любой длины, определяемое пользователем. Представляет собой последовательность латинских букв(от А до Z или от a до z), цифр(от 0 до 9) и знака подчеркивания ( _ ). Может начинаться с буквы или знака подчеркивания ; буквы в верхнем и нижнем регистрах являются различными.

Два идентификатора, для образования которых используются совпадающие строчные и прописные буквы, считаются различными. Например: abc, ABC, A128B, a128b .

Идентификатор присваивается константам, переменным, типам данных, определенным пользователем, классам, объектам, функциям.

Важной особенностью является то, что компилятор допускает любое количество символов в идентификаторе, хотя значимыми являются первые 32(?) символ.

Самостоятельная проработка:

Число значимых символов не может быть увеличено, но может быть уменьшено при помощи меню или опций командной строки: опция -In TCC или опцией меню O|C|S|Identifier Length (?).

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

Во-первых, идентификатор не должен совпадать с ключевыми ( зарезервированными) словами и именами функций библиотеки компилятора языка С++.

Во-вторых, следует обратить особое внимание на использование символа подчеркивание(_) в качестве первого символа идентификатора, поскольку идентификаторы построены таким образом, что, с одной стороны, могут совпадать с именами системных функций и (или) переменных, а с другой стороны, при использовании таких идентификаторов программы могут оказаться непереносимыми, т.е. их нельзя использовать на компьютерах других типов.

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