Квайн
На «Хабре» месячник квайнов — это такие программы, которые выводят сами себя, причём при этом нельзя использовать никакие возможности языка, чтобы получить доступ к тексту программы.
Я вспомнил как написал свой первый и последний в жизни квайн.
Это было когда я ещё учился в Университете, я тогда подрабатывал лаборантом и как раз сидел в классе, за которым присматривал, перед компьютером, когда прибежал мой друг С. О., он учился курсом старше, но мы дружили — он переехал в Казань из того же города, что и я.
Была короткая перемена между парами и преподаватель что-то там пообещал (зачёт, наверное) тому, кто напишет квайн на Турбо Паскале за этот перерыв. Вот мой друг тогда и попросил для него её написать.
До сих пор помню какой принцип я тогда придумал для решения этой задачи. В общих чертах, конечно.
Я оформил программу как требует Паскаль (он довольно многословный) и сделал в нём вывод переменной. Потом в эту переменную я записал всю эту программу в одну строку, заменяя символы перевода строк, где они встречались на #10#13 (так в Турбо Паскале можно было записывать символы через их код, 10 и 13 — десятичные коды символов перевода строки в ДОСе) и потом как-то её удвоил до вывода на экран. Что-то в этом роде, точнее не помню, но программа работала.
Кстати, существует квайн на языке Брейнфак, занимающий всего 410 байт, вот он весь:
->++>+++>+>+>++>>+>+>+++>>+>+>++>+++>+++>+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+>+>++
>>>+++>>>>>+++>+>>>>>>>>>>>>>>>>>>>>>>+++>>>>>>>++>+++>+++>+>>+++>>>+++>+>+++>+>+
+>+++>>>+>+>+>+>++>+++>+>+>>+++>>>>>>>+>+>>>+>+>++>+++>+++>+>>+++>+++>+>+++>+>++>
+++>++>>+>+>++>+++>+>+>>+++>>>+++>+>>>++>+++>+++>+>>+++>>>+++>+>+++>+>>+++>>+++>>
+[[>>+[>]+>+[<]<-]>>[>]<+<+++[<]<<+]>>+[>]+++[++++++++++>++[-<++++++++++++++++>]<.<-<]
Стыдно, но работаю программистом и впервые слышу про квайны. Это что-то важное, я ничего не упустил?
Брейнфак это что-то важное? ;)
Комментарий для on-trail.livejournal.com:
Да ничего особенного, просто программерская развлекуха :)
http://ru.wikipedia.org/wiki/%D0%9A%D1%83%D0%B0%D0%B9%D0%BD_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29
нельзя не упомянуть эпичный квайн http://habrahabr.ru/post/186782/
Комментарий для Vlad528:
На «Хабре» была статья о том как такой квайн делать. Я её бегло просмотрел, у меня сложилось впечатление, что это даже возможно автоматизировать.