Алфавит
Алфавит языка Delphi включает буквы, цифры, шестнадцатеричные цифры, специальные символы, пробелы и зарезервированные слова.
Буквы- это буквы латинского алфавита от а до z и от А до Z, а также знак подчеркивания (_). В языке нет различия между прописными и строчными буквами алфавита, если только они не входят в символьные и строковые выражения.
Цифры- арабские цифры от 0 до 9.
Каждая шестнадцатеричная цифраимеет значение от 0 до 15. Первые 10 значений обозначаются арабскими цифрами 0…9, остальные шесть — латинскими буквами A…F или a…f.
Специальные символы Delphi:
+ — * / = , ‘ . : ; [ ] ( ) { } @ $ #
К специальным символам относятся также следующие парысимволов:
= := (* *) (. .) //
В программе эти пары символов нельзя разделять пробелами, если они используются как знаки операций отношения или ограничители комментария.
Символы (. и .) могут употребляться соответственно вместо [ и ].
Особое место в алфавите языка занимают пробельные символы, к которым относятся любые символы в диапазоне кодов от 0 до 32 (включая собственно пробел, а также символ табуляции). Эти символы рассматриваются как ограничители идентификаторов, констант, чисел, зарезервированных слов.
Несколько следующих друг за другом пробелов считаются одним пробельным символом (последнее не относится к строковым константам).
В Delphi имеются следующие зарезервированные слова:
Зарезервированные слова не могут использоваться в качестве идентификаторов.
Стандартные директивыпервоначально связаны с некоторыми стандартными объявлениями в программе.
К ним относятся:
Как и зарезервированные слова, стандартные директивы в окне кода Delphi выделяются жирным шрифтом, тем не менее, вы можете переопределить любую стандартную директиву, то есть объявить одноименный идентификатор.
Слова private, protected, public, publishedи automatedсчитаются зарезервированными внутри объявления класса и стандартными директивами — вне объявления.
Идентификаторы
Идентификаторы в Delphi — это имена констант, переменных, меток, типов, объектов, классов, свойств, процедур, функций, модулей, программ и полей в записях.
Идентификаторы могут иметь произвольную длину.
Идентификатор всегда начинается буквой, за которой могут следовать буквы и цифры. Буквой считается также символ подчеркивания, поэтому идентификатор может начинаться этим символом и даже состоять только из одного или нескольких символов подчеркивания. Пробелы и специальные символы алфавита не могут входить в идентификатор.
Константы
В качестве констант в Delphi могут использоваться целые, вещественные и шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств и признак неопределенного указателя NIL.
Целые числа записываются со знаком или без него по обычным правилам и могут иметь значение в диапазоне от -263 до +263-1.
Следует учесть, что если целочисленная константа выходит за указанные границы, компилятор генерирует сообщение об ошибке. Такие константы должны записываться с десятичной точкой, то есть определяться как вещественные числа.
Вещественные числа записываются со знаком или без него с использованием десятичной точки и/или экспоненциальной части. Экспоненциальная часть начинается символом е или Е, за которым могут следовать знаки «+» или «-» и десятичный порядок.
Символ е (Е) означает десятичный порядок и имеет смысл «умножить на 10 в степени».
Например
3.14Е5 — 3,14 умножить на 10 в степени 5;
-17е-2 — минус 17 умножить на 10 в степени минус 2.
Если в записи вещественного числа присутствует десятичная точка, перед точкой и за ней должно быть хотя бы по одной цифре. Если используется символ экспоненциальной части е (Е), за ним должна следовать хотя бы одна цифра десятичного порядка.
Шестнадцатеричное числосостоит из шестнадцатеричных цифр, которым предшествует знак доллара $ (код символа — 36). Диапазон шестнадцатеричных чисел — от $FFFFFFFFFFFFFFFFдо $7FFFFFFFFFFFFFFF.
Логическая константа- это либо слово False (ложь), либо слово True (истина).
Символьная константа- это любой символ ПК, заключенный в апострофы:
‘z’ — символ «z»;
‘Ф’ — символ «Ф».
Если необходимо записать собственно символ апострофа, он удваивается:
» » — символ апострофа (‘);
‘That’ ‘s string’ — строка с символом апострофа.
Допускается использование записи символа путем указания его внутреннего кода, которому предшествует символ # (код 35).
Например
#97 — символ «а»;
#13 — символ «CR».
Строковая константа- любая последовательность символов (кроме символов CR — возврат каретки), заключенная в апострофы.
Строка символов может быть пустой, то есть не иметь никаких символов в обрамляющих ее апострофах. Строку можно составлять из кодов нужных символов с предшествующими каждому коду символами #, например, следующая строка эквивалентна строке Symbol:
#83#121#109#98#11#108
В строке можно чередовать части, записанные в обрамляющих апострофах, с частями, записанными кодами. Таким способом можно вставлять в строки любые управляющие символы, в том числе и символы CR (код 13).
Например
#7’Ошибка !’#13’Нажмите любую клавишу … ‘#7
Конструктор множества- список элементов множества, обрамленный квадратными скобками, например:
В Delphi разрешается в объявлении констант использоватьпроизвольныевыражения, операндами которых могут быть ранее объявленные нетипизированные константы, имена типов и объектов, а также следующие функции от них:
Выражения
Основными элементами, из которых конструируется исполняемая часть программы, являются константы, переменные и обращения к функциям. Каждый из этих элементов характеризуется своим значением и принадлежит к какому-либо типу данных. С помощью знаков операций и скобок из них можно составлять выражения, которые фактически представляют собой правила получения новых значений.
Частным случаем выражения может быть просто одиночный элемент, то есть константа, переменная или обращение к функции. Значение такого выражения имеет, естественно, тот же тип, что и сам элемент.
В общем случае выражение состоит из нескольких элементов (операндов) и знаков операций, а тип его значения определяется типом операндов и видом примененных к ним операций.
Примеры
Операции
В Delphi определены следующие операции:
унарные (not,@);
мультипликативные (*, /, div, mod, and, shl, shr);
аддитивные (+, -, or, xor);
отношения (=, , , =, in).
Приоритет операций убывает в указанном порядке, то есть высшим приоритетом обладают унарные операции, низшим — операции отношения.
Порядок выполнения нескольких операций равного приоритета устанавливается компилятором из условия оптимизации кода программы и необязательно слева направо.
При исчислении логических выражений операции равного приоритета всегда вычисляются слева направо, причем будут вычисляться все или только достаточные операции в зависимости от установленного флажка Complete Boolean eval на вкладке Compiler диалогового окна Options (вызывается командой Project — Options).
При установленном флажке вычисляются все операции отношения, при снятом — только те, что необходимы для однозначного определения результата исчисления.
Правила использования операций с операндами различного типа иллюстрирует табл. 1.1.
Таблица 1.1
Таблица 1.1(продолжение)
Унарная операция @ применяется к операнду любого типа и возвращает результат типа Pointer, в котором содержится адрес операнда. Если операция @ применяется к процедуре, функции или методу в объекте, ее результатом будет адрес точки входа в эту процедуру (функцию, метод). Этот адрес можно использовать только в подпрограмме, написанной на ассемблере, или во встраиваемых фрагментах (задаются ключевым словом inline).
В Delphi определены следующие логические операции:
not- логическое НЕ;
and- логическое И;
or — логическое ИЛИ;
xor- исключающее ИЛИ.
Логические операции применимы к операндам целого и логического типов. Если операнды — целые числа, то результат логической операции есть тоже целое число, биты которого (двоичные разряды) формируются из битов операндов по правилам, указанным в табл. 1.2.
Таблица 1.2
К логическим в Delphi обычно относятся еще две сдвиговые операции над целыми числами:
i shl j — сдвиг содержимого i на j разрядов влево; освободившиеся младшие разряды заполняются нулями;
i shr j — сдвиг содержимого i на j разрядов вправо; освободившиеся старшие разряды заполняются нулями.
В этих операциях i и j — выражения любого целого типа.
Логические операции над логическими данными дают результат логического типа по правилам, указанным в табл. 1.3.
Таблица 1.3
Операция отношения in применяется к двум операндам.
Первым (левым) операндом должно быть выражение любого порядкового типа, вторым — множество, состоящее из элементов того же типа, или идентификатор множественного типа.
Результат операции равен True, если левый операнд принадлежит множеству.