フリー百科事典「ウィキペディア(Wikipedia)

非常に便利です。世界中で一人一人が監視し、内容を正確にしようとしているため、ある程度信頼できる情報源のひとつとして活用しています。私はプログラミング言語で疑問に思ったことを何回もチェックする事になるでしょう。

 ウィキペディアには多くの言語に翻訳されている項目があります。コンピュータ用語は世界で使われているだけあり、たとえば、

「compiler」(http://en.wikipedia.org/wiki/Compiler

は42の言語でその項目があります。
(英語版Wikipediaでは42の言語にリンクが貼ってあり、日本語版Wikipediaの項目「コンパイラ」(http://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%A9)では35の言語にしかリンクが貼っていなかったりするのは何か別の意図が入っているのかもしれませんが、それはまた別のお話。)

 その内容ですが、ただ言語ごとに翻訳しているだけではないようです。英語版と日本語版では最初の説明に違いがあります。各国の個性もこのような形で知ることが出来るのかもしれません。

 今回調べた「compiler」と「コンパイラ」は全てを読んでいませんが最初の説明以外はほぼ同じでしょう。どちらからどちらへ翻訳したものかは分かりませんが、同内容になるようにしてあります。しかし、最初の説明は大きく違います。英語版と日本語版は別に書かれたもののようです。また、英語版には図がついていて日本語版にはありませんでした。この項目に関して言えば、英語版のほうが分かりやすい説明でした。日本語版もこちらに合わせたらいいのにと思うくらいにです。片方だけでなく両方読めば理解度倍増でしょう。

 ひとつの言葉にも色んな解釈があると知ることが出来たのも、プログラミング言語を学ぶ事で得られた収穫のひとつかもしれません。

(この記事で使用している「言語」、「翻訳」は「プログラミング言語」、「コンパイラ」と異なるものである事は言うまでもありません。)
2008.03.14 Fri l 雑記 TB(0) l top ▲
 「コンパイラ」は

プログラム→翻訳→「0と1」

という流れの中の「翻訳」をやってくれるのだと思います。そしてコンピュータが理解できる言葉を「マシン語」と呼びます。(マシン語がどんなものなのかは現時点で分かっていません。)したがって、上の図を

「プログラミング言語」→翻訳→「マシン語」

と書き換えることが出来ると思います。でも、それだけではないんです、日本人には。

「日本語(カタカナ語を含む)」→翻訳→「プログラミング言語」→翻訳→「マシン語」

と、もうひとつ工程が入っているように感じます。前者の「翻訳」は人間の脳内で行われます。日本はプログラミング後進国のようですが、その原因として、

「日本人は英語が苦手」

というのが、最大のネックになっているのではないでしょうか。プログラミングが言語という人間に少しでも分かりやすいように作った言語を日本人が分かりやすいように説明しようと日本語に翻訳する作業によってむしろ難しくなっているんだと思います。私は、プログラミング言語の前にカタカナ語にこれほど苦しめられるとは思いもよりませんでした。

 どうやら、プログラミング言語を習得するためには、

英語で書かれた本のほうが分かりやすいのかもしれません。

 一応現時点で、最初に買った本によって、C言語の文法の大まかな内容を知り得ました。ページ数にして100ページ超。しかし、何と読めばいいのか分からない言葉だらけで、頭に入れるのはまだまだ時間がかかりそうです。

「読み方を調べ、その英単語を知り、それを直訳する。」

手間かかっているようですが、私にはこの流れが欠かせないようです。これをひとつずつクリアしていこうと思います。

 今回、プログラミングを習得しようとするに当たり、初めてみる言葉でもその意味が想像できる「漢字」というものは如何(いか)に素晴らしい発明かというのを思い知りました。この実感は思いがけない副産物でした。Windowsで目にしているアプリケーションとやらにたどり着くまで相当長い道のりでしょうが、その中にはプログラミングから離れた驚きに出会えるのかもしれません。

 ちなみに「プログラミング後進国」でネット検索してみたのは、英語が苦手な日本人が多いはずだからこの言葉で引っかかるに違いないという思いつきからであったのは言うまでもありません。
2008.03.14 Fri l C TB(0) l top ▲
 プログラミングというのは、自分で書いたプログラムをコンピュータに実行させるためにやります。しかし、コンピュータは結局のところ「0と1」しか認識できません。つまりプログラミング言語を「0と1」に置き換える必要があります。今現在私は詳しい事を理解できていませんが、この置き換える作業を翻訳する作業は「コンパイラ」というソフトが行(おこな)ってくれるようです。ここで、書いていても理解がまるで出来ていない、

コンパイラ(compiler)

という単語を早速ネットで検索。すると、

英和辞典では、「編集者.」(http://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=compiler&stype=0&dtype=1)とあり、これではよく分からないので、その動詞

コンパイル(compile)

で検索。すると、

英和辞典では、「〈文書・抜粋資料などを〉一冊にまとめる, 編集する;〈辞書・本などを〉編集[編纂(へんさん)]する.」(http://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=compile&dtype=1&dname=1na&stype=0&pagenum=1&index=01537600

とあります。少し分かってきました。

「コンパイラ」は、書いたプログラムを編集するためのソフト(プログラム)

らしい。しかし、まだイメージが湧かない。そこで、英語版Wikipediaの項目「Compiler」をチェック。

A compiler is a computer program (or set of programs) that translates text written in a computer language (the source language) into another computer language (the target language).」(http://en.wikipedia.org/wiki/Compiler

とあります。「コンパイラはコンピュータ言語(プログラミング言語)で書かれた文をもうひとつのコンピュータ言語に翻訳するコンピュータプログラムである。」とのこと。

納得してきました。

 「コンパイラとは、(かろうじて)人間(私)にも理解できる(かもしれない)プログラミング言語を、人間にはさらに理解しにくいがコンピュータにとっては理解しやすいプログラミング言語に翻訳してくれる(ありがたい)ソフト(プログラム)」
であると。


理解度が増してきました。プログラムを書いてコンパイラを使ってコンピュータが理解できる形にプログラムを変えて・・・といった作業を実際にやってみればもう少し納得すると思います。「百聞は一見に如かず」ですね。
2008.03.14 Fri l C TB(0) l top ▲
 「stdio.h」の読み方を調べていて、よく分かった事があります。それは、

「プログラミング言語は、英語が土台になっている」

ことです。そのために、カタカナ語がいっぱい出てきます。しかもそのままカタカナ語を載せてあるだけで、説明も何もありゃしません。埒(らち)があかないと感じ、もう一冊C言語の本を買ってきました。これは予定の行動で、何か知りたいときには2冊以上もしくは2つ以上の情報源を用意します。復習のために同じ本を繰り返し読むよりは8割がた似た本を読むほうが退屈しないし、少し違う視点から見ることができるからです。さて、二冊目の本ですが、最初に買った一冊よりも100ページほど多く、本のサイズも大きくなっています。それでもあまり変わりません。しかし、ひとつありがたいのは、カタカナ語や重要そうな単語は英語の単語も同時に載せてくれているところです。しかし、英語が出来ない人間には大して変わらない。その直訳が欲しい。さらにいえば、

「わざわざカタカナ語にしなくてもいいんじゃないのか。」

としきりに思います。

 今回、第2の壁として、

「インクリメント演算子・デクリメント演算子」

が現れました。「stdio.h」はアルファベットでした。今度はカタカナです。日本語ですが難敵です。しかし、今回はカタカナだけあって、日本語の検索エンジンですぐに説明してあるサイトが見つかりました。

日本語版Wikipediaの項目「インクリメント」に

「インクリメント (increment) は、一般には増加という意味だが、コンピュータ用語としては、変数の値を1増やす演算のことである。逆に、1減らす演算はデクリメント (decrement) である。」

とあります。

そして、英単語 「increment」を辞書で調べたら、

英和辞典では、「増加、増大、増殖」(http://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=increment&stype=0&dtype=2
英英辞典では、「something added or gained; addition; increase.」(http://dictionary.reference.com/browse/increment

とあります。

これで、納得しました。「increase」と同義語なんですね。「incre」まで同じですし。それに「ment」という動詞を名詞に変える接尾語がついたものなんだと分かりました。これではっきりしました。

「インクリメント演算子」は「増加演算子」、「デクリメント演算子」は「減少演算子」であると。

 けれども、まだ疑問は残ります。どうして「インクリメント」をカタカナで残したのか。これだけで私にとっては分かりづらいです。芸能界で、「寿司」を「シースー」と言い換えたりするのが業界用語として流行(はや)ったらしいですが、それと同じように、「インクリメント」とカタカナ語で呼ぶことにかっこよさでも感じたのでしょうか。「インクリメント」というカタカナ語が余計に分かりにくい。「increment」のほうが「increase」と「incre」の部分がかぶっている事が分かるだけ易しく感じます。

 まだまだ私が分からない単語が溢れています。一刻も早く分からない単語を無くしたいと思う次第です。
2008.03.13 Thu l C TB(0) l top ▲
 C言語の本を買ってきました。「Visual C++ 2005 Express Edition」でプログラミングを始める前に、C++の前にその本になっているらしい、C言語を知ることが必要なのかなと思い、C言語からスタートです。

 そして、買ってきた本を少し読んでみる。すると、数行のプログラムが載っていて、ユーザー(ここでは私)がこれから書いていこうとしているプログラムのことを

ソースプログラム(Source Program)

と呼ぶことを知ります。そして、数行のプログラムの1行目に早速疑問が発生しました。

書いてあるのは、

#include

というアルファベット。

#     ・・・何なのかも分かりませんが、そのうち分かる事でしょう。
include ・・・英語の「含む」という動詞ですね
stdio.h ・・・さて、これはいったい何と読むのでしょうか?

そうです。「stdio.h」です。これはいったい何なのでしょうか。本をパラパラめくってみると、ソースプログラムの1行目に「#include 」が必ず書かれています。それなのに、読み方が書いてない!数百ページもある分厚い本なのに書いてない!読めなくても別に「stdio.h」と書いてしまえば良いのかも知れませんが、やっぱり知りたい。真っ先に自分で思いついた読み方は、

「スタジオエイチ」

何のことかさっぱり分かりません。今、「stdio.h」について私が分かっているのは、

「これは何かを略したものではないだろうか。」

ということだけです。もし「スタジオエイチ」と読むなら、そのスペル「stadio.h」から1文字しか省略していないので、略す必要性が無いだろう。そこで、この読みを探すべくネットで検索してみました。

見つけました。「よみかたあんけーと」(http://shinh.skr.jp/yomikata/)というサイトの「stdio.h」の欄に

「すたんだーどあいおーどっとえいち」
「すたんだーどあいおーへっだ」
「すたんだーどいんぷっとあうとぷっとどっとへっだー」.etc

皆さんいろんな読み方をされてますね。しかし、これで目星がつきました。

「std」はスタンダード(standard)の略、意味は「標準」
「io」はアイオーすなわち「Input Output」の頭文字「IO」でアイオー、意味は「入出力」
「h」は少し先を読み進めたらヘッダファイルというものがあるそうで、「header」の略.、しかし、どういう意味で「ヘッダ」なのかこの時点では分かっていません。


ここまで分かったのところで、今度は英語の検索エンジンで、

「stdio.h standard input output header」で検索してみました。

すると、英語版Wikipediaの項目「stdio.h」http://en.wikipedia.org/wiki/Stdio.h)を見つけました。

そこには次のようにあります。

stdio.h, which stands for "standard input/output header", ・・・

これで確定しました。

「stdio.h」は「スタンダードインプットアウトプットヘッダ(ー)」と読むと。

読み方が分かって少しすっきりしました。これから必要事項を知識としていくのに、読み方が分かっていたほうが覚えやすい。そして、その足がかりになるはずです。

 購入してきた本には、索引がついていて、その中には「stdio.h」以外にもよく分からない単語がたくさん出てきます。しかし、これで少し読み方を見つけやすくなりました。

 第一の壁「「stdio.h」の読み方」は、私にとって大きな壁でした。本屋で色々と物色したのですが、分かりやすく書いているといっている本も、私にとっては難しい部類のようです。

「パソコン初心者に、ウィンドウを閉じてくださいとインストラクターが言った所、部屋の窓を閉めた。」

という笑い話がありますが、そういった人用に書かれた本は無さそうです。それでもせっかく奮起して始めたプログラミングを挫折するのはまだ早い。というわけで、引き続き続けていく事にします。
2008.03.13 Thu l C TB(0) l top ▲
 「プログラミング」

以前から関連書籍や雑誌を書店でパラパラと眼を通そうとしていました。しかし、大量の英数字の羅列に面食らってすぐに閉じてしまう、そんなことがかれこれ何年も続いていました。それでもこれが分かるようになったら面白そうだという思いだけはあり続けました。

 そして、意を決しプログラミングを始める事にしました。そこで必要なものを先ず取り揃えることからスタート。といっても、よく分かりません。マイクロソフトがプログラミングのためのソフトVisual Studioシリーズを発売していることは随分前から知っていましたが、如何(いかん)せん値段が張る。使いこなせるか分からない代物にそこまでするのはちょっと・・・というわけで、ネットでフリーソフトを探す事にしました。

そこで、選んだソフトが、

「Visual C++ 2005 Express Edition」
http://www.microsoft.com/japan/msdn/vstudio/express/past/2005/

では、なぜこれを選んだのかですが、

1.無料で手に入る。
2.書店にはC言語の本がたくさんあった。ということは、多くの人がC言語を使っている。
3.C++はC言語の改良版らしい


くらいの理由です。BASIC、C、COBOL、FORTRAN、Javaなどなどプログラミング言語は種類がたくさんあることは知っていました。しかし、先ず言語をを選ばなければならないというのが難儀です。英語ならABCから始めればいい。算数なら足し算引き算から。しかし、プログラミングに関しては何からやればいいのかさっぱり分かりません。それなのにさらに言語を選択する必要がある。そこで、この3つの理由で決めることにしました。

「Visual C++ 2005 Express Edition」を入手し、インストールしました。ここまではクリア。たぶん、これだけでプログラミングが始められるのだと思います。

これから、どれほどの壁が待ち受けているのか、ドキドキしています。でも、ゆっくりと楽しみながら進めて行こうと思っています。
2008.03.10 Mon l このブログについて TB(0) l top ▲
 本ブログは著作権上の保護を受けています。本ブログの一部または全部を著作権法の定める範囲を超え、無断で複写、複製、転載、あるいはファイルにすることを禁じます。
2008.03.09 Sun l このブログについて TB(0) l top ▲