鴻池です。

<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
******************************