問 1: コンパイラを一つ選び、そのコンパイラがどのような過程でソースコードから実行バイナリを生成しているかを、現在知っている範囲で説明し、実際にコンパイラがその過程を経ているということを自分なりに検証してみてください。どのように検証したか、そして、その検証結果から何が言えるかを教えて下さい。どの言語をコンパイルするコンパイラかは、好きなものでかまいません。 問 2: C言語のコンパイラを書く際に、最も難しいポイントはどこだと思いますか?考えたことや、これまでのプログラミング経験をもとに、具体的に教えてください。 問 3: C言語のどこが不便だと思いますか?どのような機能があったらそれを便利にできますか?その機能はどうやったら実装できると思いますか?一つ選んで説明してください。 問 4: 今までで一番苦労したデバッグの話を教えてください。それがどのようなバグで、どのようなアプローチを取った結果解決したのか、そして結局なにがバグの原因だったのかを書いてください。 問 5: 既存のプログラミング言語(マークアップ言語なども可)の仕様のうち、理不尽だと思うものを一つ選んでください。どうしてそのような仕様になってしまったのでしょうか?その理不尽さが発生しないようにするにはどのようにしておけばよかったのでしょうか、それとも本質的に解決不能なのでしょうか?歴史的経緯も含め、自分なりに調べて教えてください。 問 6: 既存のプログラミング言語(マークアップ言語なども可)の仕様のうち、「世間一般で流布している説明には、厳密にいうと誤りが含まれている」というものを一つ選んで、それについてしっかりと丁寧に説明してください。ただし、「誤った説明が世間に流布している」という主張を支えるためには、互いに無関係な 4 種類以上の文献や教材においてその誤った説明がされていることを示してください(書籍・Web サイト・動画など幅広く OK としますが、講師が検証しやすいように、public なインターネットからアクセス可能なものの方がありがたいです)。そして、「厳密にいうと誤っている」という主張を支えるためには、「流布している説明に基づいたときに期待される挙動」と「実際に動かしてみて得られた挙動」の差を示すだけではなく、仕様を規定するドキュメントを読み込んだり、実装のソースコードを確認するなどして、「世間一般で流布している説明はこうであるが、この挙動を規定する仕様書や実装はこうであり、このような点で異なる」ということを丁寧に論証してください。 問 7: どのプログラミング言語を使って C 言語のコンパイラを実装する予定ですか?講師が予習するためにも、具体的に教えてください。 問 8: これまでのプログラミング歴について好きなだけ語ってください。何か作ったものがあれば、それについても教えてください。また、何か他にアピールしたいことがあれば、それも自由に書いてください。 備考: - 書いておきたいことはなんでも書いてください。 - URL を書く際にはその直後には半角スペースを置いておいていただけると助かります。 - 知らないことについて、資料にあたってもらうことは OK ですし、他の人間や大規模言語モデルなどに相談をしてその内容を参考に調べて回答してもよいです。特に、「他の人間や大規模言語モデルが、仕様について勘違いしていた」という例を見つけることができたら、それは問 6 のテーマとして向いている可能性が高いと言えそうです。