Суперкомпиляция

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

Автор названия этой техники — российский и американский учёный Валентин Турчин.

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

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я