最近ふと思ったことを書いてみる
特に役には立たないと思うので興味ない方はスルーで・・・・
- 1945年 ジョン・フォン・ノイマンがプログラム内蔵方式を提唱。
- 1946年 ペンシルベニア大学で真空管を使って演算処理をするディジタル計算機ENIACが作成される。一般に広く知られた初のコンピュータ。
- 1948年 マンチェスター大学のフレデリック・C・ウィリアムスとトム・キルバーンが、初のプログラム内蔵式のコンピュータThe Babyを発明。
- 1949年 モーリス・ウィルクスとケンブリッジ大学の数学研究所のチームによるEDSAC稼働。
- 1951年 EDVAC稼働。
から抜き出してみたんですが・・・
一般に、歴史上最初のコンピュータはENIACと言われてますが・・・
名称 | ABC | コロッサス | ENIAC | The Baby | EDSAC |
完成年 | 1942 | 1943 | 1946 | 1948 | 1949 |
メモリ | - | - | - | 蓄積記憶管 | 水銀遅延線 |
レジスタ | コンデンサドラム | 真空管 | 真空管 | 真空管 | 真空管 |
演算方式 | 2 進数 | 2 進数 | 10 進数 | 2 進数 | 2 進数 |
プログラム | - | - | ハードウェア | メモリに内蔵 | メモリに内蔵 |
ENIACはプログラムを変更するのにハードウェアそのものを変更する必要があったようです
プログラムを変更するために配線作業をしている女性 だそうですが・・・
パッチコードを刺してハードウェアの回路を組み替えているようです
ハードウェアはそのままで、メモリ上のプログラムを書き換えることで機能を変更できないと本当の意味でコンピュータとは言えないとすると、
歴史上最初のコンピュータはThe Baby ということになりそうです
以上を踏まえて、ここからが本題
システム自作でシストレを始めて4年以上経つのですが・・・
最初のシステムは以上のようになってて・・・
「システムそのものを直接書き換える」ってのはまさにENIACの「パッチコードを刺してハードウェアの回路を組み替え」に当たるわけです
流石にこれは不便だというわけで・・・・
- 戦略(トレードルール)に当たる部分を
- 別ファイルに切り分け
- 別ファイルだけを書き換えて対処
みたいなことをまずしてみたんですが・・・・
正直、そんなにスパッと戦略記述部分とシステムそのものを切り分けられるわけでもなく、ちょっと気持ち悪い
ということで・・・・
実際のコンピュータ歴史でも
世界で最初に実用的に稼働したノイマン型電子計算機とされるEDSACのローダ(外部記憶装置からプログラムやデータを読み出して主記憶装置に書き込むプログラム)でも、原始的なアセンブラの機能がすでに実装されている。
とあるので、ENIACの3年後のEDSACにはアセンブリ語が使えるようになっていたみたいです
しかし・・・
アセンブリ語は人間にとってはそこまでわかりやすい言語ではなくて・・・
マクロ
マクロの使用はアセンブリ言語に限らず(さらには、プログラミングに限らず)一般的な技法だが、アセンブリ言語でのプログラミングでは特に有用である。m4のような汎用のマクロプロセッサが使われることもあれば、アセンブラに組み込まれたマクロもある
とWikipediaにもあります
で、私の自作システムもこのm4を使って、マクロが使えるように・・・・
しかし、それでもまだ人間にとってわかりにくい・・・
ということで
1957年 IBMのジョン・バッカスらがFORTRANを完成。1954年から開発が始まった。高級言語としては最初のものである。
と、ENIAC誕生から11年後に最初の高級言語FORTRANが誕生するわけです
現在の私のシステムの戦略(トレードルール)記述言語にはEsgrsdnlなんて勝手に名前付けてますが、ようやくマクロアセンブラから脱皮した程度で、まだまだ改善の余地はあります
とはいえ、やはりこの辺が限界&潮時かも・・・・
マクロアセンブラからちょっと脱皮した程度で止めておいて、他の事やったほうがいいかもしれないとも思っています