3.1. Алфавит языка и зарезервированные слова
Как и любой другой язык программирования, Турбо Паскаль имеет свой алфавит — набор символов, разрешенных к использованию и воспринимаемых компилятором. В алфавит языка входят:
1. Латинские строчные и прописные буквы:
A, B,..., Z и a, b,..., z
2. Цифры от 0 до 9.
3. Символ подчеркивания «_» (код ASCII номер 95). Из этих символов (и только из них!) конструируются идентификаторы — имена типов, переменных, констант, процедур, функций и модулей, а также меток переходов. Имя может состоять из любого числа перечисленных выше символов, но должно начинаться с буквы, например:
X CharVar My_Int_Var C_Dd16_32m
Прописные и строчные буквы не различаются: идентификаторы FILENAME и filename — это одно и тоже. Длина имен формально не ограничена, но различаются в них «лишь» первые 63 символа (остальные игнорируются).
4. Символ «пробел» (код 32). Пробел является разделителем в языке. Если между двумя буквами имени или ключевого слова стоит пробел, то две буквы будут считаться принадлежащими разным именам (словам). Пробелы отделяют
- 50 -
ключевые слова от имен. Количество пробелов не является значащим. Там, где можно поставить один пробел, можно поставить их сколько угодно. Например, выражения
C:=2+2; и C := 2 + 2 ;
для компилятора эквивалентны.
5. Символы с кодами ASCII от 0 до 31 (управляющие коды). Они могут участвовать в написании значений символьных и строчных констант. Некоторые из них (7, 10, 13, 8, 26) имеют специальный смысл при проведении ряда операций с ними. Символы, замыкающие строку (коды 13 и 10), и символ табуляции (код 9) также могут быть разделителями:
C := 2+2;
эквивалентно построению
C := 2
+
2;
6. Специальные символы, участвующие в построении конструкций языка:
+ - * / = < > [ ] . , ( ) : ;^ @ { } $ # '
7. Составные символы, воспринимаемые как один символ:
<= >= := (* *) (. .) ..
Разделители (пробелы) между элементами составных символов недопустимы.
Как видно, символы из расширенного кода ASCII, т.е. символы с номерами от 128 до 255 (а именно в этот диапазон входит алфавит кириллицы на IBM-совместимых ПЭВМ), а также некоторые другие из основного набора клавиатуры ( !, %, и др.) не входят в алфавит языка. Тем не менее они могут использоваться в тексте программы, но только в виде значений констант символов и (или) строк, а также в тексте комментариев. В имена (идентификаторы) эти символы входить не могут. Обычно это не вызывает проблем. Главное, что можно выводить знаки кириллицы и псевдографики на экран и принимать их с клавиатуры.
Турбо Паскаль имеет большое количество зарезервированных (или ключевых) слов. Эти слова не могут быть использованы в качестве имен (идентификаторов) в программе. Попытка нарушить
- 51 -
этот запрет вызовет ошибку при обработке программы компилятором языка. Список зарезервированных слов Турбо Паскаля таков:
ABSOLUTE AND ARRAY BEGIN CASE CONST CONSTRUCTOR DESTRUCTOR DIV DO DOWNTO ELSE END
EXTERNAL FILE FOR FORWARD FUNCTION GOTO IF IMPLEMENTATION IN INLINE INTERFACE INTERRUPT LABEL
MOD NIL NOT OBJECT OF OR PACKED PROCEDURE PROGRAM RECORD REPEAT SET SHL
SHR STRING THEN TO TYPE UNIT UNTIL USES VAR VIRTUAL WHILE WITH XOR
Примечание: Зарезервированное слово PACKED (упакованный) в Турбо Паскале игнорируется.