3

インターネットで、私は形容詞語彙の一般的な意味を読んだことがあります。それは、単語が出現する可能性のある文を参照せずに、物理的な世界または抽象的な概念に関連する単語の意味です。

この単語がさまざまな文脈で使用されているのを見てきました: 字句スコープ、字句解析、字句定数、字句演算子など。

スコープのようなものの前にレキシカルという言葉を使うのはなぜですか? レキシカルの定義とレキシカルスコープの間には何の関係もありません。字句解析、字句定数などについても同様です。

より簡単に参照できるように何かに名前を付けたいと考えていることは理解していますが、なぜ意味のない名前を付けるのでしょうか? それが理にかなっているとしたら、それがどのように機能するかを明確にしていただけますか?


別のスレッドで、C++ におけるレキシカルの意味を尋ねる別のスレッドを見たことがあります。「レキシカル」という用語は、C++ では何を意味しますか?

その質問に対する一番上の回答は、字句がソースコードに関連していることを意味することを説明しています。それでは、私の質問は次のとおりです。ソースコードに関係のないプログラミングはどうですか? あらゆる種類のスコープ、定数、形式のコード分析がソース コードに関連しているのではないでしょうか。また、レキシカルの定義は、ソースコードとの関係の定義とどのように関連していますか?

4

1 に答える 1

3

「字句的に」という言葉には、文脈に応じていくつかの異なる意味があります。

コンパイラのコンテキストでは、「レキシカル」は通常、ソース ファイル内の個々のトークン、またはそれらのトークンによって形成される全体的な構造に関係なく、それらのトークンを取得するプロセスを指します。たとえば、C では、入力

int main() {
    printf("Hi!\n");
    return 0;
}

に分解されます

int
main
(
)
{
printf
(
"Hi!\n"
)
;
return
0
;
}

これらは、「識別子」や「開き括弧」などのトークン タイプでタグ付けされます。

字句解析中に、(通常) より広いスケールでこれらのトークンの全体的な意味を決定しようとする試みはありません。それは、構文解析 (構文解析) またはさらなる意味解析の仕事です。これは、あなたが与えた定義に似ています-字句解析は、トークンが何であるかを決定することですが、文脈で意味するものではありません。

「字句的に」は単に「ソース コードに表示されるとおり」を意味する場合があります。たとえば、字句スコープ変数は、そのプログラムの動的実行に基づいてスコープされるのではなく、ソース ファイルに表示されるブロックにスコープされる変数です。これは少し間違った呼び方です。

お役に立てれば!

于 2014-06-03T00:55:53.950 に答える