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

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

В развитых машинноориентированных языках программирования (та­ких как BLISSи ЯРМО) есть средства описания алгоритмов доступа к памяти, которые сближают процедуры и массивы. Подобные средства в примитивизированном виде начали проникать в современные практические языки (пока что на уровне конкретных систем программирования). Напри­мер, рассмотрим, отвлекаясь от мелких технических деталей, спецификато­ры propertyязыкаObjectPascalи языка системыVisualС. После описаний

типа ^

propertyа

возникают виртуальные данные —данные, функции извлечения и изменения для которых определяет сам программист. Обращение к такому данному интерпретируется как вызов его функции извлечения, а присваивание такому данному — как вызов функции изменения.

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

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

Приоритеты обязательно возникают, когда в языке имеется систематиче­ский механизм определения новых операций. Примером такого языка явля­ется Algol 68. Здесь средств контекстносвободной грамматики для задания порядка вычисления выражений недостаточно. При описании новой опе­рации заодно описывается и ее приоритет, и он является характеристикой операции во всей ее области действия. Оказывается, что смысл операции зачастую можно определять по контексту, а вот приоритет ее должен быть атрибутом обозначения операции, а не ее конкретной реализации для кон­кретных типов операндов. Ведь для того, чтобы установить, к чему приме­няется операция, нужно сначала синтаксически разобрать выражение, в ко­торое она входит.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама