vignette|Exemple d'un quine écrit en Java (en haut). Quand on l'exécute, ce programme écrit son propre code source (en bas).
Un quine (ou programme autoreproducteur, self-reproducing en anglais) est un programme informatique qui imprime son propre code source. L'opération qui consiste à ouvrir le fichier source et à l'afficher est considérée comme une tricherie. Plus généralement, un programme qui utilise une quelconque entrée de données ne peut être considéré comme un quine valide. Dans beaucoup de langages de programmation, un quine est une variante de la commande suivante :
Recopier puis recopier entre guillemets la phrase « Recopier puis recopier entre guillemets la phrase »
À titre de défi ou d'amusement, certains programmeurs essaient d'écrire le plus court quine dans un langage de programmation donné. Donald Knuth (Prix Turing 1974) et Ken Thompson (prix Turing 1983) expliquent dans leurs conférences Turing le rôle que ces programmes autoreproducteurs minimaux ont joué dans leurs formations et le pourquoi de ce rôle.
Les quines tirent leur nom du philosophe et logicien américain W. V. Quine (1908 – 2000), qui a étudié en profondeur l'autoréférence indirecte : il a entre autres forgé l'expression paradoxale :
c'est-à-dire : « 'est faux lorsque précédé par son propre énoncé' est faux lorsque précédé par son propre énoncé ».
vignette|Schéma de la machine QUINE. Le rectangle bleu est la procédure B qui prend en entrée la description d'une machine M (symbolisée par une feuille verte).
gauche|vignette|Vue d'artiste d'une machine de Turing. Une tête se déplace sur le ruban pour lire et écrire des caractères.
Dans cette section, nous esquissons la démonstration de l'existence d'une machine de Turing QUINE qui ignore son entrée et qui écrit sa propre description. Une machine de Turing est un modèle de calcul abstrait. Elle lit et écrit des caractères sur un ruban. Tout d'abord, pour tout mot w, on construit la machine printw qui ne tient pas compte de son entrée, efface son ruban et y écrit le mot w.
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Explore les collisions de hachage, les attaques sur les fonctions de hachage et les stratégies pour les exploiter dans des formats de fichiers tels que JPEG et PDF.
Un code automodifiable est, en programmation informatique, un programme qui peut se modifier lui-même, c’est-à-dire appeler des routines, fonctions ou méthodes qui seront créées par le programme lui-même. En dehors de l'idée, qui relève pour le moment de la fiction, d'un robot qui modifierait lui-même sa finalité, l'utilisation la plus courante du code automodifiable est l'optimisation de la vitesse d'exécution d'un programme : par exemple un interpréteur peut analyser le code source qu'il est en train d'exécuter, se rendre compte qu'une fonction est appelée fréquemment, et en réaliser à la volée une version compilée, qui sera exécutée plus rapidement.
Suite à la première installation de modules photovoltaïques standards sur un shed de la halle de Génie Civil de l'EPFL, plusieurs améliorations ont été apportées lors de la deuxième phase de ce projet, tant au niveau économique (coûts d'achat de matériel, ...