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

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

Inoutпараметры являются совмещением двух других видов параметров, а потому их фактические параметры могут быть только переменными. От­личие таких параметров от outпараметров лишь в том, что эти переменные перед вызовом подпрограммы должны иметь определенные значения (как выражения inпараметров).

Перечисленные виды параметров характеризуют параметризацию с точ­ки зрения использования процедур. Такое рассмотрение достаточно для кор­ректного употребления процедур: три вида параметров исчерпывают все случаи взаимодействия процедур с окружением, необходимые на практике. Это обстоятельство, повидимому, является главной причиной того, что в со­временных языках программирования (например, в Ada) виды параметров указываются явно при описании процедур. Такой подход к параметризации согласуется с интуитивным пониманием назначения параметризации и ее возможностей.

Что же касается языка C/C++, то для его параметризации выбрана кон­цепция, максимально приближенная к тому, как реализуется передача пара­метров на машинном уровне. В частности, в нем представлен лишь один механизм параметризации, через который все указанные виды параметров моделируются. Если это и недостаток, то маленький, поскольку к такому мо­делированию быстро привыкают и даже не замечают его при практической работе. Есть еще одно свойство языка C/C++, облегчающее неаккуратное программирование: возможность описывать функцию с одним числом пара­метров, а использовать с другим, но это свойство соотносится не с понятием вида параметров, а со средствами оперирования с ними.

В Алголе 68, как и в C/C++, задается единый механизм параметризации, но там он предлагается для экономии мышления, а не с точки зрения эффек­тивной реализуемости. И хотя оказывается, что эти позиции не противоречат друг другу (что наталкивает на мысль о согласовании принципа экономии мышления с принципом экономии вычислений), все же явное определение назначения параметров представляется более логичным.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама