Аннотация:Проблема эквивалентности программ состоит в том, чтобы для произвольной заданной пары программ выяснить, имеют ли эти программы одинаковое поведение. С этой проблемой сталкиваются в системном программировании при проведении оптимизирующих преобразований программ, их верификации, реорганизации, маскировке (обфускации), обнаружении уязвимостей и вредоносных фрагментов кода, и др. В данной монографии представлены различные виды моделей императивных (последовательных) и функциональных (рекурсивных) программ и подробно описан и исследован общий метод решения проблемы эквивалентности программ – метод совместных вычислений. С его помощью можно конструировать алгоритмы проверки эквивалентности разных видов программ.