lexer
レクサー
名詞
複数形: lexers
lexerは、コンパイラやインタプリタの最初の段階で動作する重要なコンポーネントです。ソースコードという単なる文字の羅列を、意味を持つ最小単位であるトークンに分割する役割を担います。これにより、後続の処理であるパーサーが構文解析を効率的に行えるようになります。
字句解析の仕組みと役割lexerは、正規表現などのルールに基づいて文字をスキャンし、キーワード、識別子、リテラル、演算子などのカテゴリーに分類します。例えば、int x = 10; というコードがある場合、lexerはこれを int(キーワード)、x(識別子)、=(演算子)、10(リテラル)、;(区切り文字)という個別のトークンに分解します。このプロセスにより、不要な空白やコメントが除去され、純粋な意味的構造だけが抽出されます。
scannerとの関係性
技術的な文脈では lexer と scanner という用語がほぼ同義として使われることが一般的です。厳密には、文字を読み込む scanner と、それをトークンとして分類する lexer という役割分担がありますが、現代のプログラミング言語の実装においては、これらをまとめて一つの字句解析器として扱うことがほとんどです。
意味
名詞レクサー
文字の列をトークンの列に変換することで、字句解析を行うプログラムまたはソフトウェアコンポーネントのこと
The compiler's lexer identifies keywords and operators before passing them to the parser.
コンパイラのレクサーは、パーサーに渡す前にキーワードや演算子を識別する。
関連語
scannertokenizercompilerparsertokenlexemegrammarsyntaxsemanticsalphabetcharacterstringregular expressionfinite automatonstate machineautomatonsymbolkeywordidentifieroperatorliteraldelimiterwhitespacebufferstreaminputoutputanalysislexical analysisparsingbytecodemachine codeassemblysource codeprogramming languageformal languagenonterminalterminalderivationambiguityrecursionstackqueuepointeriteratorpatternmatchingregexpreprocessingoptimizertokenizationscanningvocabularydictionarymappingtablehash mapalgorithmcomplexityefficiencycharacter set