読み方 : こうぶんかいせき

構文解析【syntax analysis】

概要

構文解析とは、文の内容を解析し、その構成要素がどのような関係にあるかを明らかにすること。自然言語に用いる場合とコンピュータ言語に用いる場合で手法が大きく異なる。

コンピュータ言語の構文解析

プログラミング言語やマークアップ言語などのコンピュータ言語で書かれた文を構成要素に分解し、要素間の関係を元に特定のデータ構造に変換する操作を構文解析という。

コンピュータ言語で書かれたソースコードに「字句解析」(lexical analysis)を行い、言語仕様上意味を成す字句の最小単位であるトークンの列に置き換える。その後、言語の構文規則に従ってトークン間の関係性を解析し、構文木などのデータ構造として表す。狭義には後者のトークンの処理のみを構文解析とする場合もある。

得られた構文木から何が行われるかは言語の種類によって異なり、プログラミング言語であればオブジェクトコード(機械語のプログラム)の生成、マークアップ言語であれば画面描画、データベース言語であればデータベースへの操作などが行われることになる。

自然言語の構文解析

英語や日本語などの自然言語における構文解析では、単語単位に分解済みの文を対象に、文法や統語論を元に単語間の関係を決定し、何らかのデータ構造で表現する。

英語のように分かち書き(単語間を空白で離す)する言語では、与えられた文を空白によって即座に単語に分割することができるが、日本語などでは前処理として文を語彙や文法に基づいて単語に切り分ける「形態素解析」が必要となる。

構文解析は各種の自然言語処理の基礎技術として重要で、機械翻訳や要約生成、自然言語検索、音声アシスタントなど様々な分野に応用されている。

他の辞典等による「構文解析」の解説 (外部サイト)

資格試験などの「構文解析」の出題履歴

▼ 基本情報技術者試験
【令8修7】 図はコンパイラにおける処理の流れを表している。a~c に入る用語の組合せとして,適切なものはどれか。[ a ] → [ b ] → [ c ] → [最適化] → [目的コード生成] a b c ア 構文解析 意味解析 字句解析 イ 構文解析 字句解析 意味解析 ウ 字句解析 意味解析 構文解析 エ 字句解析 構文解析 意味解析 。
【令3修7/平30修7/平29修1/平27秋/平26修6/平24修12/平23修1/平21修7】 コンパイラで構文解析した結果の表現方法の一つに四つ組形式がある。(演算子,被演算子1,被演算子2,結果) この形式は,被演算子1と被演算子2に演算子を作用させたものが結果であることを表す。

本ページを参照・引用している文書・論文など (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。