Cтраница 1
Вычисляемый оператор GOTO является широко используемым оператором языка ФОРТРАН, применяемым для реализации перехода по нескольким ветвям. Использование косвенной адресации и команды абсолютного безусловного перехода позволяет легко запрограммировать его на языке ассемблера. [1]
Выполнение вычисляемого оператора GO TO вызывает передачу управления на один из операторов, номера которых перечислены в списке номеров операторов. Выбор номера оператора из списка зависит от значения выражения, заданного в операторе после ключевого слова ON. Целая часть значения выражения определяет порядковый номер в списке. [2]
Рассмотрим пример использования вычисляемого оператора GO TO в программе. Пусть имеется группа операторов, которая используется в нескольких местах программы. Для того чтобы не переписывать эту группу столько раз, сколько она встречается в программе, можно поступить так. Первый оператор группы снабжается меткой. Последним оператором группы пишется вычисляемый оператор GO TO, в котором должно быть столько меток, сколько возможных выходов предусмотрено из этой группы операторов. [3]
В ФОРТРАНе аналогом переключателя является так называемый вычисляемый оператор GOTO, применение которого не требует специальных описаний. В ПЛ / 1 переключатель заменяется введением переменных типа метка, значения которых могут поступать через канал ввода и потом присваиваться переменной в нужном месте программы. [4]
Если арифметический оператор IF является трехлозиционным переключателем, то вычисляемый оператор GO TO может переключать программу в т различных направлениях. [5]
Если значение I 1 или I п, действие вычисляемого оператора GO TO не определено. [6]
Заметьте, что выполнение оператора GO TO в ПЛ / 1 аналогично выполнению вычисляемого оператора GO TO в Фортране. [7]
Примеры инициадизации меточных переменных ( массивов) были даны в 3.2 при описании оператора, аналогичного вычисляемому оператору СО ТО. [8]
Средства обеспечения такого перехода предусматриваются в большинстве высокоуровневых языков программирования: в Ал-голе - 60 имеются ключевые переменные, в ФОРТРАНЕ есть вычисляемые операторы GOTO, а в ряде других языков, таких как Алгол-68, Паскаль, Ада, существуют операторы множественного условного перехода. [9]
Общее описание задает подсистемы, которые могут функционировать одновременно, и общие параметры, такие, как длина слов. Остальная часть описания подсистемы аналогична по структуре программе на ФОРТРАНе и содержит операторы передач между регистрами ( присвоение), операторы декодирования ( вычисляемый оператор GO TO) и операторы вызова подсистемы ( операторы вызова подпрограммы), посредством которых одна подсистема может запустить другую. Однако в последнем случае аналогия не полная, так как для организации последовательного функционирования вызывающей и вызываемой подсистем используется флажковый триггер. Этот вызов напоминает оператор языка ПЛ1 ON. И наконец, отметим, что все передачи параметров ( операндов и инструкций) производятся через регистр устройства сопряжения. [10]
В вычисляемом операторе перехода GO TO ( N), М на месте М может стоять любое целое выражение. Если значение выражения больше количества элементов списка меток или если это значение не положительно, выполнение программы продолжается с оператора, который следует за вычисляемым оператором GO TO. В присваиваемом операторе перехода GO TO M, ( N) список меток может отсутствовать. [11]
Приведенное описание элементов языка Basic-ФОРТРАН и особенностей стандартного языка ФОРТРАН предназначено для начинающих программистов и, естественно, не является исчерпывающим. Описанных средств достаточно для составления реальных программ средней сложности. Опытные программисты, решающие сложные задачи, могут воспользоваться более мощными конструкциями, допускаемыми языком, описание которых можно найти в полных руководствах по ФОРТРАНу. К таким конструкциям относятся, например, вычисляемый оператор GO TO, соответствующий оператору перехода по переключателю switch в АЛГОЛе, оператор CALL DUMP, позволяющий производить распечатку определенных частей программы и используемый для ее отладки, а также большое число операторов, обеспечивающих работу с массивами данных на магнитных лентах и дисках. [12]
Я нахожу очень странным то обстоятельство, что мои модели Я-исчисления не были найдены кем-либо ранее, но я очень воодушевлен тем, что новые типы моделей с новыми свойствами, как, например, домены Гордона Плоткина [10], открываются сейчас. Лично я уверен, что для этого все уже подготовлено как на теоретическом, так и на прикладном уровнях. Джон Рейнолдс и Роберт Милн независимо друг от друга ввели новый индуктивный метод доказательства эквивалентностей; Робин Милнер продолжает в Эдинбурге интересную работу по LCF и технике доказательств. Начало направлению доказательства через модели было положено теоремой Дэвида Парка о связи оператора неподвижной точки с так называемым парадоксальным комбинатором Я-исчисления, и это положило начало изучению бесконечных, но вычисляемых операторов, которое продолжается по многим линиям. Другое направление разрабатывается в Новосибирске под руководством Ю. Л. Ершова, а Карл X. [13]
Рассмотрим пример использования вычисляемого оператора GO TO в программе. Пусть имеется группа операторов, которая используется в нескольких местах программы. Для того чтобы не переписывать эту группу столько раз, сколько она встречается в программе, можно поступить так. Первый оператор группы снабжается меткой. Последним оператором группы пишется вычисляемый оператор GO TO, в котором должно быть столько меток, сколько возможных выходов предусмотрено из этой группы операторов. [14]