Foothold (Hello World) 地盤固め(世界よ!こんにちは)

I find myself with some extra time, so I decided to write a C primer blog.
ちょと暇が出来て、C言語の導入ブログを書きたいと思った。

[Tools. You must have tools. まずは道具ですね。道具が無いとできません。]

I’m going to assume you are using the gnu toolchain on a Linux or BSD distribution. Yes, if you want to really want to learn C, set yourself up a Linux or BSD box. It’s better that way.
リナックス類、若しくは BSD類のOS上、gnu の道具箱を利用することを想定としています。正に、C言語をしっかりと勉強するつもりだったら、その良い方法は Linux/BSD オペレーティングシステムを手に入れることから始めるのです。

But you should be able to use Cygwin/MinGW on MSWindows, as well, for the source code I’m presenting here. Or Apple’s LLVM (XCode) on Mac OS X, too.
しかしながら、僕がここで説明するつもりのソースコードについては、シグウィンミンGWを使って、エムエスウィンドーズ上でも勉強できるはずです。マックOSテン上のアップル社のLLVM (XCode) でも巧くいくはずです。

If you are the one who set your programming environment up, it’s a little redundant, but let’s start with getting a foothold.
もし、作業環境は自分で築いているなら、余分な作業に思われるでしょうけど、地盤を固めることから行きましょう。

This is the traditional “Hello World!” program, but I am changing the name of the program and the message.
伝説の「世界よ、こんにちは!」プログラムですが、新しいプログラム名と新しいメッセージを考えました。

Now, let’s get a good look at the code. Let’s start at the top:
さて、見学しましょう。ジックリと見ててね。まずは、頭部の数行を

/* Sample foothold program. (Yet another Hello World!.)
// 地盤固めの例文プログラム。(更にもう一つの、「世間よ!」)
// By Joel Rees, November 2013.
// ジョエル リースの2013年11月作。
// Play with it, check out your compiler and your understanding.
// いじってみて下さい。
// これを使ってコンパイラの動作や自分の理解度をご確認ください。
*/

In C, everything between “/*” and “*/” is a comment from the programmer to the reader of the program. You can think of them as a different kind of parentheses.
C言語では “/*” と “*/” が変わった形の括弧だと思えば分かると思います。これはいわゆる「コメント」です。言い残しです。プログラマがソースコードを読む人に残す伝言みたいなものです。

We will see various uses for comments as we go, but the first few lines here are just to tell you that you can, and should, play with the program.
コメントには幾らかの利用法がありますが、この最初の数行のメッセージはただ、「どうぞ、弄って見ていいよ!遊んでみていいよ!」という意味のつもりです。
#include <stdio.h>    /* 表示用・打ち込み用の標準機能を含む。 */

Going down, we see an odd looking string of letters:
降りて行くと妙な文字の組合せが見えてくる。

#include <stdio.h>

Hmm. “std” looks like an abbreviation for “standard”, doesn’t it? And “i” and “o” would be for “input” and “output”?
ええっと、 “std” とは “standard” の省略に見えるかな?それに “i” と “o” は “input” と “output” を示せそう?
(スタンダード、 インプット、 アウトプット)

So, are we saying something to the computer about including the standard set of input and output functions?
それじゃ、コンピュータに、標準 (standard) の入力 (input) と出力 (output) 機能を含め (include)るつもりのような何かを云っているかな?

Actually, yeah. That’s close enough for now. Thus the comment:
/* For putting stuff out and getting stuff in. */
ン、そうよ。今のところはそれぐらいで宜しい。つまり、コメント通り
/* 表示用・打ち込み用の標準機能を含む。 */

int main( void )

“Main” looks like this might be the main part of the program, but what’s “int” and “void”?
“Main” というと、このプログラムの主役部分がここにあるでしょうが、 “int” と “void” は何のことでしょう?
(メイン、 イント、 ヴォイド/ボイド)

