• 締切済み

コンパイラの授業課題で分からない問題があります。教えてください

「簡単な例」の仕様を各自で拡張し(少なくとも2項目)、それが処理できるようにスキャナソース、パーザソースを作成せよ。 仕様の拡張の例としては、例えば次のようなものがある(が、これらの例以外を行うこと)。 変数に、さらに"PP", "QQ"が使えるようにする。プログラム例は下記の通り。 A=3*4-4; PP=A*A; QQ=PP+A; print PP; print QQ; print文の文法に、複数(任意個)の変数が使えるような拡張する。プログラム例は下記の通り。 A=3*4-4; B=A*A; print A, B; 冪乗計算(**)が使えるようにする。 A=10; B=3; C=A**B; print C; いくつかの初等関数(sqrtなど)が使えるようにする。 A=10*10; B=sqrt(A); print B; 「簡単な例」を参考に、 1次元配列を使えるようにするにはどのようにソースを変更すれば良いか考えよ。なお、配列は"dimension"を使って宣言する。配列名は"AA","BB","CC","DD"に限定する。 dimension AA[3]; A=9; B=2; AA[0]=2; AA[1]=A*A; AA[B]=A*A*A; print AA[0]; print AA[1]; print AA[2]; お願いします。

みんなの回答

  • R_Earl
  • ベストアンサー率55% (473/849)
回答No.2

この分野に関しては浅い知識しかありませんが、 質問文を見て何点か気になる点があります。 > 「簡単な例」の仕様を各自で拡張し(少なくとも2項目)、 (質問1) 「簡単な例」というのは何を指すのでしょうか? 課題文に書かれている拡張例のことではありませんよね? おそらくパーザを作るためのソースか何かだと思うのですが。 > それが処理できるようにスキャナソース、パーザソースを作成せよ。 (質問2) パーザ生成器に何を使っているのでしょうか? yaccとJavaCCのパーザソースは見たことがありますが、 パーザ生成器が異なればソースの書き方も違かったはずです。 多分、スキャナソースも同様のことが言えると思います。 > 仕様の拡張の例としては、例えば次のようなものがある(が、これらの例以外を行うこと)。 > お願いします。 (質問3) 質問者さんは一体どういう拡張をしたいのでしょうか? 課題文に書かれている拡張例「以外」の拡張をするのが1つ目の課題ですよね。 課題文の拡張例は必要ないので、質問者さんがしたい拡張を書いて下さい。 > コンパイラの授業課題で分からない問題があります。教えてください (質問4) 回答者は結局何を教えればよいのでしょうか? 質問文中に課題文は書かれていますが、 「その課題に対して何を教えてほしいのか」ということがどこにも書いてないです。 質問者さんは一体何を答えてほしいのでしょうか? 課題のどこまでが自力でできて、どこで行き詰ったのでしょうか? 質問は以上です。 これらのことを明確にしないと、他の回答者の方々も答えづらいと思います。 その結果、質問者さんも望む回答を得られないと思います。

関連するQ&A