ロジバン周辺の知識

From Lojban
Jump to: navigation, search

言語関係一般

ロジバンに影響を与えたもの

形式文法に関する用語

  • ロジバンの文法は、 YACC, PEG, BNF, EBNF などで記述できます。 これらは、人やコンピュータがロジバン文の構造を形式的に解析(構文解析)するのに使います。
  • 機械文法は、言語の形式文法のうち、機械語(電気信号 0/1 の集まり)に翻訳できるもののことです。 この翻訳に構文解析の過程が含まれます。
  • 形式文法は、言語(自然言語もプログラミング言語も)の文法を数学的に表すための規則のことです。 2種類、「生成文法」と「分析的文法」に分かれます (YACC と PEG は分析的文法です)。
  • コンパイラ ― プログラミング言語のコードを機械語のコードに書き換えてコンピュータが読み取り実行できるようにするもの。 書き換え前のものは「原始コード」、書き換え後のものは「目的コード」。 処理速度がインタプリタよりも速い。
  • インタプリタ ― プログラミング言語のコードを逐次解釈しながらコンピュータに実行させるもの。 処理速度がコンパイラよりも遅い。
  • パーサ(構文解析器) ― インタプリタあるいはコンパイラの部品として、入力された文の正しさを確かめ、構文木などのデータ構造を得る。 一から手動で作るか、コンパイラコンパイラを使って自動的に作らせる。
  • コンパイラコンパイラ ― コンパイラを作成するコンパイラ。 原始コードから目的コードへの変換の作業を自動化して手間を減らす。
  • YACC ― UNIX システム(Mac や Linux)のパーサを構成するC言語の関数・符号を自動的に生成するコンパイラコンパイラ。 構文解析を担い、字句解析には別のツールが要る。
  • BNF ― 或る言語の文脈自由文法* を定義するメタ言語・記法。 プログラミング言語と自然言語の文法を表すのに使われる。
  • EBNF ― 正規表現* などを用いてより簡単に記述できるように BNF を拡張したもの。 現在のインターネットで普及している XHTML の 基礎である XML の構文を定義するのにも使われる。
  • PEG ― 或る言語の分析的文法を BNF の記法で表したもの。 文脈自由でない形式言語の文法を表現できる。 解析する文字列の正しい構文木は常に1つだけで、曖昧さが無い。 コンピュータ言語の構文解析に適していて、自然言語の構文解析には不向き。
  • 文脈自由文法 ― 言語のブロック構造・句構造を形式的に表したもの。 プログラミング言語の文法も自然言語の文法も表せる。
  • 正規表現 ― 文字列の集合を1つの文字列で表現すること。 例えば「gray」でも「grey」でもいいということを「gr(a|e)y」と表す。 (このような表現は Google の検索欄に入力する文字列にも応用できる。)