このヘキサ構造体、ヘキサ、フォーミュラのエピソードが本書を貫く基本的な概念になっています。

ヘキサ構造体、ヘキサ、フォーミュラ(標準Cライブラリ、ヘッダファイル<stdio.h>の説明もありますの)

以下ウィキペディアより


標準Cライブラリ(ひょうじゅんシーライブラリ)は、C言語の標準規格で定められた、型・マクロ・関数の集合からなるライブラリである。


ソーラー 「ここの文章はよくわからないね・・・


でも型・マクロ・関数の集合からなるライブラリ・・・


もしや・・・型って floatとか変数の型のことかな?


マクロ??大きいって意味かな?


まさかマクロってま〇ろす・・・


そして、型・ま〇ろす・関数の集合からなるライブラリ・・・ 


それってなんか特殊なマクロスアニメDVDBOXだね。


(いや、絶対違います)


標準Cライブラリはコンパイラにふくまれているんだね。


そして


標準Cライブラリの中には


変数の型floatとか関数,マクロ


が格納されている?


マクロの意味は今のところわからないけど


つまり標準Cライブラリの中で


C言語でつかわれる基本的な


型、関数などの定義がおこなわれているということなんじゃないかな?


もし


標準Cライブラリの中で


C言語でつかわれる基本的な


型、関数などの定義がおこなわれていなければ


int,floatなどを

ソースコードに記述しても


int,floatがどのようなものか


定義されていないので


機械語に翻訳、つまり


コンパイルできないことになる。


標準Cライブラリのおかげで


僕たちはソースコードに


int,float,mainなどをつかえるんだね。



アレサ 「0101010101010101010101


標準Cライブラリは普段はかくれていてみえないようですが・・・


重要な働きをしているのですね。


ソースコードに記述された


int,float,mainなどは

コンパイルされるときに


標準Cライブラリのint,float,mainの定義を参照して


機械語に変換されるのですね。


このとき


標準Cライブラリ自体は呼び出す必要はないようです。


しかし


標準Cライブラリに格納されている


ヘッダファイルに格納されている便利プログラムは


ソースコードを記述する際


呼び出さなければ使えない機能のようです。」



🌼  🌼🌼  🌼🌼  🌼🌼  🌼🌼  🌼🌼  🌼


この部分を


もう少しくわしく掘り下げてみましょう。


標準Cライブラリのなかには< >であらわされる


いろいろなヘッダファイルが格納されており


さらに


そのヘッダファイルの中には


型の定義が保存されているものもあれば


そのヘッダファイル特有の関数の定義が格納されているものもあります


そして


ある関数を使うには


その関数の定義が格納されている


ヘッダファイルを呼び出さないと関数がつかえないというわけです。


たとえば


<stdio.h>を呼び出さなければprintf関数やscanf関数は


つかえないというわけです


ここでprintf関数やscanf関数がでてきましたね。



scanf関数は


ユーザーから与えられたデータを


メモリに保存する関数なのですが


後のエピソードで出てきます


🌼  🌼🌼  🌼🌼  🌼🌼  🌼🌼  🌼🌼  🌼


なにかに気付き喜んでいるアレサ


アレサ「ソーラーさん(´▽`*)


なんと


マクロってマックスさんのことなんです。


標準Cライブラリの一部だったんですね。」


ソーラー 「いや、それはちがうんだ。


マクロスが標準Cライブラリの一部だったんだ。」


アレサ「

そうです??? か??? っでもソーラーさん


ここはヘキサ構造体の世界・・・


無理にマクロを


マクロスに断定して


定義や理解するようなことをしなくても・・・



<<理解と理解、お互いが情報を交換しあって


お互い同士、それぞれの理解という存在を支えている>>


<<知識と知識、お互いが情報を交換しあって


お互い同士、それぞれの知識という存在を支えている>>


<<論理と論理、お互いが情報を交換しあって


お互い同士、それぞれの論理という存在を支えている>>



そして 理解と理解、((知識と知識、論理と論理


あるいは理解と知識、知識と論理などのいろいろな組み合わせがあります。))を


むすびつけるものが 『フォーミュラ』 であり


『フォーミュラ』によって関連付けられた(『ヘキサ』された)


理解と理解、知識と知識、論理と論理などの体系が



           『ヘキサ構造体』



というわけです。




      『フォーミュラ』は人間の意識の中で



     理解と理解、知識と知識、論理と論理などを


       結びつけるはたらきがあるため



これをコンピュータに応用すれば


今までとは


  違う新しいタイプの人工知能が作製できることになります



このC言語は、(C言語に限らず音楽、数学、文学なども)


『フォーミュラ』によって結び付けられた


理解、知識の支えあいのなかで形成されている


ヘキサ構造体のシステムとなっています。


そして


ヘキサ構造体では 仮説、予測、まちがった理解、推測なども


正しい理解と 全く同等に重要視されます。


なぜなら


正しい理解というものは 仮説、予測、まちがった理解、推測など


と 情報を交換しながら お互いをささえあって存在しているからです


自分自身のC言語に関する理解とは


それぞれの方が積み重ねてきた


仮説、予測、まちがった理解、推測などに


支えられ形成されているということです。


つまり、正しい理解、正確な知識というものは


それぞれの方の成長に応じて支えられた理解、知識であり


理解とはそれ自体がヘキサ構造体となっているわけです。


本書ではみなさんの理解を深めるために


仮説や推測などを容赦なく多用しています


そして


        〘フォーミュラ〙


がそもそも理解というシステムを支える根幹になっている


というわけです。





ソーラー 「は?・・・、はあ?」


アレサ 「すなわちっ!!!


マックスさんは標準Cライブラリの一部なのです。


00000111100000000・・・・・・」


ソーラー 「いやあ、何いってるんですか???


それに今、聞いた話だと


理解度は成長による程度の差じゃないの~~~~


めっちゃ断定してるじゃないか~~~~い!!」


アレサ 「はっ、となると・・・もしや・・・


言い直しますと・・・


では・・・


マックスさんとマクロスは標準Cライブラリの一部だったんですね」


ソーラー 「!!なにぃ???斬新~~~!!!???


なんて、論理的な思考なんだ~~~


すんばらしい~~~


あはっそうだね。


もしかしてマックスは・・・


う~むむぅ


まだ新たな思考と、新たな知識が足りないかなっと?


ここは重要なところだね。


マックスは・・・


。。。。。。。。。。。。。。。。。。。。。。

なに いってるんだろうか? この二人・・・

              solarplexussより

。。。。。。。。。。。。。。。。。。。。。。


ソーラー「


あっ面白そうなことがさらにかいてあるよ。


C言語は、PascalやPL/1等の従来のプログラミング言語とは異なり、文字列操作や入出力等の基本的な機能を内蔵していなかった。




アレサ「?00111010101011001101010・・・


文字列操作や入出力等の基本的な機能を内蔵していなかった・・・?


0101010101010010101001010101010・・・」


アレサ「??」


ソーラー 

「文字列操作や文字列入出力等の基本的な機能を内蔵していなかった??


文字列を操作できない・・・?


はひっ 文字列入出力等の基本的な機能を内蔵してない???


ということは・・・


つまり、きたきた~~~(笑)


C言語はコマンドプロンプト画面に文字列を


表示できなかったってこと???~~~~~


この状態でどうするの???\(^^)/


ここはどこかのジャングルなのか~~~


いや~そんなことは流石にないよね?アレサ」


アレサ 「うふっぅ  011101100・・・


どうなってるの~???01010101010101・・・


ここの説明は面白いです。


C言語に関する興味がますますわいてきます。


とても見事な文章だと思います。」



(C言語は、文字列操作や文字列入出力等の基本的な機能を内蔵していなかった。


といっても文字列操作や文字列入出力ができなかったわけではありません。


その機能がヘッダファイルにまとめられていなかったというだけのことです


ですから


文字列操作や文字列入出力をおこなうには


皆さん独自に文字列操作や文字列入出力のプログラムを


記述していたわけです





やがてC言語の利用者は、現在の標準Cライブラリの原型となる概念や実装を共有するようになった。


ソーラー 「ふふっ



やがてC言語の利用者は、

現在の標準Cライブラリの原型となる概念や実装を共有するようになった。



それまでC言語の利用者のみなさんどうしてたんでしょうか?



すごい世界ですね!



概念や実装を共有するようになった。


みんながバラバラなプログラムを記述すると


読みにくいので


仲間のサークルで共通したプログラムを


記述しようってことになったんだね」







アレサ 「0101111000・・・


なんだか歴史があったみたい・・・


初期の黎明期のころだからC言語好きな人たちで


実験的なことが楽しくおこなわれて・・・000111010・・・


C言語の概念や実装を共有するようになった。


楽しそうですね。わくわくします。


このC言語の成長過程は

私たちの学習による成長過程と酷似してますね。(^^)」


ソーラー「あっ ほんとうだ。」


C言語の普及に伴い、言語仕様がそうであったように、ライブラリもまた多くの方言が生まれたが、1989年(ISO/IEC 9899:1990)にANSIによるC言語の標準規格が制定されることで統一化が図られ、更にはいくつかの新たな概念が導入され、これが標準Cライブラリとなった。



ソーラー 「

        ライブラリもまた多くの方言が生まれた



みんなでC言語の概念や実装をかんがえているうちに


いろんな独自のC言語ライブラリができたのかな?」


アレサ「


ふふっ😊


それはそれで楽しそうですね」


ソーラー「


今でも そのプロトタイプC言語ライブラリはみられるのかな?」


アレサ 「ちょっと みてみたい気もします。」



1989年(ISO/IEC 9899:1990)にANSIによるC言語の標準規格が制定されることで統一化が図られ、更にはいくつかの新たな概念が導入され、これが標準Cライブラリとなった。



ソーラー 

「でも 方言が多いと意味が通じ難いので国際規格ANSIにより


規格が統一されたみたいだね。」



その後に行われた標準規格の改定は、標準Cライブラリへの機能追加が主であった。1995年(ISO/IEC 9899/AMD1:1995)には、主としてワイド文字操作に関する関数群が大幅に追加された。また、1999年(ISO/IEC 9899:1999)には、主として複素数や数学上の演算に関する関数群が大幅に追加された。2011年(ISO/IEC 9899:2011)には、アライメント・マルチスレッド・Unicode・メモリ境界チェック付き関数などが追加になった。

 

ソーラー 「ここは意味がわからないな・・・」


アレサ 「01010101101010101010111・・・」















  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます