5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

プログラムってなんで動くの?

1 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:55:38.92 ID:ok44i40T0
プログラムを動かすためのプログラムが必要なんだよね?
そのプログラムを動かすためのプログラムを動かすためのプログラムはどうやって動いてんの?

2 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:56:36.35 ID:3VlalT4M0
プログラムおじさんが動かしてるって死んだじっちゃんが言ってた

3 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:56:59.70 ID:ok44i40T0
プログラムおじさんが死んだらどうなるの?

4 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:57:18.00 ID:yIC4TUBw0
>>1
お前プログラムおじさん知らねーのかよ

5 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:57:22.80 ID:Nvl/mjNF0
電気回路でスイッチ入れたり切ったりして

6 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:58:30.73 ID:MiYIla6z0
もう派遣でプロおじやって6年になる

7 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:58:48.87 ID:BGiqRoji0
プログラムはコンパイラーというプログラムで機械語に翻訳される
機械語となったプログラムはローダーというプログラムでメモリーにロードされ、命令コードを元にCPUが仕事をする

つまりコンパイラとローダーを作った人間は神

8 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:58:52.54 ID:CJX7N1Lt0
コンピュータのしくみ
http://ocw.ouj.ac.jp/tv/1542109/

9 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:58:58.82 ID:xPNFHM6D0
電気が凄いスピードでシコシコしてる

10 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:59:00.10 ID:9QWJkNyOi
俺も全然わからん

11 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:59:34.26 ID:025TH9w40
プログラムのプログラム自体が機械のDNAになってるから
そのDNAを具現化させるのがプログラム
違うか?

12 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 22:59:52.57 ID:LmtzP96l0
タスって回路
ヒクって回路
があるんだろ

13 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:03:22.24 ID:ok44i40T0
>>7
機械語って人間が作ったもんだよね?
コンピュータが機械語を理解するためのプログラムも必要なんじゃないか?
コンピュータが機械語を理解するためのプログラムも機械語で書かれてるのか??

14 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:03:56.53 ID:k1FDxJBli
夢と希望で動いてます

15 : 忍法帖【Lv=24,xxxPT】(1+0:15) :2013/12/11(水) 23:07:02.37 ID:hYWI2oVx0
電子回路がプログラム

16 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:07:21.60 ID:BGiqRoji0
>>13
コンピューターが機械語を理解する必要はない
コンピューターは機械語の命令、
たとえばメモリーのどの場所を参照するかなどの命令を読んで、
それに従って動くのみ

17 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:08:20.53 ID:BGiqRoji0
質問の答えになってなかったな
続きはエロい人ヨロシク

18 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:09:18.90 ID:WELQoJ0z0
そのプログラムを動かすためのプログラムを動かすためのプログラムを動かすプログラムがあるんだよ

19 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:09:59.10 ID:01Ko1dZhi
>>18
星新一乙

20 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:10:24.88 ID:sip+fRGT0
究極的には>>5らしいがどうも腑に落ちないんだよな
各パーツの中に何億もの物理的なスイッチが設置されてるわけじゃないんでしょ?

21 : 忍法帖【Lv=24,xxxPT】(1+0:15) :2013/12/11(水) 23:10:55.01 ID:hYWI2oVx0
cpuの創りかた読め
解決する

22 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:11:33.30 ID:EueOYECy0
疑問は機械語をどうコンピュータが実行するかに
帰着されたわけね

23 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:12:32.98 ID:ok44i40T0
ピタゴラスイッチみたいな感じなのだろうか

24 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:13:51.21 ID:2KuzgTTd0
デコーダの話になるのか

>>20
いや、物理的なスイッチが設置されてるぞ
機械的なスイッチではないが

25 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:14:26.08 ID:eo6M1aIjI
日本語→設計図→C言語とかプログラム言語→(中略)→マシン語でCPUを直接動かす

26 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:14:47.14 ID:01Ko1dZhi
>>20
電気的なスイッチ、電子回路ともいう
論理的な回路で、否定と肯定により成り立つ
全ての論理回路はNAND理論で表示可能

27 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:16:07.32 ID:TUXpAM4w0
そもそもなんで機械が動くんだろ
一番最初にコンピュータ作った奴ってどういう理論で作り始めたの?

28 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:16:46.97 ID:01Ko1dZhi
>>27
電子計算機の歴史 でググればわかる

