Так что я просто натолкнулся на термин Quine в Википедии и не могу понять, для чего он предназначен. Я более чем смущен. Есть ли для этого какие-то реальные возможности?Для чего предназначен термин «quine»?
ответ
Куайн, по существу, это команда, которая выводит свой собственный исходный код. И нет никаких практических применений для этого.
Нет, это не полезная вещь, это просто упражнение стиля, что некоторые программисты пользуются ...
Куайн полезно в следующих случаях:
- Programmatic сборник
Код объекта можно сериализовать на диск непосредственно, хотя у него есть печенье и версию предваряется фронт. Но при компиляции схемы во время выполнения вам требуется значение Scheme: например, скомпилированная процедура. По этой причине, чтобы не нарушить абстракции, Коварство определяет поддельный язык в нижней части башни:
Value
Компиляция значению загружает код объекта в процедуру, и будит спящий великан.
Возможно, эту странность можно объяснить примером: компиляция файлов по умолчанию для компиляции в объектный код, поскольку она создает объектный код, который должен жить в бесплодном мире вне времени исполнения Guile; но компилировать значения по умолчанию для компиляции для оценки, поскольку его продукт возвращается в мир Guile.
Действительно, процесс компиляции может циркулировать через эти разные миры бесконечно, как показано на следующей Куайна:
((lambda (x) ((compile x) x)) '(lambda (x) ((compile x) x)))
- проверки безопасности:
В Omniture если злоумышленник должен добавить quine в файл cookie, а затем принудительно использовать eval, используя новое значение для cid
Использование созданного файла gzip (прикрепленный файл - это файл, который распаковывает себя), можно получить tar (1), чтобы вызвать бесконечную цепочку gzip-компрессоров, пока вся память на машине, работающей с tar (1), не была истощенные или другой лимит ресурсов пинки в.
- Transformation Самого
по существу, его интуитивно (и эффективно) содержанием является то, что программа может использовать свой собственный источник в качестве переменного, то есть добавления к языку программирования способность к pr ogram манипулировать собой (его исходный код) не добавляет его выразительной способности.Таким образом, существует программа, которая сжимает свой собственный листинг; существует один, который печатает свою собственную контрольную сумму MD5 (это гораздо проще, чем найти программу - действительно любой файл - который содержит его контрольную сумму MD5
- Автономные Двухуровневая архитектура
Если ваши данные и код базы данных не хранятся в одном месте, вы рискуете потерять след одного, что делает другой бесполезной.
- самосохранение
TiddlyWiki является необычным примером практического Куайна: именно эта способность создавать копию своего собственного исходного кода, который лежит в основе способности TiddlyWiki, чтобы самостоятельно сохранить изменения в себе ,
- Доказательств
Если «Куин» означает «автомат, используя свой собственный исходный код в качестве входных данных», затем Гёделя используется Куайн, более или менее, чтобы доказать свою теорему о неполноте, Тьюринг использовал это, чтобы доказать, что проблема с остановкой была невыполнимой, Томпсон использовал ее для того, чтобы показать, что доступ к исходному коду всего вашего программного обеспечения и компиляторов недостаточен для поиска в нем бэкдоров, Стив Рассел примерно изобрел языки функционального программирования, закодировав букву Маккарти в Lisp quine в (709?) сборке, Джон фон Нейман предсказал, что структура то, что самовоспроизводящиеся формы жизни в целом оказались бы quines, и было доказано право с открытием ДНК.
Так что если quines ответственны за существование жизни, теорему неполноты Гёделя, доказательство бессознательности проблемы остановки и существование языков функционального программирования, я выдвигаю их как самую исторически важную категорию программ для всех ,
- неструктурированной петли не
Мюриэль имеет не традиционные структуры управления. Вместо этого у Muriel есть команда, чтобы заменить текущую запущенную программу Muriel на заданную строку и запустить ее вместо этого. Это приводит к методу программирования, в котором программа должна выполняться сама по себе, чтобы выполнить какой-либо цикл.
Список литературы
- 1. Для чего предназначен uint32_t?
- 2. Для чего предназначен JObjC.jar?
- 3. Для чего предназначен этот код?
- 4. Для чего предназначен файл .gdbinit?
- 5. Для чего предназначен объект Graphics?
- 6. Для чего предназначен родительский элемент управления?
- 7. Xcode Storyboard, для чего предназначен раздел «Документация»?
- 8. java.util.List <T> Для чего предназначен?
- 9. 192.168.0.71 ... Для чего предназначен этот специальный адрес?
- 10. Что такое KEYVAL? И для чего он предназначен?
- 11. Конфигурация HDFS и для чего предназначен каталог пользователей?
- 12. Модель OSI - для чего предназначен презентационный и сеансовый уровни?
- 13. В чем смысл программы Quine?
- 14. Haskell Quine: «ap» Monad
- 15. Quine Confusion.Что на самом деле делает отпечатки quine?
- 16. Android предназначен для телефонов
- 17. Понимание ruby quine
- 18. C++ Template Quine
- 19. Для чего использовался символ??
- 20. Как IIS знает, что веб-запрос предназначен для ASP.NET, а не для чего-то еще?
- 21. Что такое источник данных для Kendo Scheduler и для чего он предназначен?
- 22. Для чего нужен csilogfile?
- 23. Для чего используется хеширование изображений?
- 24. Для чего используется героку?
- 25. Является ли функция() {} истинным quine?
- 26. MomentJS - Предназначен для проверки ввода?
- 27. Какой язык предназначен для Ubuntu?
- 28. App не предназначен для планшетов
- 29. Является ли это действительным quine?
- 30. quine (self-production) SQL-запрос