「こころぴょんぴょん」のC言語を分析してみた

プログラマーなら誰もが学んだことがあるC言語にも訳されている。

そのC言語はどうやって翻訳したのかを分析してみた。





「あぁ^~心がぴょんぴょんするんじゃぁ^~」とは?

色々な言語で翻訳された「こころぴょんぴょん」を解読してみた

そもそもC言語って何?

プログラミングをしたことが無い一般人でも分かるように説明する。

プログラムとは?

「C言語」の言葉を理解するためには・・・

まず「コンピューターのプログラム」がどんなモノなのか知る必要がある。

コンピューターの「プログラム」はどこで使われているか知っているよね?

例えばこのサイトを開いているのはパソコンとかスマホとかの機械だよね?

その機械を動かすために命令を出しているのが「プログラム」だよ!

プログラムってこんな感じ

プログラムの本来の文章は

0と1

の2つしか使わない。

↓こんな感じ


01111111 01000101 01001100 01000110 00000010 00000001


0と1だけで作られたプログラムを「機械語」と言うよ!

人間が読める機械語=プログラミング言語

人間から見ると0と1だけの機械語が読めると思う?

0と1だけでスラスラ書けると思う?

私は古代エジプト語の読み書きをするよりも難しいと思います。

「こころぴょんぴょん」を古代エジプト語へ翻訳してみた

じゃあ誰でも簡単に読める文字(=言語)を作ろう!

という理由で生まれたのが「プログラミング言語」だよ!

C言語=プログラミング言語の1つ

「プログラミング言語」を人間の言語で例えると・・・

「C言語」は英語みたいなモノです。

プログラマーは「C言語(≒英語)」を使ってプログラムを作るんだよ!

プログラミング言語はC言語だけじゃない!

「プログラミング言語」は「C言語(≒英語)」だけじゃないよ!

「C#言語」もあるよ!
人間の言語で例えるとスペイン語かな~

「こころぴょんぴょん」のスペイン語訳を分析してみた

「Java言語」もあるよ!
人間の言語で例えるとフランス語かな~

「こころぴょんぴょん」のフランス語訳を分析してみた

「アセンブリ言語」もあるよ!
死語だけど今でも学ばれているラテン語みたいな感じかな~

「こころぴょんぴょん」のラテン語訳を分析してみた

心ぴょんぴょんのプログラミング言語はたくさんあるが・・・

心ぴょんぴょんにあるプログラミング言語一覧

ニコニコ大百科にあるこころぴょんぴょんのプログラミング言語もたくさんある。

有名なモノだけざっと挙げると・・・


・HTML
・C
・C++
・C#
・Java
・シェル
・PHP
・Python
・Ruby
・Perl
・アセンブリ言語
・BASIC
・Fortran


等々・・・

こんなにたくさんプログラミング言語があるのか!

と思うかもしれない。

だけど、実はまとめて「1つの言語」と見てもOKだよ!

プログラミング言語≠人間の言語

一般人に誤解されやすいのが、

プログラミング言語=人間の言語

だけど実は違うよ!

言語習得がはるかに難しいのは「人間の言語」です!

プログラミング言語は習得が簡単です!

 

「人間の言語」を元に作るのが「プログラミング言語」です。

要するに、「人間の言語」ができる人なら誰でも「プログラミング言語」が作れちゃうんです。

むしろ、難しい「プログラミング言語」は流行しない。

とっくに消えています!

プログラマーは多言語がペラペラ

先ほどプログラマーは「C言語を使う」と説明した。

だけど、実はほとんどのプログラマーは「C言語」以外の言語も使ってプログラミングをするよ!

私も一応プログラマー。
使えるプログラム言語は以下。


・HTML
・C
・C++
・C#
・Java
・シェル
・Python
・Ruby
・Perl
・Fortran


私はプログラミング言語が10個も使えるんだね!

 

・・・なんて甘い!甘い!

ガチのプログラマーは20言語は当たり前、30言語なんてザラ!

私はプログラマーなので、

「プログラマー=多言語がペラペラで当然!」

と思ってます。

C言語だけマスターすれば他のプログラミング言語も分かるぞ!

ニコニコ大百科ではこころぴょんぴょんのプログラミング言語がたくさん紹介されている。

だけど、実はC言語だけ理解すれば他のプログラミング言語も読める。

