Dictionary
Thesaurus
Encyclopedia
Translator
Web

quine

 - 3 dictionary results

Quine

[kwahyn]
–noun
Willard van Or⋅man [awr-muhn] , 1908–2000, U.S. philosopher and logician.
Dictionary.com Unabridged
Based on the Random House Dictionary, © Random House, Inc. 2009.
Cite This Source Link To quine
Quine   (kwīn)   
American analytic philosopher and logician whose major writings, including Word and Object (1960), concern issues of language and meaning.
The American Heritage® Dictionary of the English Language, Fourth Edition
Copyright © 2009 by Houghton Mifflin Company.
Published by Houghton Mifflin Company. All rights reserved.
Cite This Source
Computing Dictionary

quine programming
/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(f,34,f,34,10);%c"; main()printf(f,34,f,34,10);
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.
[The Jargon File]
(1995-04-25)

The Free On-line Dictionary of Computing, © 1993-2007 Denis Howe
Cite This Source
Search another word or see quine on Thesaurus | Reference
FacebookTwitterFollow us: