1. ホーム
  2. parsing

[解決済み] 新人プログラマーにわかるパースとは?[クローズド]

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!" }