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

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

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

Для пояснения этого тезиса используется следующая иллюстрация. Вполне осмыслена такая процедура (записывается в нотации, напомина­ющей Паскаль, но это совершенно другой язык):

корректны или нет в зависимости от того, законны ли присваивания, типы которых естественно обозначить в данном языке ш!::=Аоа1 и сЬаг:=т!:.

А что будет, если в теле процедуры встречается, например, операция де­ления? Будет ли тогда первый вызов процедуры корректным, а второй нет? Может быть, корректными фактическими параметрами, т. е. согласованны­ми по типам с формальными параметрами, считать такие, набор операций которых включает в себя всю совокупность используемых в теле процеду­ры операций с соответствующим формальным параметром? Но тогда нужно осознавать, что логическим следствием будет расширение этой совокуп­ности вглубь вызовов процедур: если формальный параметр используется (в теле процедуры) в качестве фактического параметра другой процедуры, то совокупность должна быть расширена операциями, используемыми с соот­ветствующим формальным параметром этой процедуры. А есть еще случаи динамики, когда при одних вычислениях формируется одна, а при других — другая совокупность; есть и перегрузка операций, когда смысл имени опе­рации зависит от того, с какими аргументами она вычисляется. И все это осложняется в связи с внешними библиотечными процедурами, про которые принципиально неизвестно, как они используют свои параметры.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама