Читаем Пожиратель памяти (СИ) полностью

Пожиратель памяти (СИ)

Программист Игорь Точилин и не подозревал, к каким последствием приведёт его попытка написать программу, печатающую саму себя.

Милана Александровна Масалова

Фантастика / Научная Фантастика18+

Пожиратель памяти

http://ficbook.net/readfic/3326283



Автор:

Союз Мандрыковских ларьков (http://ficbook.net/authors/769933)


Фэндом:

Ориджиналы


Рейтинг:

G


Жанры:

Фантастика, Детектив, Повседневность



Размер:

Мини, 16 страниц


Кол-во частей:

6


Статус:

закончен



Описание:


Программист Игорь Точилин и не подозревал, к каким последствием приведёт его попытка написать программу, печатающую саму себя.



Посвящение:


Крису Касперски и его хакерским (в хорошем смысле этого слова) книгам



Публикация на других ресурсах:


Где угодно, но пришлите, пожалуйста, ссылку



Примечания автора:


Куайн - компьютерная программа, которая выдаёт на выходе точную копию своего исходного текста.



1998 год - Околонаучные изыскания

      - А что, написать программу, которая выводит на монитор саму себя, слабо? – спросил Юра Гомеров, закуривая очередную сигарету.



      - Зачем? – поинтересовался Игорь Точилин, поправляя на переносице очки.



      Они стояли в курилке одного из НИИ, где фирма, в которой работал программистом Игорь, арендовала несколько комнат. Работники этой фирмы и сотрудники НИИ завидовали друг другу белой завистью, ведь «фирмачи» получали гораздо большую зарплату, но, работая в НИИ, можно было бесплатно выучиться в аспирантуре, спокойно написать диссер и защититься. До открытых оскорблений дело никогда не доходило, но очень часто «ниишевцы» рисовались перед «фирмачами» своими академическими знаниями, а «фирмачи», в свою очередь, как бы между прочим, рассказывали о том, в какой загранице они провели последний отпуск.



      - Просто для общего развития, - объяснил Юра. – Или тебе это совсем неинтересно?



      - Да что тут сложного, - пожал плечами Игорь. – Я приблизительно представляю, как это можно сделать…



      - Ну, так вперёд! – усмехнулся Юра, выбросил окурок в урну и вышел из курилки.



      Игорь последовал за ним…



      …До вечера он сидел за своим компьютером и отлаживал программу обработки запросов к какой-то сложной базе данных, время от времени исправляя свои же ошибки. А когда рабочий день подошёл к концу, на улице начался сильный ливень, поэтому Игорь, у которого не было личного автомобиля, решил задержаться на работе, пока не закончится дождь.



      Сидя в пустой комнате, он сначала несколько раз сыграл в стрип-покер, а затем вспомнил об утреннем разговоре с системотехником из НИИ и решил по-быстрому набросать программу, которая выводила бы свой текст на монитор, чтобы завтра утереть нос этому Юре.



      Он запустил консольное приложение Builder и приступил к написанию программы.



      «Так, сначала напишем программу, которая выводит несколько строк какого-то текста», - размышлял Игорь, набивая код, выводящий на экран монитора фразу «Программа, которая печатает саму себя».



      Откомпилировал и запустив эту программу на выполнение, Игорь довольно усмехнулся, увидев искомую фразу на экране.



      «Теперь осталось поместить всю программу в параметры оператора вывода на монитор», - решил Игорь, скопировал весь текст программы и вставил его вместо текста «Программа, которая печатает саму себя».



      После этого он некоторое время любовался текстом своей программы, выведенным в консольном окне, а затем посмотрел на исходный код и понял, что программа опять вывела на монитор только содержимое оператора вывода.



      «Так-так-так, - обхватил руками голову Игорь. – Нужно сделать какой-то хитрый финт, и всё получится. А что, если попробовать записать программу в память, а затем считать её оттуда и вывести на монитор? И ещё, нужно не забыть стереть потом из памяти эту программу...»



      Он написал программу, выполняющую эти действия, и увидел на мониторе несколько строк шестнадцатиричного кода.



      «А теперь нужно преобразовать его в вид на языке высокого уровня", - и Игорь написал программу, которая считывает этот шестнадцатиричный код из памяти и записывает его в конец какой-нибудь программы, которая при запуске на выполнение начинает печатать этот исходный текст.



      Ничего не получилось. Тогда Игорь дописал в свою программу функцию поиска последней запущенной на выполнение программы, в которую должна была записываться его программа…



      …А потом он ещё что-то добавлял в свою программу, а потом ещё немного усовершенствовал её, и каждый раз ему казалось, что ещё чуть-чуть, и всё у него получится…



Перейти на страницу:

Похожие книги