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

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

У процедуры MyOwnlnpMatrесть еще одна, неявная связь с глобальным контекстом. Это условие корректной ее работы: размерность матрицы не должна превосходить значения константы NN. С точки зрения надежности программирования неявные связи подпрограмм с контекстом их погружения нежелательны. В примере процедура MyOwnlnpMatrне совсем надежна, т. к. ее можно вызвать с нарушением условия корректности, а ошибка, к которой приведет такой вызов, не будет своевременно диагностирована.

В языке Pascalесть средство для смягчения последствий такой ненадеж­ности: возможность контроля значения переменной Nза счет придания ей типа 0..NN(в глобальном контексте). Тем самым при наличии связи процеду­ры с глобальным контекстом через эту переменную будет контролироваться именно та величина, которая вызывает ошибку размерности. В случае про­цедуры с параметромразмерностью этот параметр должен получить тип 0..NN(разумеется, путем включения в глобальный контекст описания типа, например

и спецификации параметра как Index).

Такое решение практически исчерпывает проблему, но далеко не всегда условия корректности работы подпрограммы выразимы с помощью указа­ния требуемых статических типов переменных и параметров. К сожалению, задание типовой информации — единственное средство языка Pascal, кото­рое можно использовать для спецификации значений объектов. В некоторых языках возможности такого рода расширяются. Иногда, к примеру, допус­кается определение предиката над параметрами, формулирующего условия корректной работы подпрограммы. Но ни один формальный способ специ­фикации условий на параметры даже теоретически полон быть не может, а неформальный чреват и ошибками неправильного истолкования, и многи­ми другими опасностями.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама