goo blog サービス終了のお知らせ 

まったり アイマス2

アイドルマスター2 超ライトユーザーのプレイ日記

3493. データベース、続き^5

2021年08月19日 | 日記

 なんだか話が間延びしそうなので、途中で書いている私がつまらないと思った時点で終了すると思います。悪しからず。

 多少議論になりそうなのは文字列型で、これを(計算機の)整数や実数のように単純データ型と見なすのか、配列のような複合データ型と見なすのか。

 私が計算機言語の原点と思っている(初期の) FORTRANでは整数(integer: 32bit符号付き2の補数表現が普通)と実数(real (単精度浮動小数点数) / double precision (倍精度浮動小数点数))が区別されていて、たしかこの頃のFORTRANでは混在が不可能で、混ぜるときは変換関数をプログラマがしっかり書かないとコンパイルの段階でエラーを食らったと思います。
 当時は紙カードに穴をパンチするのがプログラム打ち込みで、結果は翌日などに計算センターからラインプリンタで返されるので、あっさりコンパイラからsyntax errorなどと出力された用紙を見て面食らった…、はずです。いや、さすがに今は老人の私でもこの経験はほとんどありません。
 なので、コンパイラはソースプログラムを解析していって、最初の解析不能バグで報告して停止するのでは無く、そのままコンパイルを続けてバグを総出しするのが普通です。
 通常、括弧の閉じ忘れなどが起こると、その後のプログラムはめちゃくちゃに解釈されてしまうので無駄なプリンタ出力になることが多いですが、この、いいから続けろ方式が好まれます。現在のいわゆる統合開発環境でもそうなってます。

 1970年頃のNHKコンピュータ講座でもすでにオンライン端末を使っていましたから、プログラムにバグがあったら直ちに計算機がその旨を返事します。スタジオで実時間で講師が対応していたはずです。普通はリハーサルで潰されていたようですが、重要でありがちな事態は番組で対処法が紹介されていたと思います。

 つまり、数値型と言っても初期のFORTRAN段階で3つの型が存在します。型(type)は同じ数値、たとえば数値1をメモリ上で表すのに3方式が存在する、ということ。
 この区別は初期のパソコンBASICにはありません。現在の表計算ソフトも数値型は数値型の1種だけです。
 現在のパソコンのCPUは驚愕の高性能なので、万能感のある64bit IEEE浮動小数点数で押し通してもそんなに速度は落ちないと思います(トータルで1/10程度には収まると思う)。なにせ、機械語に浮動小数点数と整数の変換命令があるので、それを使えば万事OKです。

 片や現在逐次実行型コンパイル言語代表のC言語では数値型が沢山あります。主なもので、char、int、doubleの3種です。それぞれ1文字ASCIIコード(0~127)、2の補数の(16/32/64bit)整数、64bit IEEE浮動小数点数です。つまり私は特に必要で無い限りこの3型しか使いません。しかし、派生形が山ほどあって、間の悪いことにCPUによって整数精度が異なったりして、多分、C言語の生産性が悪い感じがする原因の一つがここと思います。

 次回は文字列型の話のつもりですが、予想通り、楽屋落ちの感じの話が続くと思います。あるいは、続きません。


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 3492. データベース、続き^4 | トップ | 3494. データベース、続き^6 »
最新の画像もっと見る

コメントを投稿

サービス終了に伴い、10月1日にコメント投稿機能を終了させていただく予定です。
ブログ作成者から承認されるまでコメントは反映されません。

日記」カテゴリの最新記事