
- •Лекция 1 Введение
- •Характеристика и особенности языка
- •Основные особенности языка Pascal
- •Ядро язака Turbo Pascal
- •Способ синтаксического описания
- •Алфавит, лексика, структура программы
- •Лексическая структура языка. Комментарии и пробелы.
- •Например: index
- •My Program - содержит пробел
- •1.3.Общая структура Pascal-программы
- •Приведенная программа предназначена для вычисления ряда вида
- •2. Система типов языка. Скалярные типы
- •Иерархия типов
- •Простые типы
Лексическая структура языка. Комментарии и пробелы.
Символы из алфавита языка используются для построения базовых элементов Pascal-программ - лексем.
Лексемы – минимальная единица языка, имеющая самостоятельный смысл. В Turbo Pascal'е имеются следующие классы лексем:
Служебные (зарезервированные) слова. Это ограниченная группа слов, построенные из букв. Каждое служебное слово представляет собой неделимое образование, смысл которого фиксирован в языке.
Служебные слова нельзя использовать в качестве имен, вводимых программистом (т.е. в качестве идентификаторов переменных, констант и т.д.).
Служебных слов всего 55:
Absolute array
And asm
Assembler not
Begin object
Case of
Const or
Constructor packed
Destructor private
Div procedure
Do program
Downto record
Else repeat
End set
External shl
File shr
For string
Forward then
Function to
Goto type
If unit
Implementation until
In uses
Inline var
Interface virtual
Interrupt while
Label with
Mod xor
Nil
Заметим, что синтаксис Turbo Pascal на самом деле допускает использование некоторых служебных слов в качестве идентификаторов (к числу таких слов относятся assembler , external, forward, interrupt, private, virtual)
Строго говоря эти слова называются в языке директивами (или стандартными директивами). Однако в целях большей ясности программ использование в качестве идентификаторов не рекомендуется.
2. Идентификаторы ( имена). Идентификаторы вводятся для обозначения в программе переменных, констант, типов, меток, процедур, и функций и формируются из букв и цифр в соответствии со следующей диаграммой:
идентификатор
буква
буква
цифра
Длина идентификатор может быть произвольной, однако компилятор воспринимает только первые 63 его символа.
Идентификаторы всегда начинаются буквой, за которой могут следовать буквы и цифры. Помните, что буквой считается также символ подчеркивания, поэтому идентификатор может начинаться этим символом и даже состоять только из одного или нескольких символов подчеркивания.
Важно помнить, в языке Turbo Pascal соответствующие заглавные и строчные буквы в идентификаторах и служебных словах не различаются.
Например: index
INDEX
Index
Все они обозначают одну и ту же переменную.
Пробелы и специальные символы алфавита не могут входить в идентификатор.
Например: правильные идентификаторы
a
ALPHA
MyProgram
_beta
data_27_sep_39
dog
неправильные идентификаторы
1Program - начинается цифрой
block#1 - содержит специальный символ
My Program - содержит пробел
Mod - зарезервированное слово
3.Изображения. Это группа лексем обозначает числа, символьные строки и некоторые другие значения. Правила построения изображений мы рассмотрим далее.
4.Знаки операций формируются из одного или нескольких специальных символов и предназначены для задания действий по преобразованию данных и вычислению значений.
5.Разделители также формируются из специальных символов и в основном используются для повышения наглядности текстов программ.
Примерами разделителей могут служить следующие конструкции:
; : = ( .
В текстах Pascal-программ допускаются фрагменты пояснительного характера – комментарии.
Наличие комментариев не изменяет смысл программы и не влияет на ее выполнение.
В Turbo Pascal комментарии представляют собой произвольную последовательность символов ( не обязательно из алфавита языка; т.е. допускаются и русские буквы),
заключающиеся в фигурные скобки «’ и ’» или разделители вида “( * “ и”*)”
Например: это комментарий
(* А это длинный комментарий,
расположенный на
несколько строк*)
Вложенность комментариев друг в друга допускается только для комментариев, заключенных в различные пары скобок.
Например: Комментарий (*Вложенный комментарий*)
Комментарий
Комментарий может находиться между любыми двумя лексемами программы.
Необходимо выделить еще одну группу лексических конструкций языка, обычно называемых директивами компилятора или прогматами.
Эти конструкции так же, как комментарии, заключаются в фигурные скобки, но они не носят характер пояснений к программе, а являются инструкциями Pascal-компилятору, предписывающими тот или иной режим обработки Pascal-программы.
Директивы компилятора должны содержать сразу же после открывающей скобки (без пробелов и символов табуляции) символ “$” (доллар), а за ним - одиночную букву, определяющую конкретный режим компиляции. После буквы может присутствовать знак «+» (плюс) или «- » (минус), задающий, соответственно, установку или отмену заданного режима.
Например: $B- $N+
Допускается одновременная установка сразу нескольких режимов в одной директиве. В этом случае директивы отделяются друг от друга символам « , » ( запятая).
Например:
$M 2048,0, 6500 или $L PROCL.OBJ
Важную роль в тексте Pascal-программы играет символ, не имеющий изображения, - пробел.
Символы пробелов используются для отделения лексем друг от друга в тех случаях, когда слитное написание двух или более лексем может исказить смысл программы.
В, частности, если идентификаторы и служебные слова записываются друг за другом, то они обязательно должны быть отделены одним или несколькими пробелами ( или расположены в различных строках), так как их слитное написание будет воспринято как один идентификатор.
В остальных случаях использование пробелов необязательно и служит целям наглядности, способствуя лучшему внешнему виду программы. Можно сказать, что пробелы, так же, как и комментарии, могут (в любом количестве) находиться между любыми двумя лексемами программы.