Да, создать самовоспроизводящуюся программу возможно. 2
Один из примеров такой программы описан на сайте CodeProject: 2 при запуске исполняемого файла он генерирует свой собственный исходный код. 2 При повторном запуске исполняемый файл компилирует этот исходный код и выполняет его, показывая тот же пользовательский интерфейс. 2
Также существует подход, при котором часть исполнимого файла перезаписывается командами другой его части в зависимости от условий окружения. 4 Для этого нужно хорошо знать окружение, например операционную систему. 4
Ещё одна возможность создать самовоспроизводящуюся программу — использовать теорему рекурсии Клейна. 1 Она гласит, что любая программа может получить доступ к своему коду и выполнять вычисления с его помощью, если у неё есть доступ к интерпретатору для запуска или оценки кода. 1