[解決済み] レキサーの書き方の基本はどこで学べますか?
2023-04-06 05:30:53
質問
レキサーの書き方を教えてください。私の大学のコースでは、パーサー(とそれに付随するレキサー)を書かなければならない課題がありましたが、これは(点数以上の)指示やフィードバックなしに与えられたもので、私はそこからあまり多くを学ぶことはありませんでした。
このトピックを検索した後、私は、私がいるところから数歩進んでいると感じる領域に焦点を当てた、かなり高度な書き込みを見つけることができます。私は、より複雑な言語のトークン化を調査するための基礎として使用できる、非常に単純な言語のレキサーを書くための基礎についての議論を望んでいます。
この段階では、ベストプラクティスや最適化技術にはあまり興味がなく、基本的なことに焦点を当てたいと考えています。私が始めるための良いリソースは何でしょうか?
どのように解決するのですか?
基本的にレキサーの書き方には大きく分けて2つのアプローチがあります。
- 手書きで作成する場合、お勧めは この小さなチュートリアル .
- 以下のようなレキサー生成ツールを使用します。 レックス . この場合、選択した特定のツールのチュートリアルを読むことをお勧めします。
また、私がお勧めしたいのは 万華鏡チュートリアル から LLVM のドキュメントから引用しています。このチュートリアルでは、簡単な言語の実装を行い、特に小さなレキサーの書き方を説明します。このチュートリアルには、C++版とObjective Caml版があります。
このテーマに関する古典的な教科書は コンパイラ。原理、技法、ツール であり、「ドラゴンブック」としても知られています。しかし、これはおそらく「かなり高度な記述」の範疇に入るものでしょう。
関連
-
[解決済み] 並行処理と並列処理の違いは何ですか?
-
[解決済み] 式と文の比較
-
[解決済み] ランタイムとコンパイルタイム
-
[解決済み】「インターフェースに合わせたプログラム」とはどういう意味ですか?
-
[解決済み] さまざまなアプローチやコンセプトを理解するために学ぶべき重要な言語とは?[クローズド]
-
[解決済み] スタックオーバーフローを引き起こす最短のコードは何ですか?[クローズド]
-
[解決済み] リンクリストはどのような場合に有効か?
-
[解決済み] 静的メソッドを多用することは悪いことですか?
-
[解決済み] VSデバッガの「マジックネーム」についての学習場所
-
[解決済み] 例外処理とリターンコードのどちらが好きか、またその理由は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Mac OS X で DYLD_LIBRARY_PATH を使ってもいいのでしょうか?また、それを使った動的ライブラリ検索アルゴリズムはどうなっていますか?
-
[解決済み] 並行処理と並列処理の違いは何ですか?
-
[解決済み] 関数は return 文を1つだけ持つべきですか?
-
[解決済み] なぜハッシュ関数には素数モジュールが必要なのですか?
-
[解決済み] 直交性」とは何ですか?
-
[解決済み] プログラミングにおける "Context "という言葉?[クローズド]
-
[解決済み] 静的メソッドを多用することは悪いことですか?
-
[解決済み] なぜナップザック問題は擬似多項式なのか?
-
[解決済み] プログラミングのための理想的なキーボードレイアウト【終了しました
-
[解決済み] バッファード IO とアンバッファード IO