未分類

プログラミングについて

投稿日:

プログラミングの本を読みました。今回は実際の処理の裏側で動いている処理を学びました。コンピュータは0と1しか認識できません。人間がプログラムで書く文章を0と1に変換する機能をアセンブラやコンパイラが担います。今日見たのは人間が書いたプログラムがどのようにコンピュータに読み込まれるのかを見ました。プログラミング言語のC言語を通して学んだのですが、C言語ではまずソースコードをコンパイラでマシン語(0と1)に直してコンピュータに処理を実行させます。C言語は高水準型言語で一つの処理で複数のマシン語の命令を行うことができ、効率よくコードを書くことができます。それに対してアセンブリ言語と呼ばれる低水準型言語が存在します。これはマシン語と1対1で対応している言語でコンピュータにそのまま命令を下しているのと同じ感覚でプログラムを組むことができます。アセンブリ型言語を学ぶことはコンピュータのことを深く理解することができるのです。

関数の働き

アセンブリ言語を通して関数の動きを学びました。関数は関数名を定義してその関数名が呼ばれた際に関数の中に書かれた処理を実行します。関数を実行する際に関数が終わった後の処理に移るように関数が終わったあとの処理のアドレスをスタックに入れて元の処理に戻ることができるようにします。

メモリとレジスタの違い

プログラムは補助記憶装置から主記憶装置に移動させてからCPUが実際にそのプログラムを読んで命令を出させます。その際にデータを扱う場合にそのデータを主記憶装置ではなく、CPUの内部構造の一部であるレジスタに格納して置くことができます。こうすることによって主記憶装置からデータを読み込む手間が省け、処理が高速になります。ただしレジスタの個数はメモリのアドレスの個数の65536個に対して20〜30個程度しかありません。なので一度の処理で多くの変数を扱う場合などは主記憶装置のメモリ領域を使うことになるのでその分処理が遅くなります。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ビンゴカード

どんなプログラム?  プログラムを実行してビンゴカードを表示させ、乱数で数字を表示させビンゴカードに書いてある数字と一致した場合にビンゴカードの数字を()で囲み、リーチの数とビンゴの数を表示させるプロ …

no image

ハードボイルドワンダーランド

 最近は寝る前の読書タイムで、村上春樹の世界の終わりとハードボイルドワンダーランドを読んでいます。この本は二回目なのですが、前よりも面白く読めていると思います。前読んだときは不思議だなという感想で頭の …

no image

物件だらけの日

今日はひたすら物件を見ていて頭がおかしくなりそうな日でした。昨日見た問題解決の本をアウトプットします。 世界一やさしい問題解決の本 この本は自分で考えるんだ、という本です。登場人物として、どうせどうせ …

no image

テネットみてきました。

 今日テネットをみてきました。クリストファーノーラン監督の作品なのですが、代表作にインターステラー、メメント、インセプションがあります。三つとも好きな映画なので今回も楽しみにしていました。ただ今回は最 …

no image

明日は東京で面接

 明日は東京で面接があるので頑張りたいと思います。さて今日は「経済のしくみ」と「車輪の下」を読んでいます。まず前者の方からいきますと、この本はアメリカから始まり、お金がどのように流れていくのか、その国 …