This a classic excersize by C. Wezerell from his famous book Etudes for programmers, implemented on the AL-IV language in two versions: hard and easy. Easy version is slightly contravening the requirement "do not use capabilities of the compiler to leave a copy of the source somewhere in memory/disk". But actually, this is not using the compiler but the language itself feature "to write anything after END, and this become the DATA[] array available at runtime".

2023, Vladimir Kladov.

--------------------------- RU:
Это классическая задача Чарльза Уэзерелла из его знаменитой книги "Этюды для программистов", реализованная на AL-IV (АЛФОР) в двух вариантах: сложном и простом. Простой вариант решени1 слегка нарушает требование "не использовать копию исходного кода, сохраненную компилятором где-либо в памяти/на диске". Но здесь скорее используется не особенность компилятора 