Printer Friendly
Dictionary, Encyclopedia and Thesaurus - The Free Dictionary
3,923,228,160 visitors served.
forum Join the Word of the Day Mailing List For webmasters
?
Dictionary/
thesaurus
Medical
dictionary
Legal
dictionary
Financial
dictionary
Acronyms
 
Idioms
Encyclopedia
Wikipedia
encyclopedia
?

Quine

   Also found in: Dictionary/thesaurus, Wikipedia 0.01 sec.
Quine
Willard van Orman. 1908--2000, US philosopher. His works include Word and Object (1960), Philosophy of Logic (1970), The Roots of Reference (1973), and The Logic of Sequences (1990)

(programming)quine - /kwi:n/ (After the logician Willard V. Quine, via Douglas Hofstadter) A program that generates a copy of its own source text as its complete output. Devising the shortest possible quine in some given programming language is a common hackish amusement.

In most interpreted languages, any constant, e.g. 42, is a quine because it "evaluates to itself". In certain Lisp dialects (e.g. Emacs Lisp), the symbols "nil" and "t" are "self-quoting", i.e. they are both a symbol and also the value of that symbol. In some dialects, the function-forming function symbol, "lambda" is self-quoting so that, when applied to some arguments, it returns itself applied to those arguments. Here is a quine in Lisp using this idea:

((lambda (x) (list x x)) (lambda (x) (list x x)))

Compare this to the lambda expression:

(\ x . x x) (\ x . x x)

which reproduces itself after one step of beta reduction. This is simply the result of applying the combinator fix to the identity function. In fact any quine can be considered as a fixed point of the language's evaluation mechanism.

We can write this in Lisp:

((lambda (x) (funcall x x)) (lambda (x) (funcall x x)))

where "funcall" applies its first argument to the rest of its arguments, but evaluation of this expression will never terminate so it cannot be called a quine.

Here is a more complex version of the above Lisp quine, which will work in Scheme and other Lisps where "lambda" is not self-quoting:

((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))))

It's relatively easy to write quines in other languages such as PostScript which readily handle programs as data; much harder (and thus more challenging!) in languages like C which do not. Here is a classic C quine for ASCII machines:

char*f="char*f=%c%s%c;main() printf%c"; main()printf

For excruciatingly exact quinishness, remove the interior line break. Some infamous Obfuscated C Contest entries have been quines that reproduced in exotic ways.

Ken Thompson's back door involved an interesting variant of a quine - a compiler which reproduced part of itself when compiling (a version of) itself.


Want to thank TFD for its existence? Tell a friend about us, add a link to this page, add the site to iGoogle, or visit the webmaster's page for free fun content.
?Page tools
Printer friendly
Cite / link
Feedback
Mentioned in?  References in periodicals archive?   Encyclopedia browser?   Full browser?
No references found
 
Quine, causation and centeris paribus laws, self-locating belief and anthropic reasoning, structuralism and the independence of mathematics, and the principles of Leibnizian philosophy.
Quine estimates it would weigh about 800,000 tonnes when pressurized, around twice the weight of the world's largest supertanker.
Tomando como punto de partida la postura de Michel Foucault, el nominalismo de Nelson Goodman y la relatividad ontologica y del behaviorismo linguistico de W VO Quine, Hull estudia las alternativas contemporaneas de la re construccion del sexo y la sexualidad y cuestiona la premisa de que el conocimiento debe ser absolutamente cierto para ser valido.
 
 
 
Encyclopedia
?

Terms of Use | Privacy policy | Feedback | Advertise with Us | Copyright © 2012 Farlex, Inc.
Disclaimer
All content on this website, including dictionary, thesaurus, literature, geography, and other reference data is for informational purposes only. This information should not be considered complete, up to date, and is not intended to be used in place of a visit, consultation, or advice of a legal, medical, or any other professional.