• ベストアンサー

プログラムの起源について教えてください

全然困っているわけではなくただの好奇心なので、時間があるから教えてもいいよ!という方にお聞きしたいです。 ど素人なので、できるだけ易しい感じで教えていただけると助かります。 最近コンピュータのプログラムに興味を持っています。 (HTMLくらいしかわかりませんが…) それで何かソフトとか作れたら楽しいだろうなと思ってプログラムについて調べてたりしたのですが、ふとした疑問がわきました。 Windowsの開発言語って何だろう(知ってる方がいたらこれも是非)…いや、そもそも一番最初のプログラムってどうやってやったんだろう?って。 Wikipediaで見たところ、世界で最初のプログラム言語は1941年にドイツで開発されたプランカルキュールという言語みたいなのですが、その世界初のプログラム言語を開発するのに何らかのプログラム言語を使用したのであればそれが最初?などと考えてしまいます。。。 ひよこが先かニワトリが先か?みたいな話ですが… コンピュータの電源をいれたら何らかの処理がなされて起動するといった処理をどうやって作ったのだろうか?と疑問に感じてしまいます。 電卓とかの計算プログラムの方が先なのかも知れないですが… そこら辺に詳しい方がいらっしゃったら是非教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

>Windowsの開発言語って何だろう 確かC++じゃなかったですかね? >ランカルキュールという言語 初耳ですね。へえ。これは知らんかった。 通常のコンピュータであるノイマン式計算機だと、最初の登場作品はENIACで、回路を繋ぐ配線を一々繋ぎ変えてた、と思いますよ。さすがにそんな時に生まれてないんで、現物見た事も無いですし、触った事もないですが(笑)。 想像するに初期のYMOが使っていた「タンス」シンセサイザーに極めて近いんじゃないだろうか、とは踏んでいますが(もちろんもっとデッカいんでしょうがね)。YMOなんて言われても分らんか(笑)。 この「配線繋ぎ変え」がメンド臭いんで、その「配線繋ぎ変え」を擬似的に指示して実行させる、ってんで(ENIAC以降の)「プログラミング言語」が誕生したんじゃないか、と思います。多分媒体は「パンチカード」と言う紙媒体で、配線繋ぎ変えを紙にあけた穴で指示して、その紙をコンピュータに挿入して……って感じじゃないですか?さすがにそんな時に生まれてないんで、現物見た事も無いですし、触った事もないですが(笑)。 この「配線繋ぎ変え」指示が当初の機械語だったんだと思います。んでちょっとしてからアセンブリ言語、となったんじゃないですか?さすがにそんな時に生まれてないんで、現物見た事も無いですし、触った事もないですが(笑)。 いわゆる高級言語はFortranの登場が一番最初でしょう。当時は今で言う「数値計算」がコンピュータの使用目的だったんで「数値計算をわざわざパンチカードでアセンブリで記述して……」ってのがあまりにもメンド臭かったんで、Fortranが開発されたんだと思います。これで「計算」だけはラクになった、と。さすがにそんな時に生まれてないんで、現物見た事も無いですし、触った事もないですが(笑)。 次に登場した高級言語はLispですが、最初の実装は「始めて高級言語であるFortranで実装された高級言語」だったと思います。これが始めていわゆる「(高級)言語でプログラミング言語を書く」実例だったんじゃないでしょうか?さすがにそんな時に生まれてないんで、現物見た事も無いですし、触った事もないですが(笑)。 「ひよこが先かニワトリが先か?」ってのはこの辺から始まったんでしょうね。 >コンピュータの電源をいれたら何らかの処理がなされて起動するといった処理をどうやって作ったのだろうか? オペレーティング・システムですか? 最初は無かったんじゃないですかね?多分簡単な入出力くらいしか無かったでしょう。入れて出す、みたいな(笑)。さすがにそんな時に生まれてないんで、現物見た事も無いですし、触った事もないですが(笑)。 ファミコンやスーパーファミコン辺り知ってれば想像付きやすいんですが、要するにああ言う形で……1ソフト1動作、ってな感じだったんじゃないですかね。大体メモリが今に比べて貧弱だったでしょうから、コンピュータ上で2つも3つもプログラムを同時に動かす事も出来なかったでしょうしそんな必要性も無かった。さすがにそんな時に生まれてないんで、現物見た事も無いですし、触った事もないですが(笑)。 多分1960年代くらいからでしょう。「OSらしいOSが登場した」のは。それ以前は大型コンピュータさえファミコン/スーファミ並の環境だったと思います。パソコンで言うOSも……かなり遅れて80年代に入らないと登場してなかったんじゃないかな?やっぱりその時代以前はOS搭載するにも、メモリやストレージが貧弱だったんで、OS搭載するのは「資源の無駄」だったんですよ。ゲーム動かしたいだけで、ゲームを動かすのにも大変だったのに、OS搭載して余計な資源を消費されたくなかった、って事でしょうね。 カセットテープに記録された「ゲーム」を30分くらいかかって気長にロードしてそれだけを遊ぶ、ってのが初期の8ビットパソコンの環境だったんで、そう言う時代だったんですよ。 友達が富士通のFM-7と言う8ビットパソコンを買ってもらってて、「新宿ナンパストリート」ってゲームを遊ばせてもらったんですが、一回ゲーム終了するとまた30分くらいかけてデータをロードしなおして、って言うような状況だったんで、これは良く覚えています(笑)。OSなんてありませんでした(笑)。

