トップ «前の日記(2001-07-01) 最新 次の日記(2001-07-03)» 月表示 編集

日々の流転


2001-07-02 [長年日記]

λ. 新・闘わないプログラマ No.185 | 指し示す

配列におけるポインタ生成規則って、その考え方自体はなかなか面白いと思うし、C言語のような位置付けの言語としては便利だと思うわけで、もしこの規則が無かったら(配列もANSI Cの構造体のような感じだったら)、「&」演算子を多用しないといけないし、結構ごちゃごちゃするかな、などと思ったりもするわけです。

とあるけど、それを実際にやってるのがPascalですな。でも、それほどゴチャゴチャすることは無いと思う。むしろ、これでゴチャゴチャするとしたら、そのプログラムの方が問題のような気がする。

var
   a: array[0..9] of integer;
   p: ^array[0..9] of integer;
   q: ^integer;
begin
   p := @a;
   q := @(a[0]);

   a[0]  := 100;
   p^[0] := 100;
   q^    := 100;
end

λ. 似た言語であるCとPascalのこの姿勢の違いは面白いと思う。ちなみにPascalは、ポインタに関しても結構ストイックで、ポインタに対する加減算は出来ないし、大小の比較も出来なかったりする。(Delphiでは「Inc(p, i);」とか出来たりするけど。)

λ. 記号処理プログラミングミニプロ

Rubyで、Lispの簡単な処理系を書いてみようと思う。一度、オブジェクト指向言語で簡単な処理系を書いてみたかったのだ。全然自信無いんだけどね。まあ、だめそうだったら、inferior-script-fuとかいって、1024個めくらいの車輪に逃げよう。

λ. コンパイラ構成論

ところで、コンパイラ構成論の講義が今年の秋学期には「事情により」開講されないそうだ。超ショック。でも、まあ、脱線ばかりしてないで総合政策の道へ戻れという天の采配なの…かも?