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

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

Здесь специализация программы в первом приближении сводится к вычис­лению функций с частично определенными параметрами.

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

Не следует думать, что при написании универсальной программы мож­но совсем не заботиться о качестве. Так, если ваша программа вычисления функции У = Хп будет реализовывать прямолинейный алгоритм после­довательного умножения на X, то бессмысленно ожидать, что с помощью универсального специализатора из нее получится остаточная программа с минимальным числом умножений. Скорее всего, при п = 5 у вас получится чтото вроде ((((х*х)*х)*х)*х).

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

Новости

  • 1
  • 2
Prev Next

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

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

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

24.01.2016

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

Реклама