Как и любой другой язык программирования, Pascal имеет свой алфавит. Под алфавитом языка программирования понимают набор символов, с помощью которых могут быть образованы величины, выражения и операторы.
Алфавит — совокупность допустимых в языке символов (или групп символов,рассматриваемых как единое целое). В языке Pascal все компоненты формируются из множества символов стандарта ASCII. Элементы алфавита можно условно разбить на четыре группы:
— символы, используемые в идентификаторах;
— разделители;
— специальные символы;
— неиспользуемые символы.
Символы, используемые в идентификаторах
Идентификатор — имя любого объекта программы — может включать буквы, цифры и символ подчеркивания. В качестве букв можно использовать 26 латинских букв (прописных и строчных) от А до Z и от а до z. Помимо идентификаторов буквы могут использоваться в шестнадцатеричных числах для обозначения цифр от 10 до 15 (буквы от А до F и от а до f), строковых константах, служебных словах и комментариях. Следует иметь в виду, что прописные и строчные буквы в идентификаторах, числах и служебных словах не различаются: так, например, NAME, Name или nAmE будут идентичны. Однако в строках символов и комментариях строчные и прописные буквы различаются и не преобразуются при компиляции друг в друга.
В качестве цифр допустимо использовать 10 арабских цифр от 0 до 9. В идентификаторах они могут присутствовать в любой позиции, кроме первой. Цифры используются также в изображении числовых констант (например, 157 или 12.8). Символ подчеркивания может находиться в любой позиции.
Длина идентификатора может быть любой, но значимыми являются только первые 63 символа, и по этим символам все идентификаторы должны быть уникальными.
Разделители
Разделители используются для отделения друг от друга идентификаторов, чисел, зарезервированных слов. В качестве разделителей можно использовать:
— пробел;
— любой управляющий символ (коды от 0 до 31), включая символ возврата каретки (код 13);
— комментарий.
В любом месте программы, где можно поместить один разделитель, их можно поместить любое количество и в любом сочетании. Это позволяет более наглядно представить структуру программы.
Комментарии заключаются либо в скобки { }, либо в скобки вида (* *) и могут занимать любое число строк. Комментарий, в котором за открывающей скобкой идет знак $, является директивой компилятора. Во время компиляции программы все комментарии, за исключением директив компилятора, игнорируются.
{ Это комментарий }
(* Другой комментарий *)
(* Этот комментарий { вложенный } *)
{ Другой (* вложенный *) комментарий }
(* Это неправильный (* комментарий *) *)
Специальные символы
Специальные символы, выполняющие в языке определенные функции, можно разделить на три категории:
— знаки пунктуации;
— знаки операций;
— зарезервированные слова.
Знаки пунктуации
Допустимые знаки пунктуации и их назначение представлены ниже:
Знак | Применение |
{ } | Скобки комментария |
(* *) | Скобки комментария |
[ ] | Выделение индексов массивов, элементов множеств, размера строки |
( ) | Выделение выражений, списков параметров |
‘ | Апостроф для выделения символа или строковой константы |
:= | Знак присваивания значения переменной, типизированной константе или функции |
; | Разделение предложений программы (операторов и объявлений) |
: | Отделение переменной или типизированной от типа, метки от оператора |
= | Отделение идентификатора типа от описания типа или константы от ее значения |
, | Запятая для разделения элементов списка |
.. | Разделение границ диапазона |
. | Обозначение конца программы, отделение целой части от дробной в вещественном числе, отделение полей в записи, отделение идентификатора от имени модуля или объекта, в котором он находится |
^ | Обозначение типа-указателя, значения величины по ее указателю или управляющего символа (коды от 0 до 31) |
@ | Обозначение адреса переменной, типизированной константы, подпрограммы, метода |
# | Обозначение символа по его коду |
$ | Обозначение директивы компилятора или знак шестнадцатеричного числа |
Знаки операций
Знаки операций предназначены для обозначения тех или иных арифметических, логических или других действий. Они бывают двух типов: состоящие из небуквенных символов (например, + — * и т. д.) и буквенные операции (например, not, div, mod и т. д.), представляющие собой зарезервированные слова.
Зарезервированные слова
В языке Pascal(Паскаль) есть слова, которые не разрешается использовать для своих идентификаторов. Для разных версий Pascal(Паскаль) существует собственный набор зарезервированных слов.
Зарезервированные слова включают служебные слова (например, begin, end, div и т. д.) и имена директив (например, external, forward и т. д.). Служебные слова можно использовать только по своему прямому назначению и их нельзя переопределять. Директивы также имеют свое определенное назначение, но в отличие от служебных слов их можно переопределить, однако делать это крайне нежелательно.
Зарезервированные слова представлены ниже:
Слово | Описание |
---|---|
and | Логическое И |
asm | Начало блока на Ассемблере |
array | Объявление массива |
begin | Начало тела программы, подпрограммы, составного оператора |
case | Оператор выбора |
const | Задание константы |
constructor | объявление конструктора |
destructor | объявление деструктора |
div | получение целой части от деления |
do | признак начала оператора цикла |
downto | указание на просмотр элементов цикла от большого числа к меньшему |
else | альтернативная часть в условном операторе |
end | конец тела программы, подпрограммы, составного оператора |
exports | указывает список процедур и функций, которые может передавать библиотека DLL |
file | файловый тип |
function | начало объявления функции |
goto | оператор перехода |
if | начало условного оператора |
implementation | исполнительная часть модуля |
in | проверка принадлежности множеству |
inherited | наследуемый метод |
inline | директива включения в тело программы части написанной на Ассемблере |
interface | интерфейс модуля |
label | объявление метки |
library | задание библиотеки DLL |
mod | получение остатка от деления |
nil | пустой указатель |
not | логическое НЕ |
object | объявление объекта |
of | тип-компонент в определении массива |
or | логическое ИЛИ |
packed | признак «упакованного массива» |
procedure | начало объявления процедуры |
program | заголовок программы |
record | объявление записей |
repeat | начало цикла с постусловием |
set | объявление множества |
shl | сдвиг битов влево |
shr | сдвиг битов вправо |
string | объявление строки |
then | часть условного оператора |
to | указание на просмотр элементов цикла от меньшего к большему |
type | идентификатор раздела типов |
unit | начало объявление модуля |
until | конец цикла с постусловием |
uses | указатель используемых модулей |
var | идентификатор раздела переменных |
while | начало цикла с предусловием |
with | начало оператора работы с записями |
хог | исключающее ИЛИ |
Зарезервированные слова языка Free Pascal представлены ниже:
abs | absolute | and | arctan | array | as | asm |
begin | boolean | break | case | char | class | const |
constructor | continue | cos | destructor | dispose | div | do |
downto | else | end | eof | eoln | except | exp |
exports | false | file | finalization | finally | for | function |
goto | if | implementation | in | inherited | initialization | inline |
input | integer | interface | is | label | library | ln |
maxint | mod | new | nil | not | object | odd |
of | on | operator | or | ord | output | pack |
packed | page | pred | procedure | program | property | raise |
read | readln | real | record | reintroduce | repeat | reset |
rewrite | round | self | set | shl | shr | sin |
sqr | sqrt | string | succ | text | then | threadvar |
to | true | trunc | try | type | unit | until |
uses | var | while | with | write | writeln | xor |
Неиспользуемые символы
Некоторые символы кодировки ASCII, такие, как, например, %, &,» и т. д., включая буквы русского алфавита, не используются в Pascal, но их можно использовать в комментариях и символьных строках.
Пунктуация
Компилятор игнорирует пробелы, символы табуляции и перевод строки. По этой причине, пунктуация должна указать компилятору, где заканчивается оператор. Для разделения операторов используется символ ;.
Какие строки должны оканчиваться точкой с запятой:
- Название программы;
- Строки объявления переменных и констант;
- Каждое объявление пользовательских типов данных;
- Почти все операторы языка.
Перед словом end, блока begin end, не обязательно ставить точку с запятой, но согласно правил хорошего тона — лучше поставить.
Как было сказано выше, Pascal(Паскаль) не требует наличия отступов в коде программы. Однако они улучшают читабельность кода, что очень полезно для программиста.
Сравним две программы с отступами и без:
program Indentation;
var
x, y, z : integer;
begin
x := 4;
y := 23;
z := x + y;
write(z);
readln;
end.
program WithoutIndentation;
var x,y,z : integer;
begin
x := 4;
y := 23;
z := x + y;
write(z);
readln;
end.
Как мы видим, понять что делает вторая программа достаточно сложно, даже на таком простом примере.
Спасибо всё очень понятно