29 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:18:05.52 ID:2KuzgTTd0
IC を思い浮かべる、足が沢山あるあれね

んで、その IC は特定の足の電圧が高いか低いかで
別の足同士のスイッチを切ったり入れたりする

たとえば i というメモリ(レジスタ)に j というメモリ(レジスタ)の内容を
移したいという命令を機械語にして 1010 だとすると、IC の足には
高低高低という電圧がかかり、 そのときメモリの i とメモリの j の間の
接続がスイッチで繋がれ、電気的にコピーされる

30 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:18:06.96 ID:eo6M1aIjI
マシン語やら機械語やらはじつはあれべつに「言葉」じゃないでしょ
テレビでいうと「電源を入れろ」とか「チャンネルを変えろ」とかのいろんな個別機能のスイッチを入れたり切ったりしてるだけでしょ

31 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:19:20.90 ID:VTkDiP460
電気じゃね?

32 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:19:50.87 ID:ok44i40T0
>>30
それはわかるんだけど、なぜそれをコンピュータが理解できるのかがわからない。

33 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:22:42.64 ID:VTkDiP460
加算・減算回路を勉強してごらん

34 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:22:49.28 ID:2KuzgTTd0
>>32
「理解」なんぞしてない
ピアノの鍵盤を叩くと決まった音が出るように
ある電気信号を流すと決まった電気信号が出てくるだけ

ピアノは曲を「理解」なんてしてないだろ?

・・・・以下、【中国語の部屋】に続く

35 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:24:00.59 ID:WjxM8Qng0
概念を流し込んでいる感じか

36 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:24:06.01 ID:QVbwSmUy0
お前らが美少女見てシコるのと同じ原理だろ

37 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:25:22.23 ID:v8bm93dr0
一般的な高級言語(JavaとかCとかそういうの)の場合
プログラムのコード 人間が読めるもの プログラミングといえば一般的にはこれを書く行為をいう

機械語 コンパイラというプログラム(Cとかで出来てる)で機械語に翻訳 1 0で記述 CPUが解読 具体的なメモリ操作などを記述 人間が読むことはほぼ無い

動作

今ではコンパイラはCなどで作るが もっと先祖の大元のコンパイラは機械語で作られていた

38 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:27:46.25 ID:sip+fRGT0
もうちょっと原理を教えて
専門用語を使わずに

39 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:28:32.69 ID:NietJwaL0
ソフトなんかから入るからそんなアホな疑問がわくんだろうな…
ハードの勉強しなさいな

40 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:29:58.56 ID:eo6M1aIjI
>>32
テレビだってリモコンを操作してる人間の
「フジテレビが見たい!!」
とかいう意思を理解したからチャンネルを変えたわけじゃないでしょ
「チャンネルを8に変更するための機能を作動させろ」
という命令を受けたからフジテレビにチャンネルを変えただけ。
マシン語も同じで、文章っぽいものの羅列によって、CPUのいろんな機能(足し算をしろ!!とかメモリの読み書きをしろ!!とか)を作動させてるだけ。

41 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:30:18.03 ID:2KuzgTTd0
>>38
まず、電気信号で足し算できることまではわかるか?

42 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:31:00.09 ID:LcgQMUX20
リレーとか半導体の話まで掘り下げな理解できんだろうね

43 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:31:01.00 ID:sip+fRGT0
>>41
わかんない

44 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:33:09.83 ID:v8bm93dr0
コンピュータとはなんぞや ってところからか?

CPUとメモリってどんなもんか自分で説明してみ それ次第でどこから解説するか変わる

45 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:33:47.27 ID:NietJwaL0
せめて論理回路くらいわかってほしいところだな

46 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:33:58.97 ID:ok44i40T0
少し解ってきた。

例えば水車があって、川の水をせき止める板があって、板を設置するか外すかみたいな感じか?

47 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:34:33.36 ID:BGiqRoji0
分かりやすい説明できる人ってすごいな

48 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:35:11.51 ID:ok44i40T0
>>45
賢いアピールいらないから。簡単に説明できない時点で無意味。

49 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:36:12.09 ID:2KuzgTTd0
>>46
そそ

電子回路の場合は、MOSFET という素子がまさにその仕事をしている
三本足で、真ん中に電圧をかけていない状態では仕切りが入っていて、
電圧をかけると仕切りが外れる

そういう回路が数億と入っているのが CPU

50 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:36:40.99 ID:01Ko1dZhi
おいもう>>1には何も説明しなくていいぞ

