Существуют два потенциальных источника оптимизации в суперкомбинаторной схеме преобразования. Первый заключается в выборе мсв аппликативного ... - Большая Энциклопедия Нефти и Газа



Выдержка из книги Филд А.N. Функциональное программирование


Существуют два потенциальных источника оптимизации в суперкомбинаторной схеме преобразования. Первый заключается в выборе мсв аппликативного Я-тела, а второй - в присваивании порядковых номеров параметрам генерируемых суперкомбинаторов. Эти два источника не являются несвязанными: выделение конкретного мсв влияет на структуру оставшейся части Х - тела и, следовательно, на множество оставшихся мсв. Довольно простой путь оптимизации, который мы уже использовали, заключается в том, чтобы не рассматривать постоянные подвыражения в качестве мсв. Если их рассматривать как мсв, преобразованное суперкомбинаторное выражение будет, конечно, правильным, но каждое выделенное таким образом постоянное подвыражение станет постоянным аргументом в процессе вычисления выражения, что приведет к необязательным накладным расходам по передаче параметров. К счастью, нетрудно сделать так, чтобы компилятор выбирал в качестве мсв только те выражения, которые содержат свободные переменные.

(cкачать страницу)

Смотреть книгу на libgen

Существуют два потенциальных источника оптимизации в суперкомбинаторной схеме преобразования.  Первый заключается в выборе мсв аппликативного Я-тела,  а второй  -  в присваивании порядковых номеров параметрам генерируемых суперкомбинаторов.  Эти два источника не являются несвязанными:  выделение конкретного мсв влияет на структуру оставшейся части Х - тела и,  следовательно,  на множество оставшихся мсв.  Довольно простой путь оптимизации,  который мы уже использовали,  заключается в том,  чтобы не рассматривать постоянные подвыражения в качестве мсв.  Если их рассматривать как мсв,  преобразованное суперкомбинаторное выражение будет,  конечно,  правильным,  но каждое выделенное таким образом постоянное подвыражение станет постоянным аргументом в процессе вычисления выражения,  что приведет к необязательным накладным расходам по передаче параметров.  К счастью,  нетрудно сделать так,  чтобы компилятор выбирал в качестве мсв только те выражения,  которые содержат свободные переменные.