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