TURBO-PASCAL

 

Настоящий курс лекций посвящен широко известной реализации языка Pascal фирмы Borland International для персональных IBM-совместимых ЭВМ - языку TurboPascal. Язык TurboPascal - мощное расширение американского стандарта ( ANSI Pascal ), учитывающее архитектурные особенности операционной системы MS-DOS и снабженное внушительными по объему и разнообразию пакетами стандартных процедур.

Система TurboPascal является интегрированной средой, включающей ряд компонент, в совокупности поддерживающих все виды работ по созданию программ. Система содержит универсальный текстовый редактор, компилятор входного языка, редактор связей и встроенный символьный отладчик. Многооконный интерфейс с развитой системой меню обеспечивает высокую производительность труда программиста.

 

Замечание. Каждое синтаксическое понятие сначала будет вводиться неформально, завершаться так называемой синтаксической диаграммой, которая наглядно представляет структуру вводимого понятия. Диаграмма составляется с помощью базовых символов языка и ссылок на другие диаграммы, соединенных стрелками. Любой путь, пройденный по диаграмме в направлении стрелок, приводит к синтаксически правильной конструкции.

Для чтения синтаксической диаграммы следуйте по стрелкам. Часто встречаются альтернативные пути; путь, начинающийся слева и заканчивающийся стрелкой справа, является допустимым. Путь пересекает рамки, содержащие имена элементов, используемых для построения этой части синтаксиса.

Имена в прямоугольных рамках должны быть заменены действительными конструкциями. Круглые рамки содержат зарезервированные слова, знаки операций и знаки пунктуации, то есть действительные термы, используемые в программе.

 

Текст программы. Алфавит языка

 

Текст Pascal-программы представляет собой последовательность строк, состоящих из символов, образующих алфавит языка. Строки программы завершаются специальными управляющими символами, не входящими в алфавит ( CR, LF ). Максимальная длина строки составляет 126 символов.

 

Алфавит языка состоит из следующих символов:

 

- букв английского алфавита от A до Z и от a до z и знак "_".

Буквы используются для формирования идентификаторов и служебных слов.

- арабских цифр от 0 до 9.

Цифры используются для записи чисел и идентификаторов.

- 22 специальных символов:

+ - * / = < > [ ] . , ( ) : ; ^ @ { } # ' $ Специальные символы используются для конструирования знаков

операций, выражений, комментариев, а также как синтаксические разделители.

Следующие пары символов также представляют собой специальные символы:

<= >= := .. (* *) (. .)

 

Лексическая структура языка. Комментарии и пробелы

 

Символы из алфавита языка используются для построения базовых элементов Pascal-программ - лексем.

 

Лексема - минимальная единица языка, имеющая самостоятельный смысл. В TurboPascal имеются следующие классы лексем:

 

1. Служебные (зарезервированные) слова. Это ограниченная группа слов, построенная из букв. Каждое служебное слово представляет собой неделимое образование, смысл которого фиксирован в языке. Служебные слова НЕЛЬЗЯ использовать в качестве имен, вводимых программистом.

Следующие слова являются зарезервированными в Турбо-Паскале:

absolute and array asm assembler 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 private procedure program record repeat set shl shr string then to type unit until uses var vertical while with xor

 

2. Идентификаторы (имена). Идентификаторы вводятся для обозначения в программе переменных, констант, типов, меток, процедур и функций и формируются из букв и цифр в соответствии со следующей диаграммой:

 

Идентификатор

 

 
 

 

 


Идентификатор может иметь любую длину, однако только первые 63 символа являются значимыми. Идентификатор должен начинаться с буквы и не может содержать пробелов. После первого символа идентификатора можно использовать буквы, цифры и символы подчеркивания. Как и в зарезервированных словах, в идентификаторах можно использовать как строчные, так и прописные буквы (компилятор их не различает).

Идентификаторы вводятся в программу посредством описаний. Приведем несколько примеров идентификаторов:

 

Writeln

Exit

Real2String

 

3. Изображения. Эта группа лексем обозначает числа, символьные строки и некоторые другие значения.

 

4. Знаки операций формируются из одного или нескольких специальных символов и предназначены для задания действий по преобразованию данных и вычислению значений.

 

5. Разделители также формируются из специальных символов и в основном используются для повышения наглядности текстов программ. Разделителем может служить пробел, CR, LF, комментарий.

 

В текстах Pascal-программ допускаются фрагменты пояснительного характера -комментарии. Наличие комментария не изменяет смысл программы и не влияет на ее выполнение. В TurboPascal комментарии представляют собой произвольную последовательность символов, заключенную в фигурные скобки или в разделители вида (* *). Вложенность комментариев друг в друга допускается только для комментариев, заключенных в различные пары скобок. Комментарий может находиться между любыми двумя лексемами программы.

Важную роль в тексте Pascal-программы играет символ, не имеющий специального графического изображения, - пробел. Символы пробелов используются для отделения лексем друг от друга в тех случаях, когда слитное написание двух или более лексем может исказить смысл программы. В частности, если идентификаторы и служебные слова записываются друг за другом, то они обязательно должны быть отделены одним или несколькими пробелами (или расположены в различных строках), т.к. их слитное написание будет воспринято как идентификатор. В остальных случаях использование пробелов необязательно и служит целям наглядности, способствуя лучшему внешнему виду программ. Можно сказать, что пробелы, так же, как и комментарии, могут (в любом количестве) находиться между двумя лексемами программы.