自分が経験したことの無いプログラミング言語を使ってプログラミングする時も・・・

ネットで調べればすぐ分かる。

ネットにあるソースコード(プログラムの文章)をコピペして少しずつ修正していくうちに新しい言語も習得できる。

プログラミング言語を知らない人は、C言語でもJava言語でもなんでもいいから1つだけの言語を学ぶといい。

そうすれば、他のプログラミング言語も解読できるようになるよ!

「あぁ^~心がぴょんぴょんするんじゃぁ^~」のC言語訳

本記事ではプログラマーの間で超有名な「C言語」を解読する。

なお、私が初めて学んだプログラミング言語も「C言語」だゾ~

#include <stdio.h>

int main(void) {
    printf("あぁ^~心がぴょんぴょんするんじゃぁ^~\n");
    return 0;
}

「C言語」の読み方さえ理解すれば、「Java言語」でも「BASIC」でもなんでも読めるようになるぞ!

C言語の発音方法

(C言語のソースコードに発音なんて)ないです。




C言語を言語的に分析するとこうなる

注意書き

まず、C言語は「言語学」の分野ではない。

どちらかと言うと情報工学」の内容です。

本記事ではC言語で書かれた文章(=ソースコード)の仕組みだけ紹介する。

やや「言語学的」寄りな「情報工学」の説明だと思って♡

上から一行ずつプログラム実行する

人間の言語と同じように上から順番に読む。

「#include <stdio.h>」=「おまじない」

C言語の入門書の最初の方では

「#include <stdio.h>」=「おまじない」

と良く紹介されている。

だけど、「#include <stdio.h>」って一体何者なの・・・?

と気になる兄貴向けに説明するよ!

 

「#include <stdio.h>」を日本語で言い表すと

「「stdio.h」と言う名前の図書館を含める」

になる。

「#include」は英語の「include(含める)」と同じ意味だよ!

 

「#include」の次に「<>」を付ける

「#include <>」

「<>」の中に図書館の名前を入れる。

その図書館の名前が「stdio.h」になってるね。

 

図書館「stdio.h」の中には「main」という言葉が定義されているよ!

もし図書館「stdio.h」を含めないと・・・

次の行で「main」を使ってもエラーになる。
C言語で書いたプログラムが故障して動かなくなっちゃうよ!

 

だからプログラムの最初に「stdio.h」という図書館を含める必要があるよ。

それがC言語の「おまじない」です。

 

なお、「図書館」私が作った言葉です。

C言語では「ライブラリ」と呼びます。

