• ベストアンサー

プログラムの大元

 プログラミングにに余り詳しくないのですが、ふと思いました。  C言語等の、コンパイラのプログラミングはどうやっているのでしょう。  コンピューターに1+1=2 と分からせるのに、最初に作った人はどうやって作ったのでしょうか?  最近凄く気になっているので、どなたか回答お願いします。

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

  • ベストアンサー
noname#58440
noname#58440
回答No.3

  昔の事を懐かしく思い出しました。 初めは紙にアッセンブル言語でプログラムを記述して、自分でアッセンブルし 1010 0001 0000 0001 1100 1111 0000 0000 こんなマシン語に変換してROMライターの16個のスイッチを1ならON、0ならoffに設定して書き込みボタンを押して、次の行をスイッチに設定して書き込みボタンを押して・・・・の繰り返し。 少しお金が出来た時にタイプライターを購入して紙テープにマシン語をパンチして編集できる様になった時はプログラミングが楽になったと喜びました。 この紙テープでアッセンブラを入力し、1101 の様な二進数の入力から開放され Clear R0 Go *+1 この様なアッセンブラ言語で入力できる様になり飛び上がって喜びました。 ・・・これが初期のプログラムです・・・  

dorusi
質問者

お礼

回答ありがとうございます。 なるほど。 そんな大変な作業だったのですね。 ミスも見つけにくそうで今は随分楽なのですね。

その他の回答 (2)

  • marori3
  • ベストアンサー率25% (23/91)
回答No.2

#1追記 最初のC言語コンパイラはアセンブリで書かれたと記憶しています。 UNIXというOSのプログラムを書くために最初はアセンブリを使用していたそうですが、 アセンブリのコードというのはCPU毎に違うため、大変な苦労をしたそうです。 そこで『CPU毎に違うUNIXのコード統一するために』C言語を作ってCPU毎の互換性を高めた。 といった感じでしょうか。 蛇足多くてすいません。

dorusi
質問者

お礼

本当に申し訳ありません。 僕の聞き方が悪かったのですが、「0101・・・」というアセンブリは、例えば「0101」(適当です)というのを「1」と定義するのはどうやっているのでしょうか?・・・と言う事を聞きたかったのです。 今僕が読んでもそういう意味には取れない質問文でした。すいません。

  • marori3
  • ベストアンサー率25% (23/91)
回答No.1

機械語で入力していました。 3E 01 C6 02 のように、 それからその機械語に1対1で対応したアセンブリが誕生しました。 LD A,1 ADD A,2 その後色々な言語を経て、C言語が誕生しました。

dorusi
質問者

お礼

ありがとうございます。 すいません。僕の聞き方がおかしかったです。 「0101・・・」(適当です。)というのを「1」。「1+3=4」というのをどうコンピューターに一番初めに分からせたのでしょうか?という事を聞きたかったのですが・・・申し訳ないです。質問の文章おかしいですね。