51 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:36:53.97 ID:2WqUDmUR0
プレゼン能力ある人ってほんと尊敬するわ

52 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:37:08.30 ID:RyW6z1OV0
だまれちんかす

53 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:37:37.28 ID:u0TForWS0
CODEって本を読むとコンピュータの動作原理を理解できる

そこまで興味なかった俺は中盤で挫折したけど

54 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:38:02.66 ID:TUXpAM4w0
あんたらはどこで勉強したの?
独学?

55 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:39:35.10 ID:hz6gHSLv0
>>46
そう
そしてその板を差したり抜いたりするのを別の水車でやることにすれば、全て水だけで制御できるわけだ
同じようなことを電流に置き換えればいいだけ

56 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:39:39.81 ID:H/E7VYsT0
君が動けと望んだからさ

57 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:40:23.47 ID:sip+fRGT0
>>44
ガソリンエンジンは密室の中でガソリンを爆発させ、その衝撃をタイヤに伝えることで車が動くわけだが
電子機器にはそういったレベルの理解が皆無
パーツの役割は分かるけどどうやって動いてるかは全然分からん

CPU
一つ一つはオンとオフしかないスイッチの集まりらしい
規模が違うだけでやってることは電卓と変わらんよね
電卓の原理も知らんけど

メモリ
なんか情報を保存しておけるらしい
HDDと違って電気の供給が切れると全ての情報が消える

58 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:40:57.79 ID:01Ko1dZhi
>>54
某企業でSEやってる叔父さんから

59 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:41:08.29 ID:hao5iyaX0
なんせあいつらはプロだからな
アマグラムだったら動かないこともあるだろう

60 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:41:42.49 ID:2KuzgTTd0
>>43
電線を考えてみた時に、

2つのスイッチが直列に繋がっていると
両方のスイッチを入れた時だけ電気が通る(AND回路)

2つのスイッチが並列に繋がっていると、
片方のスイッチを入れれば電気が通る(OR回路)

の2つを考える。んで、まず(1+1, 1+0, 0+1, 0+0)の4つの足し算だけ
考え、入力をスイッチだと思って両方の回路につないでみる

AND の出力があるときは答えは 2
OR の出力があって、AND の出力がないときは答えは 1
AND も OR も出力がないときは答えは 0

というルールにすれば、スイッチの On Off で足し算ができることになる

61 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:41:53.20 ID:eo6M1aIjI
たぶん、自動車のカーナビがもっと進化して、全自動で人間を目的地まで連れて行ってくれる時代になったら、
クルマに対しても>>1と同じのような疑問を持つ人間が出てくるんだろうな
「自動車はけっきょくどうやって人間を目的地まで連れて行ってるの?」
と。
答はもちろん、
「カーナビや機械がエンジンやギアに指示を出して回転数を変えたりギアをチェンジしたりしてクルマを動かしている」
だよな
この点、CPUもクルマに対するエンジンやギアと同じような物だ、ということが見えにくいのが疑問を生む理由かもな

62 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:42:03.03 ID:NietJwaL0
>>48
なんでそんな上からなんだよ
おまえがあまりに無知だから理解できないだけだろ?(笑)

63 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:42:07.47 ID:TwcPXnbg0
原理なんか理解なんてしなくても使えるからいいんだよ
それがブラックボックスってもんだ

64 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:42:21.45 ID:hz6gHSLv0
>>57
電圧をかけると電流が流れ、電圧を切ると電流が止まる素子がある
全部これ

65 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:42:38.66 ID:v8bm93dr0
>>57
ざっくりはわかってんのね
そこから先はアナログ電子回路の話になりそうだから俺の出番じゃないわww

66 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:43:08.47 ID:hz6gHSLv0
>>65
デジタル回路じゃないのかよwww

67 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:44:15.49 ID:v8bm93dr0
>>66
そこから先はコンデンサとかそっちの話じゃね
デジタル回路なら解説できるけど

68 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:45:02.61 ID:LcgQMUX20
>>46
その板付近におじさんがいて「水の量がこれくらいだったら外すそれ以下は外さない」って決め事してる
他にもいっぱいおじさんがいて決め事はそれぞれ

69 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:45:46.81 ID:2KuzgTTd0
メモリもスイッチっすよ

