Непейвода Н.Н. Программирование. Раздел 3

Непейвода Н.Н. Программирование. Страница 370

Может показаться, что при отсутствии спецификаций параметров для параметровподпрограмм повышается выразительность языка. Так, в этом случае для процедуры

в одной программе правомерны операторы PS(0,PR0); PS(1,PR1); и PS(2,PR2);где PRO, PR1и PR2 — имена процедур с 0, 1 и 2 параметра­ми соответственно. Однако цена такой 'выразительности' чрезмерна: изза нее исчезает возможность контроля до выполнения программы ошибочных обращений к процедуре: PS(0,PR1), PS(2,PR1)и др. Существеннее, что эта возможность исключается и в более обычных ситуациях.

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

К примеру, способ введения параметровпроцедур и параметровфунк­ций в расширения языка Pascal(см. п. 8.5.5)может привести к рекурсии через параметры, которая, однако, кажется контролируемой, поскольку соот­ветствующий программный тип с необходимостью должен быть определен в описании типов рекурсивно. Пусть, к примеру:

Здесь имя типа fffиспользовано для спецификации формального парамет­ра М. Допустимые для М фактические параметры, в силу определения fff,

должны удовлетворять шаблону, введенному при описании АТ. В результате функции типа Ш рекурсивны непосредственно или взаимно.

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

Такая возможность, хотя и кажется избыточной, заслуживает отдельно­го обсуждения. Рекурсия не может кончиться, если в конце концов мы не опираемся на нечто, заранее заданное. Точно так же и с любыми другими индуктивными определениями. Так что при использовании рекурсии этот случай должен быть обязательно предусмотрен.

Новости

  • 1
  • 2
Prev Next

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

24.01.2016

Ракета "Ангара-А5В" в ближайшее десятилетие не полетит

Роскосмос не планирует в течение ближайшего десятилетия осуществлять пуск тяжёлой ракеты-носителя А...

Ученые РФ опровергли выводы исследований о вреде ГМО

24.01.2016

Ученые РФ опровергли выводы исследований о вреде ГМО

Исследователи из Института проблем передачи информации (ИППИ РАН) проанализировали несколько самых п...

Летающие "Крокодилы"

24.01.2016

Летающие "Крокодилы"

20 удивительных фактов о боевом вертолете Ми-24.Этот вертолет стал таким же узнаваемым символом сове...

В Аргентине описали новый вид динозавра-гиганта

24.01.2016

О ранее неизвестном виде динозавра, относящемуся к инфраотряду зауроподов, рассказали аргентинские п...

Реклама