Help us understand the problem. What is going on with this article?

プログラムとバイナリ

More than 1 year has passed since last update.

@kazuki_sumi さんの『「プログラミング言語」って何?』の記事にコメントしたのですが、せっかくなので記事にさせていただきます。

プログラム

「プログラム (program)」の語源は、pro-gram、pro-=前/先に、gram=文/書を書く。事前に書く、実行/実演する前に書いたもの、これから実行/実演する内容。
運動会でこれから子供たちが実行することが書かれているプログラム。
演奏会でこれから実演する内容が書かれているプログラム。
コンピュータにこれから実行させることが書かれているプログラム。

コンピュータ

コンピュータの動作原理は、電気を流すか流さないかで電球を点灯・消灯させるようなもの。

image.png

電球をディスプレイのドットにして、ドットに赤緑青(RGB)の色を付けて無数に並べ、オンオフで明るさを調整して、フルカラー動画を見せることができる。
スピーカーにつなげて音を鳴らしたり、ネットワークに信号を流して通信したり、すべて電気のオンオフで仕事してる。

バイナリ

電気の オン か オフ、それを数値の 1 と 0 で表現。
1 か 0 を並べた数値は「2進数=バイナリ=binary」。bi=2、2輪=バイク、バイシクル。
1 か 0 かの情報1個を「ビット」。4個で「ニブル」、8個で「オクテット」。「バイト」はアーキテクチャ依存だったけれど、現在は8ビット=1バイト。
「ニブル」で表現できる2進数は 0000 ~ 1111。10進数にすると 0 ~ 15、16進数にすると 0 ~ F (0~9とA~Fの16個を使用)。
2進数で表現すると長くなるから、2進数8桁を16進数2桁に短くした表現が使われる。
16進数は「ヘキサデシマル=hexadecimal」。「hexa」は6、「deca」は10だけど、「hex」だけで16進数という意味に使われる。
hexagon=6角形、deciliter=10ml、decade=10年=一昔。december=旧10月=現12月。

機械語

コンピュータに仕事をさせるために0と1の組合せで作った「命令」が「機械語」。
8ビットCPUであれば、8ビットの組合せで様々な命令が作られている。64ビットCPUであれば1命令64ビット。
機械語はバイナリ(0と1の羅列)なので、機械語命令を保存した実行ファイルを「バイナリファイル」と呼んだりもする。

プログラミング言語

機械語は人間が理解しにくいので、機械語と1対1で文字にしたのが「アセンブリ命令」「ニーモニック」。
機械語/アセンブリ命令は単純な仕事をさせる命令。単純な命令を組み合わせて複雑な仕事をさせる。
複雑な仕事を機械語/アセンブリ命令でプログラムすると膨大になり、人間が理解するのが難しい。
複雑な仕事を人間が理解しやすいように書ける多種多様なプログラミング言語が存在する。

shiracamus
元、低レイヤーエンジニア。 現、サイバーセキュリティ研究者。 使用言語は、C, Lisp, Java, Python, C#, JavaScript/Node.js。 経験アセンブリ言語は Z80, 6502, 6809, 68000, SPARC, PowerPC, ARM, x86/x64。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした