Quine----输出本身的程序
来源:互联网 发布:linux jira安装配置 编辑:程序博客网 时间:2024/05/16 07:38
程序在我们的日常生活中扮演了重要角色,小到吃饭刷卡,达到发射火箭,似乎无所不能。那么问题来了,有能输出本身源代码的程序吗?
这似乎是个死循环,就“如要理解递归,就要理解递归”一样。然而,如果我们采取一些巧妙的方法,还是有方法实现的,并且实现的方法不止一种。人们把这种程序称为“Quine”。下面是一个使用C++语言的Quine。
将换行符和引号等用对应的字符编码替换,巧妙地避免使用“\”引起死循环。
早在19世纪六十年代 爱丁堡大学的 Hamish Dewar就已写出第一个Quine程序
当时的程序是这样的
据说AGPL协议中的关于下载源的规定的灵感就来自Quine
我们也可以换一种思路写Quine,我们可以利用编译器中的预定义宏“__FILE__”
我们还可以通过各种不同的语言来写
Java
C++
它们分别输出对方的代码。
不仅是两种语言,我们还可以把50种不同的编程语言构成一个循环。
他叫Quine Relay
它一开始是一段Ruby代码,运行后生成Scala代码,后者运行后生成Scheme代码……最后又回到最初的Ruby代码。一边执行一边能画出一条正在吞食自己尾巴的蛇,刚好表示了循环。
项目地址:github.com/mame/quine-relay
更多Quine代码:www.nyx.net/~gthompso/
部分资料来自维基百科:en.wikipedia.org/wiki/Quine_(computing)
They Said "All we are is sinking endless."
原文地址:http://ozem.pw/archives/798
0 0
- Quine----输出本身的程序
- 用C语言输出自身的程序源码(Quine)
- TOJ1072 输出为本身的C程序
- java输出程序本身占用的内存
- 可以输出自己的源程序代码(quine)
- Delphi 7 的 quine
- 程序输出源文件本身(面试题)
- 一个有趣的问题:可以输出自己的源程序代码(quine)
- 获取程序本身的版本号
- 获取程序本身的版本号
- 程序的打印其本身
- 唉,PPLIVE考了个输出自己本身代码的程序
- 输出程序文件本身及删除程序中的注释
- 一段输出代码本身的SQL代码
- vc获取程序本身的版本号
- 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数,则输出左侧的值及相应距离。 如果输入的整数本身就是素数,则输出该素数本身,
- 删除运行程序本身
- php删除程序本身
- C3P0连接池参数
- 哥德尔不完备定理----一切都是非真即假的吗
- 逆变与协变详解
- removeEventListener('2016');
- Leetcode 63. Unique Paths II
- Quine----输出本身的程序
- The best way to handle the LazyInitializationException
- Salesforce使用truncate清空数据库
- 自定义View 篇二--------《自定义属性》
- java 语句异常后跳出的范围是fun()
- SDWebImage源码解读之干货大总结
- java程序的容错性
- test
- 2017.1.30 Java有感3(main方法)