Алфавит языка Pascal (Паскаль)

Как и любой другой язык программирования, 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 представлены ниже:

absabsoluteandarctanarrayasasm
beginbooleanbreakcasecharclassconst
constructorcontinuecosdestructordisposedivdo
downtoelseendeofeolnexceptexp
exportsfalsefilefinalizationfinallyforfunction
gotoifimplementationininheritedinitializationinline
inputintegerinterfaceislabellibraryln
maxintmodnewnilnotobjectodd
ofonoperatororordoutputpack
packedpagepredprocedureprogrampropertyraise
readreadlnrealrecordreintroducerepeatreset
rewriteroundselfsetshlshrsin
sqrsqrtstringsucctextthenthreadvar
totruetrunctrytypeunituntil
usesvarwhilewithwritewritelnxor

Неиспользуемые символы

 Некоторые символы кодировки 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. 

Как мы видим, понять что делает вторая программа достаточно сложно, даже на таком простом примере.

Поделитесь своим мнением или задайте вопрос