Were Dennis Ritchie and his buddies warning us about programming leading us “int(o the) void”?
もしかして、デニス・リッチー氏と彼の仲間は、プログラミングという仕事は人を空虚へと導くでしょうと、警告していたワケ?

Could be. Programmers have senses of humor, too. Twisted, maybe, but, …
そうかも。プログラマなんて滑稽って判る。ユーモアの感覚をもっている。めげてる感覚かもしれませんが、…

No, no, not that, “int” stands for “integer” and “void” stands for “Something that might be there isn’t.” More about these later.
否、イヤ、違う。 “int” とは「整数」(integer) を、 “void” とは、「在ったかもしれないけど無い物」を示しているのです。後にもっと詳しく触れることにします。
(インテジャー)

And those curly braces — {} — after main, maybe they are collecting all the “stuff” of the main part together?
では、 main の後の中括弧の{}はもしかして主役部分の中身をまとめてくれているかも?

Very good.
宜し。

Okay. The comment on
オッケ。

return 0;

says, “Tell the system we made it safely.” We can understand it to mean just that?
のコメントは “システムに無事終わったことを知らせる。”と言っているのですが、そのまま理解してもいいでしょう?

Yes. By the way, did you notice that 0 is an integer?
そうです。ちなみに、零が整数の一つであることにお気づきでしょうか?

This is what the “int” before main() refers to. But I’ll explain more later.
main() の前の “int” はこの整数を示しているのですが、後にもっと説明します。

That leaves the “puts()” thingy:
残っているのは “puts()” というやつだけです。

puts( “Got my foot on the rock!” );
puts( “足を岩に乗せたよ!” );

“puts()” sends a string of letters — text — to the output, to your screen if you haven’t said otherwise.
“puts()” は文字の糸に繋いだ文字羅列のような塊を出力の方に送ります。違う出力を指定していなければ、画面上に出るでしょう。

The string is the letters between the quotes.
その糸(ストリング)は引用子の間の文字です。

Well, let’s make a place to put this. Open a command-line terminal window and do this:
さて、保管場所を作りましょう。コマンドライン端末ウィンドーを開けて、こうしましょう:

mkdir cplay
mkdir cplay/foothold
cd cplay/foothold

Now launch a text editor and copy the source code in and save it in cplay/foothold as “foothold.c”.
それで、テキストエディタを起動さして、ソースコードをコピー取って cplay/foothold の下に “foothold.c” というファイル名で保存してください。

Now you can type
これが出来たら、次を打ち込んでみてください。

cc -Wall -o foothold foothold.c

If there are no errors, type this:
エラーが出なかったら、次のコマンドを打ち込んで下さい:

ls

and you should see “foothold” in the directory list as well as “foothold.c”. (“foothold.exe on MSWindows.”)
ディレクトリリストの中に “foothold.c” と一緒に並んでいる “foothold” を見つけるでしょう。(MSWindowsの場合は “foothold.exe” です。)

Now, type this:
これを打ちましょう:

./foothold

and your program should print out what was between the quotes in the call to puts().
そして、プログラムが puts() の呼び出しの引用子の間画面に表示されるはずです。

If it did, try replacing the text in the puts() call with something else interesting. See what else you can think of to try.
できたら、文字の入替を試みてください。何らかの面白い文を入れてみてください。また、他に遊べそうなところを遊んでもいい

Don’t forget to recompile after your changes.
変更の後の最コンパイルを忘れないで、ね。

— Next, a (very) little math. — — 次回は(本の)少しの算数。–

 

 

reiisi について

Joel Rees is a sometimes English teacher and sometimes programmer working and living with his family in Japan. ジョエルリースという者は場合によって英語講師、場合によってプログラマです。家族と共に日本に住んでいて、日本で仕事をしています。 You can find some of my projects at ボクのプロジェクトのいくらかを http://sourceforge.net/users/reiisi and 及び http://sourceforge.jp/users/reiisi/ にてご覧いただけます。
カテゴリー: C Primer, Computer Languages, Computer Programming, Computers パーマリンク

コメントを残す

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