スイッチを8個並べれば 8bit スイッチの出来上がり
たとえばこのメモリに4をセットする場合は、4を2進数になおして
(00000100) あとは上からスイッチを Off Off Off Off Off On Off Off とやれば
メモリにセット完了

左から電気を流すと、右には LLLLLHLL という信号がでるので
それにしたがって演算器は計算できる

70 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:46:36.54 ID:AsfEP5CT0
CPUの中にはON/OFFできる回路が一億ぐらいあるんだっけ?
それ以上あったよね?
1GHzで一秒間に1億回処理できるんだから

71 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:47:46.03 ID:TUXpAM4w0
夜中のVIPは博識多いな

72 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:47:54.92 ID:01Ko1dZhi
>>70
その処理速度はFLOPSとかいう単位らしいぞ

73 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:49:00.72 ID:2KuzgTTd0
>>70
Core i7 は 7億素子ぐらい
でも、クロックと素子数は関係ないよ

10素子ぐらいでできた 1+1 しかできない回路でも、
1GHz のクロックで動作する素子なら1秒間に10億回 1+1 の計算ができる

74 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:49:28.85 ID:v2OvKTv0O
すげえなお前ら何もんだ…
なるほどなー、こういうの読むと勉強したくなる

75 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:50:36.96 ID:qkvfDDiRP
今日一番勉強になるスレ

76 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:51:07.29 ID:APGweDNe0
謎定期

77 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:51:36.72 ID:v8bm93dr0
デジタル回路を構成する基本的なパーツ(素子)はざっくり3つぐらい

入力と出力があって 入力の内容によって出力が変わる その詳しい原理は割愛 アナログな人頼む
AND素子 2入力1出力 両方の入力から電気が流れてきてるときだけ電気を出力する それ以外は出力しない
OR素子 2入力1出力 どちらか片方でもら電気が流れていれば電気を出力する 両方来てないなら出力しない
NOT素子 1入力1出力 入力と逆を出力する ON→OFF OFF→ON

ここまでおk?

78 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:53:16.05 ID:Jm/9g2I70
このスレは保存しとこう

79 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:56:39.08 ID:sip+fRGT0
あー、着火性と燃焼力に優れたガソリンっていう便利な物質があるように
コンピュータの中には俺の知らない便利なものがあるわけか

>>73
人類すげー!
そんなミクロの部品を生産して完璧に配置していく生産ラインの機械もお前どうなってんのと

80 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:57:07.75 ID:v8bm93dr0
以上の3つを表にする 0が電気来てない状態 つまりOFF  1が電気来てる状態 ONだな
X Yがそれぞれ独立した入力 Zが出力だ

AND
X  Y   Z
0   0   0
0   1   0
1   0   0
1   1   1

OR
X  Y   Z
0   0   0
0   1   1
1   0   1
1   1   1

NOT
X   Z
0   1
1   0
NOTは入力が1つしか無いからYは無しな

まとめただけだがここまでおk?

81 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:58:35.29 ID:ok44i40T0
>>80
ここまではわかる。

82 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:58:37.09 ID:LcgQMUX20
>>68
あーちょっと違うか
水路の傍らにおじさんがいて板に繋がってる紐をちんぽにくくりつけてる
水流の刺激がストライクだったらちんぽが勃起して板が上がる
水流が弱ければ萎える
つまり水流の強弱で水車の回転数を制御できる
このおじさんのちんぽが半導体ってもんでどんくらいの水流の刺激でちんぽ勃つか決まってる

83 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:59:26.38 ID:NietJwaL0
>>79
配列は写真の現像みたいな技術でやってるよ
パターンつくって露光して余分なところ削ったら完成

84 :以下、名無しにかわりましてVIPがお送りします:2013/12/11(水) 23:59:47.75 ID:E7zz9Io/0
工業高校だと習うんだけど卒業する頃には覚えてないよな

85 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:00:45.76 ID:CaeIBE3wI
>>82
なるほどw

86 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:01:03.15 ID:evsO/aa40
放送大学でこういう事の講義があるぞCPUのマイクロコードとかも解説してくれる

87 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:01:26.36 ID:NgYtwCx/0
T-800「それが衝撃吸収用のシリンダーだ。見えるだろ?」

88 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:02:02.13 ID:BzR+12sM0
>>72
?そーだっけ?浮動小数点の計算回数じゃなかったっけ。
マシン語の処理速度とは違うのでは。

89 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:04:25.61 ID:cmn1O1AB0
>>88
MIPSだな
一秒間で処理できる命令数

