Re: PL/1, Origin of struct
In article <bjncgh$tf8$1@newsserv.ics.es.osaka-u.ac.jp> saitoh@ist.osaka-u.ac.jp writes:
>> ちょっと気になったのが、
>> C言語の「charとshort intとlong int」に相当する区別が無いこと、
>> つまり如何なるデータも同一量の記憶域を占有するということです。
>> この仕様ってCPUを選んでしまうんじゃないでしょうか?
>PDP-11などでは困りますが。
>多くのメインフレームのようなワードマシンでは困らなかったの
>だとおもいます。
Dennis M. Ritchie, The Development of the C Language,
http://www.cs.bell-labs.com/who/dmr/chist.html
では、
C言語で型の概念を再導入した3つの動機のうち2つが、
この問題に関連するものだと述べていますね。
(残りの1つは浮動小数点関連)
バイト境界で文字が並んだ文字列を取扱う際、
機械語のバイトアドレッシングを直接使えば素直に取扱えるのに、
わざわざワード境界にunpackして取扱うという
馬鹿げた作業が必要になるというのが1つ、
プログラム上ではアドレスをワード単位で取扱い、
それをポインタとして用いる段階で
逐一バイト単位に換算せねばならないというのが1つです。
戸田 孝@滋賀県立琵琶湖博物館
toda@lbm.go.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735