5

TinyPG とは何ですか? また、どのように機能しますか? 「コンパイラ-コンパイラ」であることは知っていますが、C# で独自のコンパイラを作成するにはどうすればよいですか?

4

1 に答える 1

8

おおよその使い方は理解できましたので、簡単に説明します。

TinyPGは完全なコンパイラ-コンパイラ IDE であり、RegExp、EBNF、および C#/VB 用の Windows GUI を備えています。TinyPG 内で独自の「コンパイラ」を開発する手順の概要を以下に示します。

正規表現を使用して端末を定義します。

  • これらの ReyExp を TinyPG 内に記述します。TinyPG は、基本的に入力ソース コードからトークンを抽出します。
  • 正規表現は .NET でネイティブにサポートされています。つまり、生成された「コンパイラ」コードでも .NET の正規表現が使用されます。

拡張 BNFメタ構文で非終端記号とパーサー ルールを定義します。

  • TinyPG 内に EBNF を記述して、選択した言語を記述します。
  • 最新のプログラミング言語を説明するいくつかの無料のBNF グラマー。

マネージ コードでコンパイラを定義します。

  • TinyPG 内に C#/VB コードを記述して、トークンを選択した出力に変換します。
  • BNF 文法規則ごとに 1 つの C#/VB コード ブロックのみ。
  • TinyPG は、コマンドライン コンパイラを使用して、「トークナイザ + パーサー + コンパイラ」をコンパイルおよび実行できます。

TinyPG は、新しい「コンパイラ」用の C# コードを生成します。

  • EBNF と共に RegEx を使用して、入力されたソース コードから解析ツリーを生成します。
  • C#/VB コードを使用して、この解析ツリーを出力に変換します。

C# または VB.NET でコンパイラのフロントエンドを開発します。

  • 基本的なフロント エンドは、生成された C# クラスを入力ファイルで呼び出し、出力を表示します。

まず、提供されている TinyPG のサンプル内の「単純な式 2.tpg」ファイルを開いて、電卓「コンパイラ」のデモを確認できます。

于 2009-09-07T09:33:47.110 に答える