Re: PL/M, Origin of struct (構造体のメンバの記憶域の順)
鴻池です。
<toda@lbm.go.jp> wrote in message news:bif0l6$u7v$1@bluegill.lbm.go.jp...
> In article <YAS.03Aug26150042@kirk.is.tsukuba.ac.jp> yas@is.tsukuba.ac.jp
writes:
> >C言語の「構造体」の考え方の元は、PL/1 だと思います。正確に
> >は、PL/Iという、PL/1 のサブセットで、Multics の記述に使われ
> >たもの。
>
> ところで、Subject:には「PL/M」とあるのですが、
> 本文の方が書き誤りと考えて良いでしょうか?
> (PL/IのサブセットのPL/Mというのは聞き覚えがあるので……)
PL/1とPL/Iは同じではないのでしょうか。ちょっと探してみましたが,PL/Iの上位の
言語を見つけれませんでした。PL/IのサブセットでEPLというのは,見つかりました
が。
ところで,「構造体」の考え方の元がPL/Iというのは,その通りかも知れませんが。
ところで
The Development of the C Language
Dennis M. Ritchie
Bell Labs/Lucent Technologies
Murray Hill, NJ 07974 USA
(http://www.cs.bell-labs.com/who/dmr/chist.html)
に以下のような記述がありました。
中略
Embryonic C
中略
These semantics represented an easy transition from B, and I experimented
with them for some months. Problems became evident when I tried to extend
the type notation, especially to add structured (record) types. Structures,
it seemed, should map in an intuitive way onto memory in the machine, but in
a structure containing an array, there was no good place to stash the
pointer containing the base of the array, nor any convenient way to arrange
that it be initialized.
リッチーは,構造体の実装にかなり苦労したようですが,その並びについては直感的
にメモリに割り付けるべきと考えていたようです。(直感的とは,並び順に素直に割
り付けるという意味でしょうか。)
中略
また,Cにおける型のデザイン(構造体を含め)については,
The scheme of type composition adopted by C owes considerable debt to Algol
68, although it did not, perhaps, emerge in a form that Algol's adherents
would approve of. The central notion I captured from Algol was a type
structure based on atomic types (including structures), composed into
arrays, pointers (references), and functions (procedures). Algol 68's
concept of unions and casts also had an influence that appeared later.
Algol 68に負うところが多いと言っているようです。
--
******************************
keizi kounoike
******************************
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