機械伯爵さん 機械言語考古学者の皆さん < こん??は でび です
# ATOK2009で書くお初の文章です。
On Tue, 10 Feb 2009 21:12:49 +0900 (JST)
kikwai@... (機械伯爵) wrote:
> > > そういえば、誰も触れてませんが、Pascalは定数や型の宣言は『=』を
> > > 使ってますね。
[TSabc:612] で挙げた例の2個目には
| if key[middle] > x then high:= middle -1;
| if key[middle] = x then middleが求める位置(終了);
| if key[middle] < x then low:= middle +1;
とあります。
今、見直しましたが、確かに==でなく全角の=で書かれています。
これってば、定数宣言ではなくて比較の文脈で同等か否かを
検定しているんですよね?
つまり、今時の言語で普通に書くと「==」として使われている。
すると、例文はPascalっぽいけど、PascalやAlgolですらない。
[TSabc:619] で、まつもとさんがお書きの
>BASICでは等号も代入も「=」ですよね。
という扱い、なのかなぁ? 単なるtypoなのかもしれませんが…。
ちなみに岩波講座 言語の科学9 『言語情報処理』
http://www.iwanami.co.jp/.BOOKS/00/2/006901+.html ← 表紙あります。
(長尾真,黒橋禎夫,佐藤理史,池原悟,中野洋 2004/12)の
pp.24-25にあるクイックソートのアルゴリズムは、以下の
ように書かれていました。
−−−−−−−−−−−−−−−−−−−−−−−−−
begin
quicksort(1,n);
end
procedure quicksort(first,last);
begin
x := data[(first+last)/2];
i := first;
j := last;
repeat
while data[i] < x do i := i+1;
while x < data[j] do j := j-1;
if i ≧ j then goto 1;
swap(i,j);
i := i+1; j :=j-1;
until false;
1;
if first < i-1 then quicksort(first,i-1);
if j+1 < last then quicksort(j+1,last);
end
−−−−−−−−−−−−−−−−−−−−−−−−−
最初の宣言で関数っぽくしているのが、高級言語っぽさを
出していますが、beginで書き始めるのがBASICっぽいです。
で、procedureとかrepeatとかswapとかの謎(?)の
コマンド名(予約語?)が…。
「〜以上」は、「>=」とか「=>」とかではなく「≧」と
全角で書かれていました。
あと、個人的には until false;の直後の 1; が意味不明です。
何かのフラグ立てとして使っているんですか?
でもでも、こういう、どこかに代入されるようには見えない
ものを、いきなり1と宣言するってことは、この例文には、
何らかの暗黙のルールがあり、それが事前に説明されていない、
ってことになりますよね?
# 確かに、「対象読者:こどもから大人まで」って書いてないけどさ…。
その下の2行文のif文も、その上にある2行文のwhile文で
吸収できそうな無駄な記述っぽい雰囲気が漂っているように
感じます。
でも、「論文向け、疑似言語書法の仕様書」などというのは
存在しないだろうし…。
共著者間でのコンセンサスは、「ほぼ、pascal + basic風な
感じで書こうよ」って辺りだったんですかねぇ?
でび http://davi.txt-nifty.com/1984/