pika_kichi
質問者

お礼

とっっっても分かりやすかったし面白かったですw(ちょっとしつこかったですがww) YMOは教授くらいしかわかりませんw 最初は配線繋ぎ買えとかパンチカードなるものでやってたんですね! しかもWindowsはC++という事も分かってスッキリです。 熟睡できそうです^^ ありがとうございました。

その他の回答 (2)

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.3

とても数百字では足りないので、 Amazon.co.jp: モダン・コンピューティングの歴史: ポール E.セルージ, 宇田 理, 高橋 清美: 本 http://www.amazon.co.jp//dp/4624000234 あたりの書籍をあたるといいと思います。 #高いけどね :) それでもいくつか書いておくと、 >いや、そもそも一番最初のプログラムってどうやってやったんだろう?って。 これは、人間が「機械語」で書いていったんですよ。 アセンブリ言語ですらない。 >1941年にドイツで開発されたプランカルキュールという言語 Plankalkül は理論だけで実際に何かのコンピューター用として使われることはありませんでした。 「実用的な」高水準のプログラミング言語はFORTRANが最初とされていますが、 実はその前にいくつかプログラミング言語的なものは作られていたようです。 AUTOCODEとかFLOWMATCIとか。 あと、ENIACはいわゆる「ノイマン型コンピューター」じゃありませんし、 Lispの最初の実装はアセンブリ言語を使ってます。

pika_kichi
質問者

お礼

6000円出してまではちょっと。。。 ちなみにURLリンク開けませんでした(汗 >>いや、そもそも一番最初のプログラムってどうやってやったんだろう?って。 >これは、人間が「機械語」で書いていったんですよ。 機械語ってものを最初に考えた人凄いですよね。 機械と会話してみようと思ったんでしょうね、きっと。 一方通行の命令だけの回路じゃなく、受け答えできたら…なんて考えたんでしょうか?ロマンすら感じます。 未だに2進数とか16進数がよく分かってません。。。 ありがとうございました!

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

ENIAC だと, 処理は全て配線で指示するので「プログラミング言語」そのものが不要. そうでなくても, プログラミング言語で記述したものがそのまま実行されるわけではなく, 「CPU でが理解できる形」(いわゆる「マシン語」) に変換してから実行されます. だから, プログラミング言語なんか使わなくてもマシン語で全部書いてやれば OK. もちろん本当は「マシン語で書く」わけではなく, マシン語と (ほぼ) 1対1 に対応する「アセンブリ言語」で書いておいてから「人手でマシン語にする」(ハンドアセンブル) ということもよくあります. 普通は「電源を入れると特定のところから実行を開始する」という機能を CPU が持っているので, その「特定のところ」を ROM にしておけば「コンピュータの電源をいれたら何らかの処理がなされて起動するといった処理」もできます. 昔の TK-80 とか MZ-80 あたり, あるいは今でも PIC とかをやる人には (それなりに) なじみのある方法だと思う.

pika_kichi
質問者

お礼

>普通は「電源を入れると特定のところから実行を開始する」という >機能を CPU が持っているので, その「特定のところ」を ROM にし >ておけば「コンピュータの電源をいれたら何らかの処理がなされて >起動するといった処理」もできます なるほどという感じでした! だからファミコンはカセットを入れないと何にも起動しなかったのですね!!w ありがとうございました、感謝です。