9. Познай самого себя, или Программа, печатающая собственный исходный текст
9.
Познай самого себя,
или Программа, печатающая собственный исходный текст
В философии интроспекция (или самонаблюдение) считается одним из важных элементов мышления. Все здравомыслящие люди должны внимательно отнестись к названию этюда. Если человек может достичь самопознания, то почему этого не может сделать программа? Ну а чтобы познать себя, лучше всего написать автобиографию.
Тема. Напишите программу, печатающую копию собственного исходного текста. Вывод не должен содержать «управляющих» карт или другой информации, зависящей от системы. Печатается только то, что перфорируется для компилятора. Однако ваша программа ничего не должна вводить; ей не следует опираться на системные «штучки», например на знание того, что конкретный компилятор оставляет копию исходной программы в непомеченном COMMON-блоке. Проследите, чтобы программа давала одинаковый результат независимо от места и времени выполнения.
Указания исполнителю. Не поддавайтесь отчаянию и страху, даже если тринадцатая попытка оказалась неудачной! Подобные программы называются интроспективными, и существует теорема, в которой утверждается, что интроспективную программу можно написать на любом «достаточно мощном» языке. Все обычные языки программирования — достаточно мощные. Для решения требуется лишь взглянуть на язык под соответствующим углом зрения. Программа, вероятно, займет не более 30–40 строк.
Инструментовка. Годится любой язык.
Длительность исполнения. Одному исполнителю на 1 неделю.
Литература
Брэтли, Милло (Bratley P., Millo J.). Computer Recreations Self-Reproducing Automata. Software — Practice and Experience, 2, pp. 397–400, 1972.
Эту статью нужно читать только в крайнем случае, поскольку в ней представлено полное решение задачи.
Роджерс (Rogers H., Jr.). Theory of Recursive Functions and Effective Computability. McGraw-Hill, New York, NY, 1972. [Имеется перевод: Роджерс X. Теория рекурсивных функций и эффективная вычислимость. — М.: Мир, 1972.]
Чтение этого превосходного введения в теорию рекурсивных функций требует усердия, но вы будете вознаграждены полнотой и ясностью полученной картины. Главы 1–3 образуют достаточный фундамент; результаты об интроспекции содержатся в параграфах 11.1, 11.2 и 11.4.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
10.4.5. Уничтожение процессом самого себя
10.4.5. Уничтожение процессом самого себя Процессы прерывают себя вызовом либо exit(), либо _exit(). Когда функция процесса main() возвращает управление, стандартная библиотека С вызывает exit() со значением, возвращаемым main() в качестве параметра.void exit(int exitCode);void _exit(int exitCode);Две формы,
Исходный текст
Исходный текст Исходные тексты программы, разработанной для UNIX, по большому счету мало отличаются от текстов приложений, создаваемых для других операционных систем. Можно сказать уверенно, что синтаксис языка определяется не операционной системой. Все, что вам
Конфигурация самого устройства
Конфигурация самого устройства В меню конфигурации телефона (которые могут быть предоставлены через графический веб-интерфейс пользователя, меню самого телефона или, возможно, посредством использования конфигурационных файлов, хранящихся на сервере) уникальный
LiveJournal: ведем собственный дневник
LiveJournal: ведем собственный дневник «Есть ли у меня блог?» – такой перефразированный вопрос мистера Фикса, героя известного мультфильма, задают себе многие интернет-пользователи, ведь блог – это модно, современно, а иногда и необходимо. Новое явление сетевой моды последних
Собственный телефонный номер
Собственный телефонный номер Вам не нужен телефонный номер, чтобы звонить своим друзьям и принимать звонки. Достаточно ввести свое имя (ник) и пароль. С его помощью можно звонить практически на любой телефонный номер в мире или на любой компьютер, подсоединенный к
Начнем с самого начала
Начнем с самого начала По смыслу Твиттер – это виртуальная площадка для общения: мгновенного распространения и получения сообщений длиной не больше 140 символов. А по форме – общение в SMS-формате, идею которого основатели компании перенесли из телефонов в Интернет и
Popup («текст сообщения», «количество секунд», «текст заголовка», «тип окна»)
Popup («текст сообщения», «количество секунд», «текст заголовка», «тип окна») Метод отображает текстовое сообщение, указанное в первом входном параметре. При этом, кроме текста сообщения нужно указать следующие входные параметры.? Количество секунд — определяет
Создаем собственный торрент
Создаем собственный торрент Инструкцию по созданию торрентов вы сможете найти на сайте любого тре-кера. Учтите только, что дело это нелегкое: торрент еще необходимо описать, причем максимально подробно, в соответствии с требованиями сайта: включая характеристики файла,
§ 75. Про дом и про ссылки на самого себя
§ 75. Про дом и про ссылки на самого себя — Друг! У вас какая система? Разрешите взглянуть… — Система обычная. Нажал на кнопку — и дома. «Кин-Дза-Дза» 8 ноября 2001Метафора дома появилась в гипертекстовых системах задолго до всемирной паутины. В те времена пиктограммой
С самого начала
С самого начала Создавайте ожидания, продумав то, какой опыт получит пользователь при первом запускеИгнорировать состояние «чистого листа» — одна из самых больших ошибок, которую вы можете сделать. «Чистый лист» — это первое впечатление от вашего приложения, и у вас не
Создаем собственный FTP-сервер
Создаем собственный FTP-сервер В тот момент, когда мы начинаем работать с Сетью, у нас есть лишь одно желание – выкачать все! Или, хотя бы – все то, что сможет пролезть через ваш ограниченный скоростным порогом канал. И мы качаем – программы, музыку, фильмы – не успевая порой
ОПЫТЫ eBay: С самого начала и без конца
ОПЫТЫ eBay: С самого начала и без конца Мы продолжаем серию публикаций, посвященную интернет-торговле. Сегодня речь пойдет о самом известном онлайн-аукционе eBay и особенностях работы с ним, которые следует учитывать обитателям просторов бСССР. - С.В. Аукцион eBay.com уверенно
Право на самого себя
Право на самого себя На пороге XXI века кажется невозможной ситуация, когда человеку отказывают в доступе к своим собственным медицинским данным. Действительно, 96 % американцев считают право на получение копии собственных медицинских данных важным, а 84 % – «очень