|
===================================== 〔語彙分解〕的な部分一致の検索結果は以下の通りです。 ・ 解析 : [かいせき] 1. (n,vs) (1) analysis 2. (2) parsing ・ 表 : [ひょう] 1. (n,n-suf) table (e.g., Tab 1) 2. chart 3. list ・ 表現 : [ひょうげん] 1. (n,vs) (1) expression 2. presentation 3. (2) (gen) (math) representation ・ 現 : [げん] 1. (pref) present 2. current ・ 文 : [ぶん] 【名詞】 1. sentence ・ 文法 : [ぶんぽう] 【名詞】 1. grammar ・ 法 : [ほう] 1. (n,n-suf) Act (law: the X Act)
Parsing Expression Grammar (PEG, Parsing Expression Grammar) は、分析的形式文法の一種であり、形式言語をその言語に含まれる文字列を認識するための一連の規則を使って表したものである。PEGは再帰下降構文解析を文法を示すためだけに純粋に図式的に表現したものと見ることもでき、具体的な構文解析器の実装やその用途とは独立している。 PEGにおける構文(文法)の定義は文脈自由文法のバッカス・ナウア記法によるそれに似ているが、文脈自由文法では一般に「|」(縦棒、バーティカルバー)で表される「これらのうちどれか」ではなく、「最初の解析がうまくいったらそれを、失敗なら次を順に試してゆき、成功したものを採用」(「/」であらわす)という意味を使う。 このため、文脈自由文法とは異なり、PEGには曖昧さは存在しない。文字列を構文解析する場合、正しい構文木は常に1つしかない。このためPEGはコンピュータ言語の構文解析に向いており、一方、自然言語の多義性を、そのまま複数の構文木が可能である、という形で形式化するのには向かない。 == 定義 == 形式的には、PEGは次の要素からなる。 * 非終端記号の有限集合 ''N'' * 終端記号の有限集合 Σ(''N''とは交わらない) * 規則の有限集合 ''P'' ''P'' に含まれる各規則は、''A'' ← ''e'' という形式であり、''A'' は非終端記号、''e'' は、次のように構築される記号およびメタ記号の列である。前述のように、文脈自由文法における「どれかを選択」という意味の「 | 」の代わりに、「順番に試す」という意味の「 / 」を使うことが特徴である。 # 「atomic parsing expression」は次のいずれかである。 # * 任意の終端記号 # * 任意の非終端記号 # * 空文字列 ε # 任意の既存のparsing expressionを ''e'', ''e''1, ''e''2 としたとき、以下のように構築されるものもparsing expressionである。 # * 並び: ''e''1 ''e''2 # * 選択: ''e''1 / ''e''2 # * ゼロ個以上: ''e'' # * 1個以上: ''e''+ # * 省略可能: ''e''? # * AND predicate: &''e'' # * NOT predicate: !''e'' 文脈自由文法や他の生成文法とは異なり、PEGでは、ある非終端記号が左辺にくる規則は常に1つしか存在しない。すなわち、規則群は「定義」であり、各非終端記号には1つしか定義が存在しない。 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Parsing Expression Grammar」の詳細全文を読む 英語版ウィキペディアに対照対訳語「 Parsing expression grammar 」があります。 スポンサード リンク
|