[解決済み] 新人プログラマーにわかるパースとは?[クローズド]
2023-08-21 22:50:10
質問
私はコンピュータサイエンスの学位を取得した大学生です。 私の仲間の学生の多くは、本当に多くのプログラミングをしたことがありません。 彼らは授業の課題をこなしましたが、正直に言うと、それらの問題はプログラミングの方法を本当に教えてくれるわけではありません。
他の学生からもパース方法について質問されたことがありますが、どのように説明したらよいのかよくわかりません。 行ごとに部分文字列を探すことから始めるのがベストなのでしょうか、それとも、適切な字句解析などを使用してトークンを作成し、BNF を使用し、その他すべてのことについて、より複雑な講義をするのでしょうか。 私が説明しても、彼らはまったく理解しません。
彼らを混乱させたり、実際にやってみる意欲を失わせたりすることなく、これを説明する最善の方法は何でしょう。
どのように解決するのですか?
解析とは、ある種のデータを別の種類のデータにすることだと説明します。
実際には、私にとってこれはほとんど常に、文字列またはバイナリデータを、私のプログラム内のデータ構造に変えることです。
例えば
":Nick!User@Host PRIVMSG #channel :Hello!"
を(C)に
struct irc_line {
char *nick;
char *user;
char *host;
char *command;
char **arguments;
char *message;
} sample = { "Nick", "User", "Host", "PRIVMSG", { "#channel" }, "Hello!" }
関連
-
[解決済み] 構文解析とは?
-
[解決済み] new int(100)」は何をするものですか?
-
[解決済み] JavaScriptの「new」キーワードとは何ですか?
-
[解決済み] 配置換え」にはどんな使い方があるのか?
-
[解決済み] Markdownのパースはどのように行うのですか?[クローズド]
-
[解決済み] 構成パーサーと従属パーサーの違いについて
-
[解決済み] HaskellのPrelude.readはなぜMaybeを返さないのですか?
-
[解決済み] LLパーサーとRecursive Descentパーサーの違いとは?
-
[解決済み] 8ビット組込みシステムで使えるFlex/Bisonのようなパーサーを書きたい
最新
-
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 実装 サイバーパンク風ボタン