• 締切済み

スモールコンパイラの制作という参考書について

 現在大学で, 「スモールコンパイラの制作で学ぶプログラムのしくみ」という参考書を勉強しているのですが, 出題された課題の中でどうしても解らない問題があるのです.上記の参考書を学習した方だけではなく, 幅広い方からご教授を頂きたいと思っておりますので何卒宜しくお願いいたします.  課題の内容は, (1) 関数の引数として 1 次元配列を渡せるように機能拡張せよ.   渡し方は C言語の方法に習え.すなわち, 配列の要素全体のコピーを渡すのではなく, 配列の先頭の番地を渡せ.以下のプログラム ( 配列の要素の和と配列のコピー ) で動作を確認せよ.    I sum(aI a[], I n){ vI s = 0, i; for(i = 0; i < n; i = i+1;){ s = s + a[i]; } return s; } aI a[16]; for(i = 0; i < 16; i = i+1;){ a[i] = i * i; } println sum(a, 16); }$  { I copy(aI a[], aI b[], I n){ vI i; for(i = 0; i < n; i = i+1;){ b[i] = a[i]; } return 0; } vI i; aI a[16], b[16]; for(i = 0; i < 16; i = i+1;){ a[i] = i; } dummy = copy(a, b, 16); for(i = 0; i < 16; i = i+1;){ println b[i]; } }$  用いるコンパイラは Java 言語で記述されており, ソースファイルは, http://book.gihyo.co.jp/s-com/ から取得できるようになっております.宜しくお願いいたします.

みんなの回答

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.1

「どうしても解らない」というのが、どういう「解らない」なのかが 回答予定者にも解るように質問文を記述されませんと、 回答のしようがありません。 ひとまず、 ・中括弧の上下の数が合わない。 ・データ型の宣言がない。もしくは不足している。 ・記述されているリンク先が見れない。(私だけ?) ・そもそもmainが無い・・・? ・HTML形式なので、インデントは仕方ないにしても  コーディグスタイルが・・・は流派があるので取り消し。。。 などなど。 この手の問題の場合、「課題が何言っているのか解らない」 というのまであります。 あなたが解らないのは何ですか?

No-001
質問者

補足

 hisappy さん解答ありがとうございます.hisappy さんは当参考書を読んだことがありますか?当参考書は, コンパイラと言語を新たに作成する ( と言ってもすでに作成されていて, http://book.gihyo.co.jp/s-com/ からどなたでもダウンロード出来るようになっているのですが….) と言った内容です.  そして用意されているコンパイラは, 関数の引数として 1 次元配列を渡すことが出来ないのでそれを実現可能にして上プログラムが正常に動作するようにコンパイラを拡張するのが目的なのです….しかし私は, プログラムの記述方法つまり追加方法が解らない状態なので解りましたらアドバイスをお願いいたします.

関連するQ&A