天国にいけるC言語入門 シーズン1 パソコン超初心者がゼロから東方風シューティングをつくる編 ver.0.4.15.789 RELIEF
☆☆機械語の優れた点を おされに 仮想コンピュータシステムをもちいて考えてみましょう
☆☆機械語の優れた点を おされに 仮想コンピュータシステムをもちいて考えてみましょう
機械語の優れた点を仮想コンピュータシステムをもちいて考えてみましょう
さらに
この第2アセンブリ言語を
もっと人間にわかりやすく、使いやすくまとめていったものを・・・
C言語プロトタイプ C1と命名する。
さらに こまかいところを修正したものが・・・
C言語プロトタイプ2 C2と命名する
そうやって改定がくわえられ
そうして 今のC言語になっていくわけだ。
そして
そのC言語をコミックマーケットで販売すれば
大儲け ふふっ (笑)となるわけだ・・・
正直 やっぱり僕の感想では
0と1だけで紛らわしいけど
機械語はすぐれたプログラミング言語な感じがするね。
まあ 自分がこの機械語のようなものが好きというのもあるけど・・・
例えばこの機械語のプログラム>>>>
010101011011101010101101010100111111111010101111111111111111111101010101010100101010101011111110001010101010101001010000010101010010
なぜすぐれているか、ということですね。
こんなに0と1のかたまりなのに・・・
ではなぜか?
機械語は0と1のあまりにもシンプルな構造のため、
たとえば コンピュータに1を記憶してという場合
これまた、例えでの話だけど
11111010101111111111のように
直接0と1で命令しないといけないですね。
この
11111010101111111111は
11
1110
10
1011
11
111111
というコンピュータに命令を与える
基本的な機械語のあつまりだとするね。
つまり
11
1110
10
1011
11
111111
は
これ以上細かい命令文にわけられないということなんだ。
僕が思うにこれほどシンプルだと
命令している人間も
11
1110
10
1011
11
111111
一つ一つの命令文が
何を命令しているか
完全にわかっている。
それに対し
機械語をくみあわせて 作られたプログラミング言語では
そのプログラムの構文が完ぺきだったとしても
機械語にもどして考えてみたら
矛盾がある場合だってありえるとおもうんだ。
機械語をくみあわせて 作られたプログラミング言語だけ理解していて
そのプログラミング言語を構成している
機械語を理解していない人には
どこがまちがっているのかわからない
場合だってあるんじゃないかな?
いろいろたのしい考えがうかんでくるな♪~~
すぐれた言語を開発すれば・・・・・
人間もつかいやすい言語・・・・・
そしてコンピューターも喜ぶ矛盾のない言語・・・・・・うふふふふ
人もコンピューターさんも喜ぶ姿がみえる。うふふふふふ
いいことだらけーだねーーー(*´▽`*)
いろいろアイデアが浮かんでくる・・・
そうだね。
ちょっと
創作ファンタジーしてみよっかな(*´▽`*)
ここで僕が作った
仮想のコンピュータの仕組みで
機械語と
機械語を組み合わせて作られたプログラミング言語の関係について
考えてみようかな
仮想のシステムなので
実際のコンピュータシステムとは違います。
たとえば、 私が自分で作った
新型コンピュータに
新型コンピュータ用の機械語を用いて
Aというメモリ(記憶装置)部分に1を記憶するよう
0110111と命令する。
そこで わたしは
この新型コンピュータのシステムと機械語を大変よく理解できる人間として
Aというメモリ部分には
”1つしか1回しか数値が記憶できないとしっている”
とするね。
(本当に新型コンピュータですね solarplexussより)
だから この部分Aに
さらに もうひとつ数値2を追加して記憶してね。と
コンピュータには命令しません。
この仮想の仕組みの場合では
コンピュータのなかでは
Aという場所のメモリに1を記憶した場合
もうそのメモリに新たにデータ2を代入して上書き,記憶させることができません
その1が記憶された状態を保持するために
記憶装置の電源が
ONに入りっぱなしになっているんだ。
そして、その電源をOFFに解除しなければ
あらたに1の代わりに2を記憶できないようになっているんだよ
ここまではいいかな
ここで新たに
この新型コンピュータの機械語を組み合わせて作られた
人間に分かりやすい
プログラミング言語、
プログラミング言語名 NEW PROJECT
が作製されたとするよ。
このプログラミング言語 NEW PROJECTになると
プログラムの構文はまちがっていないのに
自分では
"まったく気付かないところで"
Aというメモリの場所に
つまり
1つしか1回しか数値を記憶できない場所に
数値1と数値2と数値3を記憶して
と
命令していることになっていることがあるかもしれない。
数値1をAというメモリへ入力したあと
数値2をAというメモリへ入力する
数値3をAというメモリへ入力する
という命令をおこなうと
たとえば
コンピュータが
えんえんと数値2をメモリAに入力させつづけようするかもしれない。
さらに
この仮想コンピューターのシステムが
ひとつの命令が完了しないと
次の命令に実行できないとなれば
やはり えんえんと数値2をメモリAに入力しつづけるんだろう。ふふっ。
数値3をAというメモリへ入力する
という命令までたどりつけないね
仮想だけどコンピュータもこまっちゃうよね。
優秀なシステムなら
えんえんと数値2をメモリAに入力しつづけるのをやめて
あきらめてそこでとまってエラー表示するんだろうな。
コンピュータがとまったら
「わっおうー 大変だー」になっちゃうんだけども。 ふふっ
プログラミング言語NEW PROJECTだけをつかっているユーザーは
プログラミング言語NEW PROJECTを用いて
完璧な構文でプログラムをくみ上げたと思っているのですが
新型コンピュータの機械語の仕組みをしらないので
なにが原因かわからないってことになる。
新型コンピュータの機械語でプログラムを記述している場合は
問題の部分を発見できるというわけだね
なんだかいろんなことかんがえちゃったなー。
ふふふ 今日はここまでにしよう。
自分で自分に突っ込む僕ソーラーのアンサー のコーナーです
そう
確かに
新型コンピュータに命令を与えることができるプログラミング言語
NEW PROJECTが作製された最初のころは
そのような隠れバグが起こるかもしれません
ですので
プログラミング言語
NEW PROJECT
が
意図しない誤動作をしないために
プログラミング言語
NEW PROJECT
に
どんどん改良がくわえられていくことになると思うんだ
だから
"まったく気付かないところで"
Aというメモリの場所に
つまり
1つしか1回しか数値を記憶できない場所に
数値1と数値2と数値3を記憶して
と
命令していることになるなんてことは
だんだんなくなっていくと思うんだ
そうやって
プログラミング言語
NEW PROJECT
は磨かれていくんだね
今のは仮想のコンピュータのプログラミング言語でのお話でしたが
もしかして
現在のプログラミング言語で
このような不測の事態が起こることもあるのでは?
と
心配される方もおられるかもしれません
ですが
現在のプログラミング言語で
このような不測の事態が起こることは
まずありませんので
安心してプログラムを記述してください
そのプログラムの記述の意図の通りに
コンピュータは命令を行ってくれます
🌞 🌞 🌞 🌞 🌞 🌞 🌞 🌞
人間が簡単に分かりやすくプログラムを作れるように
機械語をもとに作られたプログラミング言語は
プログラミング言語が人間にわかりやすいように設計されています
ですので
そのプログラミング言語を用いれば
数値1をコマンドプロンプト画面に表示するプログラムなどを
簡単に記述することができます
ですが
機械語をもとに作られたプログラミング言語の場合は
そのプログラムには
さまざまな他のお助けプログラム等が関与してくることになるので
ある程度 実行速度が遅くなります
それに対し
機械語をもちいれば
数値1をコマンドプロンプト画面に表示する際
余計な機械語を混ぜないで
コンピュータに
ダイレクトに命令することができるプログラムを記述することができます
そのため 機械語はどのプログラミング言語よりも高速でコンピュータに
命令を与えることができます
ただしぃ
記述するのはかなり難しいのです
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます