C++を解析する問題はよく知られています。それは純粋に構文に基づいて解析することはできません、LALRとしてはできません(言葉が何であれ、私は言語理論家ではありません)、言語仕様は数百ページです。私の個人的なプロジェクトの代替言語を決定しています。Valaは、C++に比べて構文解析に賢明な言語ですか?
バラは良い言語のようです。 C++に比べて多くの改善点を提供していますが、解析するのも面倒ですか?コンパイラ、ソースアナライザ、およびその他のツール用のパーサーを構築するのに適した、きちんとした、合理的な長さの正式な文法、またはいくつかの論理的記述を持っていますか?
答えが何であっても、それはGenieの代替構文になりますか?
(私もDと他のポスト-C++非VMの言語についてはあまり激しくはいえ不思議。)
機能は、プロジェクトに特定の言語を選択する正当な理由ですが、その言語の解析の難易度はどうですか? (あなたの個人的なプロジェクトが上記言語のコンパイラを書いている場合を除きます)。このノートでは、C++はJavaやC#のようなLR(1)文法ではなく、潜在的に無限の先読みを伴う可能性があります。 – birryree
VanaはC++よりもsanerでなければなりません。私はJavaが本当にうまくいくことを知っています。私はJavaで書かれたJava Parserを使用し、EBNFの文法からコンパイラコンパイラによって直接生成しました。 – Lagerbaer
Err ..少なくとも、どの言語もそのように考えることができる限り、構文に基づいて構文解析することができます(もちろん、識別子は技術的に文脈依存ですが、ほとんどの言語で共通です)。はい、文法はLALR(1)ではありませんが、もちろん解析可能です。一方、構文解析の難しさは本当に言語を選択する上での主要な基準ではないはずです。与えられた言語に対して人気があるため(言い換えればライブラリを手に入れるなど)、言いたいことがたくさんあります。 –