問題タブ [context-free-grammar]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - 文脈自由文法定義における任意のターミネータと必須のターミネータ
コンパイラに関する本の章には、次の文法定義とサンプル コードがあります。
コードの最も内側のwhile
ループは、なしでどのように有効です{
}
か? ステートメント定義にはそれらが必要であるように見えます。これは本の間違いですか、それとも構文を誤解していますか?
[編集]あいまいさをお詫びします。上に入力したものはすべて、本からの逐語的なものです。省略は私のしたことではありません。
compiler-construction - 独学のコンパイラコース / 優れた入門用コンパイラの本?
典型的なコンパイラコースを構成するオンラインコース/大学の講義を知っている人はいますか? 私はコンピューティングの理論を持っていましたが、残念ながら私の学校ではコンパイラ構築のコースを提供していませんでした。
そこに講義があることは知っています。特に優れた製品の推奨事項を期待していました。
また、この分野の初心者向けの本はありますか? 少なくともドラゴンブック以外の何か。初級者レベルは問題ありません。市場には中級者向けのテキストがたくさんあることは知っています。
ありがとう!
computer-science - 単項加算のための文脈自由文法
1のアルファベットが与えられた場合、フォームの加算を解析したい
これは、最初の2つの1のそれぞれのスタックに1をプッシュし、最後の1のセットをポップするだけで、プッシュダウンオートマトンで表すのは非常に簡単です。ただし、これを文脈自由文法として表現する方法がわからないようです。これは、PDA==CFGであるため明らかに可能です。
parsing - E := EE+|EE-|id の左再帰の削除
次の文法の左再帰をなくす方法は?
一般的な手順を使用します。
に変換:
これを元の文法に適用すると、次のようになります。
したがって:
しかし、この文法は間違っているようです。
は有効ですが、これは正しくない後置式です。
compiler-construction - Yaccプログラムが関数宣言を認識しない
私のプログラムは、以下を関数宣言として認識できるはずだと思います。
しかし、そうではありません。
これが私のyaccファイルの関連部分です:
なぜそれを認識しないのですか?
parsing - ある言語を別の言語に翻訳する際にシンボル テーブルがどのように役立つか
コンパイラ クラスでは、C の簡易バージョンである作成言語用のパーサーを作成しました。パーサーが行うのは、入力に基づいてシンボル テーブルを作成し、構文が正しくない場合はエラー メッセージを表示して終了することだけです。次に、この言語で書かれた入力ファイルを取り、それを mips コード (実際には Linux の mips である spim コード) に変換する必要があります。なぜシンボル テーブルが必要なのですか? シンボルテーブルなしで実行できますか?
regex - この文脈自由文法は正規表現ですか?
次のように定義された文法があります。
A
正規表現ですか?BNF 文法の解釈方法について混乱しています。
grammar - FIRST セットと FOLLOW セットを自動的に計算するための優れたツールは何ですか?
私は現在、LL(1) 形式に取り組めることを望んでいる BNF 文法で遊んでいる最中です。しかし、今日で 3 回目の文法の変更と新しい FIRST および FOLLOW セットの計算を手動で行ったばかりで、もううんざりしています。もっと良い方法があるはずです!
文法が与えられた場合、すべての非端末の最初のセットと次のセットを自動的に計算するツールを誰かが提案できますか?
grammar - 2つの文法の非終端記号の最初と後に続く
与えられた次の文法
非終端記号の最初と次は何ですか?
文法がに変更された場合
最初とそれに続くものは何ですか?