lexical analysis
字句解析 / 語彙分析
名詞
lexical analysisは、文脈によって字句解析と語彙分析という二つの異なる専門分野で用いられます。前者は主にコンピューターサイエンスやコンパイラ構成論の文脈で使われ、後者は言語学や計算言語学の文脈で使われます。どちらも言葉の最小単位を分析するという点では共通していますが、その目的とアプローチは大きく異なります。
コンピューターサイエンスにおける字句解析
プログラミング言語の処理において、lexical analysis(字句解析)はソースコードという単なる文字列を、意味を持つ最小単位であるトークンに分割するプロセスを指します。例えば、if (x > 0) というコードを、キーワードの if、記号の (、変数名の x、比較演算子の >、数値の 0、記号の )という個別の要素に切り分ける作業です。これは構文解析(syntax analysis)の前段階として不可欠な工程であり、不要な空白やコメントの除去もここで行われます。
言語学における語彙分析
一方で、言語学的な文脈でのlexical analysis(語彙分析)は、ある言語の語彙体系や、特定のテキスト内での単語の使われ方を研究することを指します。単なる文字列の分割ではなく、単語の形態論的な構造や意味的な関係、あるいはコーパス内での出現頻度などを分析し、言語の特性を明らかにすることが目的です。統計的な手法を用いて、特定の分野でどのような用語が支配的に使われているかを調べる際などに用いられます。
意味
名詞字句解析
ソースプログラム内の文字の列を、プログラミング言語の最小の意味単位であるトークンの列に変換すること
関連語
scanningtokenizationlexerscannertokenizertokenlexemegrammarsyntaxsemanticscompilerinterpreterparserparsingalphabetstringcharacterregular expressionfinite automatonstate machineautomatonregexpatternkeywordidentifieroperatorliteraldelimiterwhitespacesymbol tablevocabularylexiconmorphologymorphemephonemelinguisticsnatural language processingcorpusstemminglemmatizationwordphrasesentencecontextformal languagenonterminalterminalderivationambiguityoptimizationbytecodesource codeprogramming languagealgorithmdata structurebufferhash maptriecomputationlogic