「int main(void) {」=「プログラムの始め」

先ほど、「stdio.h」という図書館を含めたので、「main」という言葉が使えるようになった!

なので「int main(void) {」と書いてもエラーにならない。

 

・・・・ところで「int」とか「void」とか「{」って何???

ってなると思うんで1つ1つ説明するよ!

「main(){~~~}」でスペースを宣言する

C言語の場合、プログラムを動かすスペースを前もって宣言する必要がある。

 

例えば、リンゴを売る場合・・・

まずリンゴを置くスペースが必要だよね?

 

プログラムでもリンゴを置くようなスペースを確保する必要があるよ。

そのスペースをC言語で宣言する方法が「main(){~~~}」

「int main(void){」の「int」や「void」でスペースを作っているわけじゃないよ!

「void」=空(から)の箱

「main(…)」の「()」の中に入っているのが「void」

「void」は空(から)を意味するよ!

つまり「main(void)」は「main()」と書いても同じ意味になる。

「int」=整数

「int」は英語「integer(整数)」の略。

プログラマーなら誰もが知っている英単語だよ!

 

「integer」はC言語では良く使う単語

だけど「integer」だと7文字もあって長い!

だから最初の1~3文字だけ抜き出して「int」と書いているゾ~

「int main(void) 」のしくみ

ここからちょっとだけ難しい話になるよ!

「int main(void)」を3行で言うと


・「main」と言う名前のスペース
・「main」を呼ぶ時は「空(から)」でお願い!
・「main」の実行が終わったら「整数」を持って帰って!


これだけだとイメージしにくいので、動作を以下に示す。

別のスペースにある

aaa=main();

int main(void)

を呼び出している。

「main」を呼び出す命令が「aaa=main();」になる。

 

「aaa」は整数(1,2,3、、、)を入れるための箱

「aaa=・・・」は、「・・・」の計算結果を「aaa」という箱に入れろ!という意味。

 

これを日本語で言うと、

空(から)の状態でmainを呼び出して、計算した結果をaaaに入れなさない!

になる。

 

他の場所から「main」と言うスペースをエラーなく呼び出したい。

だから

「int main(void) 」

と厳密に定義する必要があるよ!

 

以上が「int main(void) {」の説明でした。

ココの部分はプログラマー以外は理解が難しい。

「int main(void) {」を理解したい兄貴は実際にプログラムを作って動かして♡

「printf(“あぁ^~心がぴょんぴょんするんじゃぁ^~\n”);」=「テキストを画面に表示」

先ほどの「int main(void) {」の説明と比べてコレは簡単!

単に「あぁ^~心がぴょんぴょんするんじゃぁ^~」というテキストをパソコンのデスクトップに表示させるだけ。

C言語の書き方としては

printf(“ここにテキストを入れる\n”);

最後に付いている「\n」改行を表す。

いちおう「\n」が抜けても「あぁ^~心がぴょんぴょんするんじゃぁ^~」と表示させることはできる。

だけど、2行以上の文章を表示させたい場合は「\n」が絶対に必要になる。


あぁ^~
心が
ぴょんぴょん
するんじゃぁ^~


と表示させたい場合は以下のように書く。

printf(“あぁ^~\n心が\nぴょんぴょん\nするんじゃぁ^~\n“);

実は「printf」も「main」と同じスペースを表す

細かく見ると・・・

「main」から更に「printf」というスペースを呼び出している。

「printf」はテキストを出力させる事に特化させたスペースだよ!

 

「main」で「あぁ^~心がぴょんぴょんするんじゃぁ^~\n」を「printf」へ渡している。

「printf」で「あぁ^~心がぴょんぴょんするんじゃぁ^~\n」という文字を受け取ってパソコン画面へ表示させています。

「return 0;」=「プログラムの終わり」

「return 0;」を日本語で言うと

「0という数字を持って帰りなさい!」

という訳になる。

「main」と言う場所でプログラム処理が終わったら、元の場所へ戻る必要がある。

その時に持ち帰るモノは「int main(void)」から「int(整数)」だと分かる。

 

だけど、(特に持って帰るモノが)ないです

そういう意味で「return 0;」と書いている。

「return 0;」を省略してもエラーにならない(と思う)

「}」=「mainというスペースの終了」

mainと言う名前のスペースを宣言する必要があったよね?

その時に使ったのが「{」

逆にスペースの終わりを示すために「}」が必要になる。

 

「}」が抜けると、スペースの終わりの場所が見つからなくなる。

スペースの長さが無限に続いてしまう。

そういう現象が起こったらC言語ではエラーメッセージが出る。

 

「}」が抜けてC言語から怒られるのはプログラマーなら誰もが通る道です。

C言語訳のまとめ

#include <stdio.h>

int main(void) {
    printf("あぁ^~心がぴょんぴょんするんじゃぁ^~\n");
    return 0;
}

を日本語で説明すると以下にある。


1.「stdio.h」という名前の図書館を含めろ!
2.「main」という名前のスペースを宣言しろ!
3.「main」を呼び出すときは空でOK
4.「main」から戻る時は整数が必要だよ
5.「main」のスペースはここからだ!
5.「あぁ^~心がぴょんぴょんするんじゃぁ^~」+「改行」と表示しなさい!
6.「0」を持ち帰ってね!
7.「main」のスペースはここまでだゾ!


・・・

・・・・・・

うーん、日本語で書くと分かりにくいなぁ~(小並感)

 

プログラムにやらせたい事を日本語で書くとものすごく分かりにくい。

それを分かりやすく翻訳したのがプログラミング言語です!
(今回はC言語)

 

他の人の要望をプログラム化する作業はホントに大変!!

それだけでも分かってくれたら嬉しいんじゃぁ^~

他のプログラミング言語

C言語よりも簡単に動かせるのがVBAです。

ちょっとだけプログラミング言語をやってみたい兄貴は以下を参考にして、どうぞ。

「あぁ^~心がぴょんぴょんするんじゃぁ^~」をVBAで表示させてみた