解釈されたプログラミング言語を解析するプロセスは何ですか?

StackOverflow https://stackoverflow.com/questions/1921660

  •  20-09-2019
  •  | 
  •  

質問

私は、構文木を作成するための最良の方法である方法を知りたいと思います。

役に立ちましたか?

解決 2

コンパイラやインタプリタを書くことを学習するための標準的なスタックオーバーフローのリソースは、コンパイラを書くことを学んでいます

他のヒント

ここでLLVMプロジェクトから抽象構文木の(AST)に関するいくつかの説明がありますます。

ティーザーます:

  

プログラムのASTは、コンパイラ(例えば、コード生成)の後期が解釈することが容易であるような方法でその挙動を捕捉します。私たちは、基本的には言語における各構築のための1つのオブジェクトをしたい、とASTは密接言語をモデル化する必要があります。

本当に、他の言語からも異なります。解釈とコンパイル言語の違いは主にバックエンドではなく、フロントエンドです。特定の言語は、特定の解析要件を持っているかもしれませんが、あなたは言語の二つのクラス間の技術を解析して、意味のある比較をすることはできません。

あなたは、あなたのパーサーの言語要件をリストしていないので、CまたはC ++が可能であるならば、あなたはYACCを見ることで開始する必要があります:<のhref = "http://en.wikipedia.org/wiki/Yacc "REL =" nofollowをさnoreferrer "> http://en.wikipedia.org/wiki/Yacc の

yaccはあなたの特定の構文のためのCパーサを生成します。その入門することは少し余分な作業かもしれませんが、あなたがアップし、ローリング事を得れば、保守が簡単でなければなりません。

免責事項:私は1つのプロジェクトだけでYACCを使用して、それは数年前10+だったので、あなたの走行距離は異なる場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top