В.Г. Абрамов, Н.П. Трифонов, Г.Н. Трифонова - Введение в язык Паскаль (1107618), страница 4
Текст из файла (страница 4)
заранее зафиксированный) смысл — так же, как и любой основной символ, представленный одной литерой.Заметим, что в отличие от естественных (разговорных) языков, которыесформировались в процессе длительного исторического развития,алгоритмические языки являются "искусственными" языками, которыеразрабатываются специалистами соответствующего профиля по своемуусмотрению, исходя из тех или иных априорных требований, предъявляемых к таким языкам. Одним из таких требований — с целью удобства егоиспользования людьми — является определенная близость алгоритмического языка к общепринятой математической символике и даже к обычномуразговорному языку.
Поэтому в основе алгоритмических языков и лежитформульно-словесный способ записи алгоритмов, при котором часть указаний записывается в виде обычных слов естественного языка.Один из недостатков этого способа состоит в том, что по сути дела однои то же указание можно сформулировать словами многими различнымиспособами, а это таит в себе опасность расплывчатости языка и неоднозначности понимания записанных на нем текстов.
Так, в приведенном ранеепримере записи алгоритма нахождения НОД(ш, п) встречались выражениятипа "в противном случае", "иначе" (а можно было бы использовать ивыражение "если же условие не выполнено" и целый ряд других), которыеозначают одно и то же, т.е. являются синонимами. Чтобы устранить этинеудобства и в то же время сохранить близость к естественному языку,в подобных случаях выбирается один из возможных синонимов, наиболеекраткий и выразительный, например слово "иначе", который и принимаетсяв качестве основного символа алгоритмического языка.
Этбт основнойсимвол также представляется не одной литерой, а последовательностьюлитер, т.е. является "словом" в обычном понимании. Однако это словозарезервировано для определенной цели и имеет фиксированный, заранеепредписанный ему смысл. Поэтому слова подобного рода, являющиесяосновными символами языка, принято называть служебными (или зарезервированными) словами. В связи с тем, что алгоритмические языки являются, как правило, международными языками, в качестве служебных словобычно берутся слова из английского языка. Служебные слова используются в языке для различных целей — для обозначения операций, спецификации свойств программных объектов и т.д.Язык паскаль в этом отношении не является исключением и в его алфавите содержится довольно много служебных слов.
Следует подчеркнуть,что в паскале служебные слова з а п р е щ а е т с я использовать длякаких-либо иных целей (в некоторых алгоритмических языках это не так).В связи с этим нет необходимости как-то специально выделять эти словав тексте программы. Однако для простоты выявления служебных словв тексте, а тем самым облегчения его понимания, служебные слова14в рукописном тексте принято подчеркивать, а в печатных изданиях —выделять полужирным шрифтом.Теперь перейдем к конкретному описанию алфавита языка паскаль.Набор основных символов, образующих этот алфавит, можно разбитьна три группы: буквы, цифры и спецсимволы:< основной символ >: := < буква > | ( цифра > | < спецсимвол >В качестве букв используются прописные (заглавные) латинские б у к в ыот А до Z.
В конкретных реализациях языка допускается расширениенабора букв, поэтому для достижения большей наглядности текстовна паскале для русского читателя, в набор букв включим и буквы русскогоалфавита (строчные и прописные). Кроме того, будем использовать истрочные латинские буквы.Цифрами являются обычные десятичные (арабские) цифры:< цифра >: := 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9которые имеют общепринятый смысл.Группа спецсимволов достаточно многочисленна и неоднородна, поэтомуее, в свою очередь, разобьем на четыре группы:< спецсимвол > :: = < знак арифметической операции ) |< знак операции сравнения > | ( разделитель > |< служебное слово >Имеется четыре знака арифметических операций:< знак арифметической операции > ::= * | / | + | —которые обозначают соответственно операции умножения, деления, сложения и вычитания чисел (для целых чисел используются и некоторые другиеобозначения арифметических операций, которые будут рассмотреныпозднее).
Поскольку обычно используемый в математике знак умножения X весьма похож (особенно в рукописном тексте) на букву X, то дляустранения неоднозначности понимания и возможных ошибок в программе,в паскале, как и в некоторых других дзыках, умножение обозначаетсясимволом * (звездочка). Для обозначения операции деления в математикеиспользуется либо горизонтальная черта ( запись -либо двоеточие(запись А :В). Первая из этих записей неприемлема в силу требования линейности любой записи на паскале, а двоеточие используется в языке длядругих целей, поэтому для обозначения операции деления используетсясимвол " / " (косая черта) .Знаки операций сравнения в паскале имеют ту особенность, что некоторые из них представляются не одной литерой, а двумя (табл.
1.1).О причинах выбора таких обозначений уже говорилось выше (возможностьиспользовать сравнительнб "бедные" внешние устройства).Несмотря на то, что некоторые из этих операций изображаются парой литер, неоднозначности понимания текста — в силу синтаксических правил —не возникает.15Таблица 1.1МатематическийэквивалентЗнак операции сравненияв паскале< ><<=>>=равноменьше или больше (не равно)меньшеменьше или равно (не больше)большебольше или равно (не меньше)Ф<«>Группу разделителей образуют следующие символы:(разделитель) ::= .
| , | ; I : I ( I ) I [ I ] I { I } I t I ' | : =Смысл некоторых разделителей достаточно очевиден, а других — будетобъясняться по мере их использования в соответствующихконструкцияхязыка. Сейчас мы остановимся лишь на фигурных скобках " {" и "} ".В языке паскаль имеется такое понятие, как комментарий — это взятая вфигурные скобки любая последовательность символов, не содержащая закрывающей фигурной скобки:(комментарий) ::= {( любая последовательность символов кромесимвола { ) }Комментарии используются только для целей документирования программы, чтобы сделать ее более понятной и тем самым облегчить последующую работу с нею (проверку и отладку программы, ее усовершенствование, модификацию с целью расширения ее возможностей и т.д.)как автору программы, так и другим лицам.
С помощью комментариев можно объяснить назначение и особенности программы,используемый в ней численный метод, суть используемого алгоритма, назначение отдельных фрагментов программы и т.д. Комментарии могут быть изъяты из программы илипроигнорированы, и при этом смысл программы и результаты ее выполнения не изменяются (о том, в каких местах могут быть помещены комментарии, будет сказано позже).Если на каком-либо внешнем устройстве отсутствуют фигурные скобки" { " и " } ", то вместо них могут использоваться эквивалентные им символы, состоящие из пар литер " ( * " и " * ) " соответственно. Благодаря тому,что фигурные скобки нигде больше в языке не используются, они и могутприменяться в метаформулах для указания повторения той или инойконструкции, например в определении( двоичный код > ::= < двоичная цифра) {( двоичная цифра )}Группа служебных слов в паскале достаточно обширна, однако читателюнет необходимости сразу же заучивать весь набор служебных словпо мере их введения в употребление и использования они будут запоми16наться по ходу дела:( служебное слово > :: = and ! array | begin | case | const | div | do |downto | else | end | for | function | goto | if | in | label | mod | nil |not | of | or | packed | procedure | program | record | repeat | set | then |to | type | until | var | while | with1.4.
Основные понятия языка1.4.1. ОператорыОдним из ведущих понятий языка является понятие оператор. Это наиболеекрупное и содержательное понятие: каждый оператор представляет собойзаконченную фразу языка и определяет некоторый вполне законченныйэтап обработки данных. В паскале имеется восемь типов операторов, каждый из которых имеет вполне определенное назначение.Все операторы можно разбить на две группы.
Одну группу образуют операторы, которые в своем составе (т.е. в последовательности символов,образующей заиись оператора) не содержат других операторов. Операторыэтой группы назовем основными операторами. К ним относятся: операторприсваивания, оператор процедуры, оператор перехода, пустой оператор.Другую группу образуют операторы, в состав которых входят другиеоператоры.