ロジバン周辺の知識

From Lojban
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

言語関係一般

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

形式文法に関する用語

  • ロジバンの文法は、 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 の検索欄に入力する文字列にも応用できる。)