スモールコンパイラの制作という参考書について
現在大学で, 「スモールコンパイラの制作で学ぶプログラムのしくみ」という参考書を勉強しているのですが, 出題された課題の中でどうしても解らない問題があるのです.上記の参考書を学習した方だけではなく, 幅広い方からご教授を頂きたいと思っておりますので何卒宜しくお願いいたします.
課題の内容は,
(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/ から取得できるようになっております.宜しくお願いいたします.
お礼
ありがとうございました。よく、分かりました。