90 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:05:33.64 ID:K4udCFTC0
なにいってんだ一番すごいのはMOSトランジスタだから

91 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:05:34.27 ID:+owZ8Gmq0
AND OR NOT じゃ書きにくいので 横書きでは算術記号を使って以下のように書く

A AND B → A・B
A OR B →   A+B
NOT A →   ¬A
       _
NOT A は A (えーばー)と表すのが簡単で一般的だが ここでは書き込みの関係上¬を使わせてくれ
あと 数学と同じように()を使ったりもする もちろん()を先に計算する

A=1 B=0 のとき A+B=1 A・B=0 ということだね
同様に (A+B)・B=1 (A・B)+B=0
ここまでおk?

92 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:07:21.62 ID:j6ybD4GV0
毎日0の信号送る仕事に疲れてきたわ

93 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:08:13.55 ID:cmn1O1AB0
>>90
それならコンデンサは縁の下の力持ちだな

94 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:09:44.30 ID:hN5pR2cR0
やあ、ここはプログラミングスレッドだよ!
Wiki(まだまだ未完成。編集者募集!)
http://vipprog.net/wiki/
共有Blog(プログラミング関連のコラム☆編集大歓
迎!)
http://vipprog.tumblr.com/
避難所(規制組来たれ)
http://ex14.vip2ch.com/test/read.cgi/
part4vip/1377340395/
うpろだ
http://www8.uploader.jp/home/vipprog/
コードが長くてコピペが辛い
http://pastebin.com/
web上で実行したい
http://codepad.org/
http://ideone.com/

95 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:09:46.64 ID:jsrq9IbA0
>>80
XOR:排他的論理和も必要では

X Y Z
0 0 0
0 1 1
1 0 1
1 1 0

96 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:10:08.21 ID:Hbq3AUEV0
NAND だけで他の論理回路全部表現できるんだっけ?

97 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:10:33.99 ID:O9YZozOYP
NANDとかいうデキる子

