コンパイラは一種のGödelNumberingプログラムですか?
-
29-09-2020 - |
質問
質問:はコンパイラで、一種のGödelNumbering Program?
ウィキペディアは、コンパイラが次のとおりです。 "コンピューティングでは、コンパイラは、1つのプログラミング言語(ソース言語)で書かれたコンピュータコード(ソース言語)を別の言語(ターゲット言語)に変換するコンピュータプログラムです。 https://en.wikipedia.org/wiki/compiler
またウィキペディアは私達に告げます。 "Gödelの番号付けは、各シンボルと整形式の形式のいくつかの正式な言語の形式の形式で、そのギョデル番号と呼ばれる独自の自然数を割り当てる関数です。 https://ja.wikipedia.org/wiki/g%C3%B6DEL_NUMBERINGED / A. >
しかし、私はコンパイラがどのように機能するかの詳細はわかりませんので、私の推論が正しいかどうか尋ねるためにここに来ました。
解決
いいえ。次の2つのC関数を考慮してください。
int f(int a) {
return a * 2;
}
int g(int a) {
return a + a;
}
.
ここで少しリベラルである場合、両方とも「正式な言語の整形式」です。最適化がオンになっているのですが、これら2つの関数をまったく同じコードにコンパイルします。これは、Gödelの番号付けの一意性に違反します。
所属していません cs.stackexchange