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

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

Ситуация с конструкторами, порождающими структурные типы, несколь­ко сложнее, чем для выводимых, поскольку в ходе обработки описания типа при вычислении конструктора должна быть достроена ветвь, которая опреде­ляется программистом. Более того, тип компоненты может быть представлен именем типа, описанного ранее (в некоторых языках возможно, что позже), или же он описывается непосредственно в данном конструкторе. Во всех случаях должна быть обеспечена доступность селекторов компонент.

Как и ранее, мы не будем вдаваться в детали распознавания требуемой структуры по конкретному синтаксису. В соответствии с определением на­бора компонентов в результате распознавания должно быть построено место присоединения дерева набора компонентов у атрибута<Тип> (см. рис. 9.2, где это место определяется для <Переменной>), к которому подсоединен

один из вариантов структуры набора (см. рис. 9.3). Схемы для компонент набора приведены на рис. 9.4.

Значением атрибута<Тип> может быть структурный или неструктур­ный тип, представленный своим деревом либо именем. Если язык допускает

только статические типы, то в результате трансляции имена типов могут быть заменены соответствующими им деревьями, которые используются для контроля правильности задания оперирования с типизированными данными и, при необходимости, для встраивания подпрограмм нужных приведений. В статически типизированном языке после выполнения этих действий ти­повая информация нигде не используется и надобность в атрибуте <Тип> исчезает. Для языков, которые допускают динамические вычисления с типа­ми (хотя бы в самой рудиментарной форме) атрибут <Тип> не может быть ликвидирован. Он (быть может, в трансформированной форме) используется в процессе вычислений. Например, в объектноориентированных языках это ссылка на таблицу виртуальных методов объекта.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

Летающие &quot;Крокодилы&quot;

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

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

24.01.2016

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

Реклама