Question

Question: est un compilateur une sorte de programme de numérotation de Gödel?

Wikipedia nous dit qu'un compilateur est: "En informatique, un compilateur est un programme informatique qui traduit le code informatique écrit en une langue de programmation (langue source) dans une autre langue (la langue cible)". https://fr.wikipedia.org/wiki/callpiler

aussi Wikipedia nous dit: "Une numérotation de Gödel est une fonction qui assigne à chaque symbole et formule bien formée d'une langue formelle un nombre naturel unique, appelé son numéro de Gödel". https://fr.wikipedia.org/wiki/g%C3%B6Del_NumberingKing

Travail effectué : Mon intuition dit oui. Voici ma ligne de pensée: un langage de programmation est une langue formelle. Chaque programme est une formule bien formée et un compilateur attribue chaque symbole de cette formule à une représentation binaire d'un nombre que l'ordinateur peut lire. (Détail: un ordinateur est une machine de Turing universelle, elle peut donc effectuer des arithmétiques)

Mais, je ne connais pas les détails de la marche des compilateurs, alors je suis venu ici pour demander si mon raisonnement est correct.

Était-ce utile?

La solution

non.Considérez les deux fonctions C suivantes:

int f(int a) {
    return a * 2;
}

int g(int a) {
    return a + a;
}

Si nous sommes un peu libéraux ici, les deux sont "formulaires bien formés de la langue formelle".Pourtant, la plupart des compilateurs C avec optimisation activés compileront ces deux fonctions au même code.Cela viole le caractère unique d'une numérotation de Gödel.

Licencié sous: CC-BY-SA avec attribution
Non affilié à cs.stackexchange
scroll top