
- •Лекция №1
- •1.1. Введение
- •1.2.1. Алфавит языка
- •1.2.2. Договоренности о лексике
- •1.2.2.1 Комментарии
- •1.2.2.2 Идентификаторы (имена)
- •1.2.2.3 Ключевые слова
- •1.2.2.4 Элементы данных к основным элементам данных относятся константы и переменные.
- •1.2.2.4.1 Константы
- •Примеры:
- •Например,
- •1.2.2.4.2 Переменные
- •Или для переменных со стартовым значением
- •2) Простое выражение, допустимое для заданного типа данных( допускается использовать в них описанные ранее константы или переменные со стартовым значением (см. #2.2.4.2)). Примеры:
- •Модификатор volatile
- •2. Простые типы данных
- •2.1. Целый тип данных
- •Константы целого типа
- •Символьная константа
- •Строковая константа
- •2.2. Данные плавающего типа
- •Например: 27.3, 5.0, -16.003, 200.59
- •Внутреннее представление типов данных
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 (?).
Идентификатор создается на этапе объявления переменной, функции, структуры и т.п. после этого его можно использовать в последующих операторах разрабатываемой программы. Следует отметить важные особенности при выборе идентификатора.
Во-первых, идентификатор не должен совпадать с ключевыми ( зарезервированными) словами и именами функций библиотеки компилятора языка С++.
Во-вторых, следует обратить особое внимание на использование символа подчеркивание(_) в качестве первого символа идентификатора, поскольку идентификаторы построены таким образом, что, с одной стороны, могут совпадать с именами системных функций и (или) переменных, а с другой стороны, при использовании таких идентификаторов программы могут оказаться непереносимыми, т.е. их нельзя использовать на компьютерах других типов.