関連するQ&A

  • プログラムを始めるなら

    C言語をある程度知っている人なら、プログラミングは大丈夫だと言われる理由って何でしょう? 別にC言語を元に全てのプログラムができたわけでもないし、 オブジェクト指向のプログラムとは毛色が違うし。 私自身C言語,javaなどのソースが読める程度しかできませんが、 プログラミングが出来るとはお世辞にも言えません。 何故このような事が言われているのでしょう? また、最初に学ぶべき言語としてはやはりC等の言語がいいのでしょうか? それともアセンブリ言語のような物の方がいいのでしょうか?

  • PICプログラム C言語とアセンブラ言語

    PIC18シリーズを使用して、プログラミングをしています。コンパイラはCCS-Cです。今まではすべてC言語で書いてきたのですが、アセンブラでしか設定ができない部分があり、今までのC言語のソースに加えてアセンブラを組み合わせようと思っているのですが、C言語とアセンブラを組み合わせることは可能なのでしょうか?

  • プログラミング言語について

    コンピューター関連に詳しい人にお聞きします。 最近プログラミングに興味がわいてきました。 調べてみるといろいろな言語があるということが分かり、うぃきなどで調べてみたのですが意味が分かりませんでした。 javaやc、c++,phpなど実生活ではどのような場で使われているのでしょうか? それと俗にプログラマーと呼ばれる方々は、それらの言語すべてに対して知識があるのでしょうか? またプログラミング言語同士には、なにか繋がりがあるのでしょうか?例えばc++はcの派生といったようなもの。 回答よろしくお願いします。

  • 市販されているソフトを作っているプログラム

    はじめまして。さっそく質問させていただきます。 大学でプロミングを学んでいるのですが、まだ知識も皆無なレベルの者の質問として聞いてくださるとうれしいです。 最近、市販されているソフトにどのようなプログラムが使われているのか気になりはじめ、自分でも調べてみたのですがなかなかイイ答えが見つからずこまっています。 言語はC言語やC++をつかっているというのはわかったのですが、プログラミングソフトはどのようなものを使っているのでしょうか? 質問がわかりにくいかもしれませんが回答お待ちしております。

  • C言語のコンパイラ

    C言語の勉強がしたいと思っているのですが、コンパイラっていうんですかね、それについて少し調べてみたら 無料なら"Borland C++ Compiler"で、有料ならなんかかなり高いっぽいけど"Visual C++"っていうのがあることが解りました。 よくプログラミング系のサイトの人で"Borland C++"のコンパイラを利用してとてもプログラミングがしやすくなったということが書いてあるのですが、"Visual C++"と比べたらどっちの方がいいんですか?(やっぱり有料の方?) もし人それぞれなら、みなさんは両方あったらどっちを使いますか? 初心者なら無料ので十分すぎるのだとは思いますが、プログラマーみたいな人から見るとどうなのかな~と思ったので教えていただけますか。 お願いします。 ついでに"Visual C++"って言語があるんですかね?何かそんな風に書いてあるところもあったもんで。 かさねがさねお願いします。

  • プログラムを組むことが嫌になりました・・・。

    情報系大学の1年生です。 この1年間プログラムをがんばってきましたが、ここ最近のプログラム課題でプログラムを組むことが 非常に苦痛になり、プログラムを組みたくなくなってしまいました。 4月の入学当初とかはC言語の勉強をするのがすごい楽しくて仕方がなかったのですが・・・。 自分ではクラスでもプログラミング能力は上位だと思っていますし、周りからもそう思われています。 なので、今投げ出すのももったいないかとは思うのですが、今はソースすら見たくありません・・・。(-_-;) でもクラスで1,2番を争うぐらいの人たちを見ると、全然嫌そうに見えません。 プログラムが上手くできないときも当然あるのになぜその人たちはプログラムが嫌にならないのかが私は不思議でなりません。 やっぱりそういう人たちはできなくても「もう嫌だ」というふうには感じないのでしょうか。 そこで「嫌だ」と感じてしまう自分はプログラミングの才能がなかったということでしょうか? 私は今、コンピュータ業界を仕事にすることをやめようかとも考えています。 皆さんはプログラムが嫌になったことはありませんか? また、そういう経験がある方はどのように乗り越えてきたのでしょうか?

  • オススメのANSI規格準拠コンパイラ教えてください!

    オススメのANSI規格準拠コンパイラ教えてください! C言語のプログラミングの練習をしているのですが、参考書によると、 ANSI規格準拠コンパイラが必要らしいのですが、 おすすめのANSI規格準拠コンパイラがあれば、教えてください。 できれば、無料がいいですね。 ちなみに(関係無いかもしれないけど...) 使っているのは、windows xp です。 やっているのは、C言語です。 回答、お願いします!

  • CプログラムをUNIXで使いたい

     メーカーで解析の仕事をしている者です。  解析用コンピュータのOSは「IRIX」です。またそれとは別に自分のデスクにパソコン(Windows2000)があります。  解析ソフトからの出力ファイルを使って計算するプログラムをC言語で作成して、「Windowsのパソコンで」使用しています。  WindowsのパソコンにCコンパイラは入っていますが、解析用コンピュータには入っていないので仕方なくそうしています。  解析用コンピュータでこのプログラムが使えれば便利なのですが、できないため現状は計算するたびに何度も何度も行ったり来たりしなければならず、とても不便です。  解析用コンピュータにCコンパイラを導入するのは結構なお金がかかるという理由で難しい状況です。  何か良い方法はないでしょうか。教えてください。よろしくお願いします。

  • windowsでもC言語を始めたいのですが…

    某大学の数学科1回生です。 今までC言語を学んだことが無かったので、最近ASCIIの「C言語入門」 を購入しました。(4月から学校で講義が始まります。) この入門書を読み進めていくにはUNIX系のOSがあるとスムーズに進行出来るようです。 しかし、僕が使用しているパソコンはwindows7で、 非UNIX系のOSなのでC言語でプログラミングをする環境が整っていません。 そこで、次のサイトhttp://www.ooyashima.net/db/prog.htmでコンパイラと IDEとテキストエディタを手に入れる必要があります。 windowsのOSでも、UNIX系のOSを用いた時と同様にC言語プログラミングを 可能にするためには、先ほどのサイトで、コンパイラからテキストエディタまで 何を手に入れるのがベストでしょうか? 出来れば無料のソフトが良いです。 C言語やプログラミングに関しては全くの初心者なので、稚拙な文章となり 非常に読み辛かったかと思いますが、回答よろしくお願いいたします。

  • プログラム言語の特徴(得意・不得意)について

    各コンピュータ言語の特徴(得意・不得意)を教えてください。 ネットワークプログラミングに関して知りたいので、それに 関連する言語に関して教えていただければ幸いです。 この質問の背景を以下で説明したいと思います。私はネット ワークプログラミングに関しては素人なので、質問自体が 的外れの点もあるかもしれませんが、どうかご了承いただき、 私の言わんとすることを汲み取ってご回答いただければ 幸いでございます。(知識に欠けている中で、的確な質問 をすること自体が難しいので、どうかご理解ください。) 私は以前に機械系のエンジニアをしておりました。そのため、 プログラミングは専門ではありませんが、ハードウェアの 制御のプログラム(例えばモーター制御や、DI/DO、AI/AO、 CCDからの画像取得など)を書いた経験はあります。 そのときに、もともとCでプログラムを作成しておりま したが、マルチスレッドプログラミングでかなり苦戦 しました。専門書を買ってきてその通りにプログラミング してもうまく動作しませんでした。散々悩んだ挙句、 ハードウェアに特化したプログラミング言語である LabVIEWでプログラミングをしてみると、マルチ スレッドもタイミングも何も考えずにプログラミン グができました。今まで何ヶ月も悩んでいた問題が 一瞬にして解決しました。 このとき感じたのは、プログラミング言語には 得意・不得意があって、開発したいアプリケーション によって、プログラミング言語を選択するのが 効率的なのかなあということでした。 よく、どんな言語でも、極めればどんなことでも できるという人がいます。確かにCなんかは、 どんなこともできるのではないかと私も思います。 ただ、上述の私の例のように、プログラミング 言語毎に、得意・不得意があったり、すでに ある機能に対してそれを実現するパッケージが 存在する言語があったりして、実質的に作業 効率を考えると、実現したい機能(アイデア) に応じて、それに適したプログラミング言語が 決まるような気がしています。 そこで、今私はネットワークプログラミングの 勉強をほぼゼロから始めようと思っています。 ネットワークプログラミングで使用される言語 はいろいろありますが、それぞれの特徴 (得意・不得意)あるいは、それに適した アプリケーションの種類などを、大まかに まとめることはできませんでしょうか。 例えば、前述の私の例で言いますと、 C: 自由度があって、様々な設定ができるが、 めんどう。 LabVIEW: マルチスレッドやタイミング などを考えずに簡単にプログラミングできる が、タイムクリティカルな処理はCで記述 してインポートする必要がある。 こんな感じにネットワークアプリケーションに 関して分類できると、初心者にとっては とっつきやすく、こういうソフト開発を したいからこの言語を勉強してみようと なります。 また、上述の例のように、ネットワークプログ ラミングにおいても、得意な部分のパッケージ をインポートしてつなぎ合わせるような プログラミングはあるのでしょうか。 果たして私の意図がうまく伝わったか分かり ませんが、ご回答いただけましたら幸いです。

専門家に質問してみよう