98 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:11:19.93 ID:cmn1O1AB0
>>96
できるね(`・ω・´)

99 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:15:41.70 ID:KLfKFpY20
>>98
IDがすごくプログラムっぽいな

100 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:16:03.73 ID:xgI6a58G0
NORだけでも全部表現できるよ
まあNANDの0と1を入れ替えたものだから当たり前なんだけど

101 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:16:50.41 ID:jsrq9IbA0
通常NANDゲートだけ作るって聞いたな。

102 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:17:55.58 ID:+owZ8Gmq0
論理回路の基本的な表記方法は以上だ
あとはこの素子を複雑に組み合わせることで計算機ができる
さっきの例の()を使った問題のように 素子の出力をさらに次の素子の入力にしていって組み合わせていくだけだ

たとえば半加算器(下位からの繰り上がりなしの2進数の足し算をするもの)はすごくシンプルな作りだ
さっきみたいに表にすると

半加算器
A  B   C S
0   0   0 0
0   1   0 1
1   0   0 1
1   1   1 0

2進数でA+B (この+はANDじゃなくて足し算の意味) を計算するってことは つまり上の表のような入力ABに対してSCのような2つの出力をすればいいわけだ
Cが繰り上がりの桁 Sが計算結果の桁だ
上から順に 0+0 = 00、 0+1 = 01、 1+0 = 01、 1+1 = 10 の計算に対応してるわけだ

ちなみにこの半加算器での出力Sは>>95の言う XOR の出力と同じものだ

103 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:18:01.20 ID:gHRXGz460
エクリプスって何で作られてるの?

104 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:20:24.89 ID:dnIpB5FT0
ちょっと違うかもだけど
昔の人たちってどうやって外国語を理解したんだろう

105 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:23:54.20 ID:Hd9a1Xxx0
似てるようで全く違うな!

106 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:25:39.53 ID:+owZ8Gmq0
下位からの繰り上げを考慮した全加算器というものもある
半加算器を組み合わせた単純な構造だから つまりはこれもAND OR NOT の3つだけで作れるということだ

引き算は2進数の特徴(2の補数)を利用してやれば 同様の機械で実現できる

掛け算割り算も同様に3つの素子だけで作れるが かなり複雑になるので割愛 気になるなら乗算器でググってくれ

基本的な考え方は
1. 求めたい出力を表にする
2. 必要な入力を考える
3. それらを論理演算で実現できる素子の並びを考える

この工程を繰り返してどんどん高機能な素子の塊を組み上げていくわけだ

ここまでおk?
それとも需要ない?

107 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:27:00.76 ID:UxydwCby0
>>104
紙に意味不明なものを書いて、原住民が「何?」って言うのを聞いて
「何?」という言葉を最初に覚え、そこから色んな物を指しては「何?」と繰り返したとか
まぁ、小説レベルの話ですが

108 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:29:47.13 ID:jsrq9IbA0
そもそも1が居ないようなキガス
つーか、せっかく詳しい人が居るんだから見てる奴質問しろよー。

109 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:30:06.41 ID:/Cad/v4/0
親がエンジニアなのに何言ってるかチンプンカンプンだわ

110 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:31:19.78 ID:+owZ8Gmq0
そうか 俺の解説じゃダメか・・・

111 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:32:42.96 ID:WHqRsG+00
例えばピタゴラスイッチがあったとしてそのピタゴラスイッチは上側にボールの入り口がいくつか
下側にはボールの出口がいくつかあって
それぞれボールが入っているか入っていないかを保存できるボールをためる升目と
ボールの有無で升目のどの列とピタゴラスイッチを繋げるかを判別して繋ぐ装置がピタゴラスイッチの入り口と出口にある
機械語って言うのは0と1の組み合わせで書かれているわけだからこれをピタゴラスイッチの入り口にボールの有無で放り込む
そうすると結果がまたボールの有無で出口から出てきて指定した列に入る

112 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:34:16.24 ID:UxydwCby0
>>1>>1 なりに全部が半導体でできたスイッチで、それが繋がってるんだと
納得して帰っちゃったんじゃないか?

113 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:34:19.91 ID:KLfKFpY20
>>110
いや、すごくわかりやすいと思う。それが大元なのが理解できた。

114 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:34:57.43 ID:jsrq9IbA0
そうだ、是非聞きたい事がある、最初のハード、例えば京のOSってどうやって作るの?
OS作るよー>コンパイラ無いよー>コンパイラ作るよー>OS無いよ、ってなって作れない気がするんだけど。
最初の開発ってどうやるの?

115 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:37:37.99 ID:k8ihlZ/p0
>>114
ようわからんが01で作るよーが最初じゃない?
今はLinuxとかでCとアセンブリ言語で作ってると

116 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:37:51.46 ID:UxydwCby0
>>114
他の OS 上で動くコンパイラでコンパイルする

マイコン炊飯器も炊飯器の上で動くコンパイラは無いでしょ?
なので他の普通の OS 上で炊飯器用の機械語を吐くコンパイラを動かす

117 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:39:22.73 ID:v8L5JsYs0
コンパイルってよくわからんけど必要な言語と必要ない言語があるじゃん?
あれなんでなの?
必要ない言語は優秀なの?

118 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:39:22.68 ID:jsrq9IbA0
>>110
すごく初心者向けだと思うよ。

119 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:39:27.62 ID:KLfKFpY20
>>116
たぶん最も最初のコンピュータをどうやって作ったかって事だと思う

それを作るためにそもそもコンピュータがいるんじゃね?っていう

120 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:40:35.22 ID:UxydwCby0
>>117
機械語以外のコンピュータ言語である以上コンパイルは必ず必要で
実行しながらコンパイルするか、実行する前にコンパイルするかの違い
Ruby とか Perl のインタプリタ言語は前者

121 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:40:36.88 ID:k8ihlZ/p0
>>117
必要ない言語は実行時にコンパイルしてる
いわゆるインタプリタと呼ばれるやつ
JITとは違う

122 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:42:38.24 ID:UxydwCby0
>>119
そいつは UNIX の例で言うと、

:機械語ですごい少ない命令しか使えないコンパイラを作る

:そのコンパイラを使って、もうちょっとたくさん命令があるコンパイラを作る

:そのコンパイラを使って(ry

という感じ

123 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:42:45.69 ID:cmn1O1AB0
>>114
ハード作る(機械語で動く奴)→機械語でアセンブラ作る→アセンブラでコンパイラ作る→OS作る
の流れになるんじゃね?

124 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:42:58.24 ID:v8L5JsYs0
>>120-121
なるほど、見かけ上必要ないだけで実際には勝手にやってくれてるのか
ありがとう

125 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:44:13.30 ID:KLfKFpY20
>>122
なるほどなー
すごい小さい歯車が自分より少し大きい歯車を動かしてその歯車がさらに少し大きい歯車を…
というのを繰り返すことで最終的には複雑な機械が動いているイメージだろうか

126 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:46:06.65 ID:+owZ8Gmq0
>>113
需要あるなら調子に乗って書いちゃう



CPUってのは基本的に
指示された命令を上から順番に実行していくわけだが 具体的にはイカのサイクルを延々と繰り返すだけだ

・必要な情報(数値など)を指示された場所から読み出す
・読みだした値を指示された方法で計算する
・計算結果を指示された場所に保存する
・次の命令を読み込む

CPUは予め決められた命令と動作を自分で覚えてて 例えば
1番の命令が来たら 与えられた数値ABを足しなさい 結果はCに保存
2番の命令が来たら 与えられた数値ABを掛けなさい 結果はCに保存
3番の命令が来たら Aの場所からデータを読み出しなさい 読みだしたものはBに保存
・・・
と 命令番号と動作が決まっているわけだ
ここでCPUに与えてやらないといけない情報は 大きくわけて
・計算方法(足し算引き算 データ読み出し)
・読み出すデータ
・保存場所
になるわけだ

ここまでおk?

127 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:48:06.00 ID:jsrq9IbA0
>>115、116
なるほど、京の上にコンパイラが有る訳じゃなくて、クロスコンパイラで京のOSを開発するんだ。
確かに、京でコンパイルなんてもったいないね、ほー。

128 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:51:56.45 ID:/j4IrpsuI
新しい設計思想のコンピュータを作るときは、
「古い設計思想の工場で新しい設計思想の工場を生産する」
みたいなことをするのかな?
そう考えると、最終戦争で全世界の工場が壊滅してしまうと、
トンカチやノコギリで手作りで原始的な工場を作るところから再出発しなくちゃならなくなるのかもな
同じように、新世代のコンピュータを作れるのは一世代前のコンピュータがあるおかげなのかも

129 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:54:13.88 ID:+owZ8Gmq0
CPUに与える情報というのはどこかに保存してあるわけだが それがメモリってやつだ
お前らのPCにも2Gとか4Gとか ちょっといいやつは8Gとか積んであるだろう それだ
そこに必要な情報を一時保存しているわけだ
例えるならお前らが2桁の足し算をする時に繰り上がりとかを一瞬覚えておくためのような場所だ

で そのメモリ上には1と0が延々並んでいるわけだが そのすべてに住所のようなものが決められていて
例えば3番の場所 といえば必ず1つの場所を指し その内容が1か0かわかるわけだ
この住所を使って ほしい情報がどこにあるのかをCPUに教えてやることができる
この住所が指す場所から情報を読み出せば ほしい情報が手に入るってわけだな
これが >>126 の読みだすデータの場所ってことだ

ここまでおk?

130 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:55:03.24 ID:UxydwCby0
>>128
まぁ、文明崩壊するとコンピュータ以前にネジ釘や鉄材、
ドライバー程度から苦労するだろうねw

文明崩壊からの再出発は無限に妄想膨らませられるネタだよな
まず岩を割って作った石器で木を切って、火をおこして砂鉄から鉄器を作って・・・と

131 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:55:22.81 ID:+owZ8Gmq0
誰か読んでんの?需要あんの?

132 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:57:45.88 ID:Gm4vFOK00
>>131
読んでる

133 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 00:59:46.62 ID:+owZ8Gmq0
保存場所も同様にメモリ上の住所で指定してやればいいから簡単だな

これら3つ (・計算方法 ・読み出すデータの住所 ・保存する住所) をCPUに与えてやれば
あとはCPUが 予め知ってる手順に従って CPUの中の回路を決められた手順で使って計算してくれる
そして計算結果を 指定の場所に保存してくれるわけだ
それが終わると CPUは次の命令をメモリ上から自動的に読み込んで また同じように実行する

以上でCPUの動きの説明は終了
質問あれば分かる範囲で答える

134 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:01:33.61 ID:brn/ZTBs0
ほうほう

135 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:01:46.58 ID:/j4IrpsuI
>>ID:+owZ8Gmq0
読んでるぞー
こうしてみると、コンピーターってのはすごい単純な仕組みの膨大な集大成なんだなあというのがらわかるね

136 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:02:24.04 ID:35suUPOqP
>>92
0レジスタさんおつかれさまです

137 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:03:35.13 ID:Ug0R+UBQ0
>>21
これ持ってるわ
パーツとか買うの面倒で挫折したけど

138 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:04:09.71 ID:DH4VtYlO0
全く理解できなかったのか>>43>>60の説明に対してノーコメントでスルーしてるのにワロタ

139 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:06:30.78 ID:+owZ8Gmq0
あと 実際は>>96のいうように すべての回路はNAND(=NOT (A AND B) )素子だけで作れて
NANDは小さくて安いという理由(だっけ?)でほぼNANDのみで構成されている
ただし回路図はめちゃくちゃ見難くなる

140 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:07:09.68 ID:34Iq0nYx0
PC(プログラムカウンタ)っていうのが中で頑張ってるんだよ

141 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:07:22.50 ID:brn/ZTBs0
頭痒くなってきた

142 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:09:18.36 ID:0FCkzEIm0
仕事でJavaのプログラミングしてた時これ気になったな
でも「そういうもんだ」ということですぐに納得した

143 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:09:45.10 ID:DH4VtYlO0
素子とボードある人はnビット加減算機つくってごらん
コンピュータの本質がわかるから

まずは簡単なn=4ぐらいから始めてみると良い

144 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:13:39.77 ID:IvoMFdCA0
論理回路を勉強している俺にタイムリーなスレ。

145 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:14:25.86 ID:+owZ8Gmq0
読み返してみると 半加算器の説明が雑だったかな

半加算器の回路図は下のようになる
ただし
http://web-mondai.com/upload/00617/00617_1278466610_20a_17_02.png
これが OR を計算する素子

http://web-mondai.com/upload/00617/00617_1278466580_20a_17_01.png
これが AND を計算する素子だ

そして
http://2.bp.blogspot.com/-R39vZtYmYkc/TryMGPAYLjI/AAAAAAAAAM8/zKroMLo2IUg/s320/not.png
これが NOT を表す素子だ

http://upload.wikimedia.org/wikipedia/ja/6/64/Half_adder.png
この図のように素子を組み合わせると半加算器ができる

式で書くと
S = ¬A・B + A・¬B
C = A・B

146 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:17:31.80 ID:jsrq9IbA0
まあ同じだけど、CPUの基本動作は
フェッチ:プログラムを読み込む(メモリの内容をCPUにコピーする)
デコード:内容を解読する
エクゼキュート:実行する
ロード:結果を書き出す

だね。

147 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:21:28.06 ID:jsrq9IbA0
>>145
C:Carryだけど、Sってなんだっけ?

148 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:21:46.80 ID:+owZ8Gmq0
>>147
Sumじゃね たぶん

149 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:24:54.82 ID:UxydwCby0
おもろいの見つけた

ttp://ipl.sfc.keio.ac.jp/text/basic-2005-4/kuemain.htm

プログラムメモリに

A<-日    (メモリからレジスタAに数値を代入)
B<-日    (メモリからレジスタBに数値を代入)
+      (AとBを足し算して結果をAに入れる)
A->日   (レジスタAの内容をメモリに代入)

と入れて、

データメモリの一番上に1を入れて、左上の実行を押すと
なんとなくコンピュータの中で何やってるかわかる

ttp://taurus.center.ous.ac.jp/~iwasaki/CCCall/CyberITcontents/CPU/cpu.html

こっちも似たようなのだけどこっちの方がむずかしいかな?

150 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:28:33.18 ID:vuqw8sfj0
自分でZ80買ってきて一本一本配線してマイコン作って
コンピューターがどうやって動くのか実感したもんだけど
今の子たちはそういう経験しようったって無理だもんな

151 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:29:40.30 ID:+owZ8Gmq0
>>150
やろうと思えば出来なくはないけどな

152 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:31:24.88 ID:jsrq9IbA0
>>148
なるほどSumか thx

153 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:35:01.32 ID:jsrq9IbA0
>>150
秋月辺りでマイコン買ってきてアセンブラで作れば同じだと思うよ、バイナリなんてどうでもいいことだし。

154 :以下、名無しにかわりましてVIPがお送りします:2013/12/12(木) 01:55:32.57 ID:Hd9a1Xxx0
プログラム書いてて裏で動いてる論理回路の事気にすることはなかったけども
ゲーム内で回路組んだり配線したりしてるうちに気になるようになってきたなあ

41 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.02 2018/11/22 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)