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

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

Если же рассматривать Turbo Pascal как правильное расширение стан­дартного языка Pascal, не содержащего обсуждаемые команды изза стрем­ления к минимизации средств, то эти команды есть не что иное, как подсказ­ка транслятору, как надо программировать данное вычисление. Следователь­но, указанные операторы для данного языка нужно относить к прагматике.

Семантическая прагматика— это уже упомянутые определения того, что в описании языка оставлено на усмотрение реализации или предписы­вается в качестве вариантов задания вычислений.

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

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

Определение модели вычислений языка дает рецепт, как отделять праг­матику от семантики: прагматика — это то, что органично не вписывается в абстрактные вычисления программы. Но это весьма неконструктивный рецепт, и разработчики языка должны прилагать специальные усилия, что­бы обеспечить явное выделение прагматического уровня. Зачем это нужно? Ответ прост: без этого может сложиться превратное представление как о предлагаемой модели вычислений, так и о ее реализации. Вдобавок к то­му, резко ограничиваются возможности программиста применять в своей практике методы абстрагирования. Следующие иллюстрации обосновывают данное утверждение.

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама