Книга: Этюды для программистов
9. Познай самого себя, или Программа, печатающая собственный исходный текст
9.
Познай самого себя,
или Программа, печатающая собственный исходный текст
В философии интроспекция (или самонаблюдение) считается одним из важных элементов мышления. Все здравомыслящие люди должны внимательно отнестись к названию этюда. Если человек может достичь самопознания, то почему этого не может сделать программа? Ну а чтобы познать себя, лучше всего написать автобиографию.
Тема. Напишите программу, печатающую копию собственного исходного текста. Вывод не должен содержать «управляющих» карт или другой информации, зависящей от системы. Печатается только то, что перфорируется для компилятора. Однако ваша программа ничего не должна вводить; ей не следует опираться на системные «штучки», например на знание того, что конкретный компилятор оставляет копию исходной программы в непомеченном COMMON-блоке. Проследите, чтобы программа давала одинаковый результат независимо от места и времени выполнения.
Указания исполнителю. Не поддавайтесь отчаянию и страху, даже если тринадцатая попытка оказалась неудачной! Подобные программы называются интроспективными, и существует теорема, в которой утверждается, что интроспективную программу можно написать на любом «достаточно мощном» языке. Все обычные языки программирования — достаточно мощные. Для решения требуется лишь взглянуть на язык под соответствующим углом зрения. Программа, вероятно, займет не более 30–40 строк.
Инструментовка. Годится любой язык.
Длительность исполнения. Одному исполнителю на 1 неделю.
- Исходный текст
- Когда нужен постскриптум в бизнес-тексте?
- Текст по законам жанра
- Набор текста
- Вкладывайте в себя деньги
- «Высшая математика» в тексте
- 13.3.4. Поиск и замена текста
- Тексты для блогов и соцсетей
- Программа «Тайный покупатель»
- 1.2 Процесс, контекст процесса и потоки
- 6.2. Заработок на контекстной рекламе Google AdSense
- 7.6. Оценка эффективности рекламного текста