Как и любой другой язык программирования, Турбо Паскаль имеет свой алфавит — набор символов, разрешенных к использованию и воспринимаемых компилятором. В алфавит языка входят:
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). Пробел является разделителем в языке. Если между двумя буквами имени или ключевого слова стоит пробел, то две буквы будут считаться принадлежащими разным именам (словам). Пробелы отделяют {49} ключевые слова от имен. Количество пробелов не является значащим. Там, где можно поставить один пробел, можно поставить их сколько угодно. Например, выражения
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-совместимых ПЭВМ), а также некоторые другие из основного набора клавиатуры ( !, %, " и др.) не входят в алфавит языка. Тем не менее они могут использоваться в тексте программы, но только в виде значений констант символов и (или) строк, а также в тексте комментариев. В имена (идентификаторы) эти символы входить не могут. Обычно это не вызывает проблем. Главное, что можно выводить знаки кириллицы и псевдографики на экран и принимать их с клавиатуры.
Турбо Паскаль имеет большое количество зарезервированных (или ключевых) слов. Эти слова не могут быть использованы в качестве имен (идентификаторов) в программе. Попытка нарушить {50} этот запрет вызовет ошибку при обработке программы компилятором языка. Список зарезервированных слов Турбо Паскаля таков:
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 (упакованный) в Турбо Паскале игнорируется.