言語とは?
まず知っておかないといけないのが、コンピュータは2進数で考えていると言うことです。
2進数がわからない人は、0か1かで動いているなんて話聞いたことありませんか?
コンピュータは電気で動いていますから、電気が流れている流れていないの2種類しかないんです。
この状態を0と1に置き換えて考えていきます。この辺がわからない人は無視して結構です。
つまりは、コンピュータの使う2進数こそ、コンピュータの言葉「マシン語」というわけです。
では私たちは何がしたいかというと、コンピュータに何かして欲しい訳ですよね。
だったらコンピュータにお願いしようとしたら、方法は2つしかありません。
方法1:コンピュータが人間後をしゃべってくれる。
方法2:私たちがマシン語を話す。
当然コンピュータが人間後を話すなんて、どだい無理ですから選択肢は2しかありません。
では
マシン語を話すことができますか?できませんよね。
(余談ですがその昔マシン語を見てふむふむなるほどと理解してしまう強者もいたのも事実ですが、、)
その後01010010100100010111100101・・・・・・という2進数と人間の理解できる範囲で
最大公約数をとった16進数が使われるようになりました。
16進数というのは、10進数が0から始まって9で終わり次は繰り上がって10から始まって19で終わって繰り上がって、、、
というものに対して、16進数は0から始まって15で終わります。ところが15というのはすでに2桁なので
これは問題です。そこで、0から始まって0123456789ABCDEFというようになったのです。
なぜABCかというと考えたのが外人だったからです。もし日本人だったら「いろはにほへと」だったかもしれませんね。
話それましたが、16進数なら「4A」とか「2D」とか表現するので2進数よりはわかりやすかったのですが、
やはりなんだかわかりませんよね。
そこで言語の登場です。
人によっては「通訳」と表現して説明する人もいますが、なんとなくはそういう感じです。
つまり
と機械の間で通訳をしてくれるのです。これは通常の外人さんと同じように考えてください。
が機械に何かして欲しければ、直接マシン語で話せないので、かわりに通訳さんにお願いをします。
「画面に文字を表示してくれ」といえば通訳さんは裏でマシン語に翻訳して機械にお願いをします。
結果として画面に文字が表示されます。
ですから
としては通訳さん(BASICとかC言語)に「画面に文字をだせ」と言うだけで画面に文字が出たことになります。
言語の種類とは
では言語にも色々ありますよね。人間語でも日本語や英語・中国語からフランス語などさまざまです。
そのなかでどの言語が優秀なんでしょう。そんなのありませんね。それぞれに特徴があります。
英語は非常に合理的な言語です。日本語や中国語では漢字を使います、1文字でたくさんの意味を持たせています。
つまり、コンピュータ言語にもいい悪いはないのです。向き不向きがあるのです。
それぞれの言語の特徴として、BASICは初心者に向いています。アセンブラは非常に高速でコンパクトです。
FORTRANは技術計算に向いています。コボルは事務処理に向いています。C言語は汎用性が高いです。
ほかにもはやりのJAVAやperlなどがあります。
ではここの講座ではなぜBASICとC言語なのでしょうか?
つまりはこういうことです。プログラムをある基準で分けるとこんな風になります。
両端に人間語とマシン語があるわけでいったいどっちに近いかということなのです。
人間語+--------------------------------------------------------+マシン語
BASIC C言語 アセンブラ
私も実際の学生さんに話を聞いていますが、趣味だとか昔からやっていたとか興味がある程度以上ある
そういう人は自力で理解しているようですが、普通の学生さんに聞くと共通して言うことが
「私はいったい何をしているのかわからない」「とりあえずできる人のをまるうつしした」というのです。
はいかがでしょうか?
講義の内容を聞くとその通りだなと言う感じがします。学校では教授もあまり教える気がなく
「とりあえずやっとけ」みたいな感じで全然解説をしないのです。異論もあるかもしれませんが
私が数名の各大学生に聞いたところそんな感じでした。
そこで要点は何かというと「何をしているかわからない」ということをなくそう。
1つのことがわかるまで、次へ行かない。ステップバイステップ方式でいくことにしました。
短時間にたくさんのことをしかもプログラム経験ゼロの人に理解させるのは非常に困難です。
なぜBASICなのか
話がそれましたが、プログラム言語で言うと人間語に近ければ近いほど理解がしやすいということです。
マシン語に近ければ近いほど文化や習慣が違います。そして数たくさんのルールを覚えなくてはいけません。
実際にプログラムをはじめる人にとって何言語から初めてもはじめてにはかわりないのですが、
そこでやっていることが、いったいルールなのかやらせようとしていることなのか、
チンプンカンプンというわけです。ですから、ここではもっとも人間語に近いBASICから勉強して欲しいのです。
この2つのプログラムを見てください。2つとも画面にHello
worldと表示するプルグラムです。
-----------(BASICを使った場合)-----------------------------------------------------------
10 PRINT "Hello world"
20 END
-----------(C言語を使った場合)----------------------------------------------------------
#include<stdio.h>
main()
{
printf("Hello world\n");
return(0);
}
--------------------------------------------------------------------------------------
いかがでしょうか?この段階ではなんだかわからなくてもかまいませんが、見て欲しいのは長さです。
全く同じ結果が得られるのにこれだけ違います。このプログラム自体は超超入門ですからこの程度ですが
実際はもっと複雑になります。
生まれてはじめてみる人はいったい何をしているのかさっぱりだと思います。
どこまでがルールでどこまでが画面に文字を表示させているのか、、、、、、
ですから、まずはBASICで実際のプログラムの組立方になれて欲しいのです。
正直言って今時BASICで作ったプログラムが第1戦でバリバリ活躍しているという話はあまり聞きません。
(つい最近関西地区で大手の某会社でBASICがバリバリ使われていたことを知って、あきれるやらうれしいやら)
ですから、BASICの書式や構文を暗記しろとはいいませんが、プログラムの組立方を理解して欲しいのです。
そしてBASICなら複雑なルールもなく人間語に近いので非常に理解がしやすいと思います。
その後C言語などを取り組んでも、組立方がわかっていれば後はルールを覚えるだけですからね。
是非
もがんばってください。
C言語の将来性
では次のステップはなぜC言語なのでしょうか?
「C言語は古くて新しい言語だ」と言われます。
C言語の特徴として汎用性が高いと言うことです。
C言語を使えばWindowやDOS・マッキントッシュやUNIX等のアプリケーション
はたまた、電子ジャー(死語)やATM・プレステ等のプログラムも可能です。
実は今になって一般の人が騒ぎはじめた「LINUX」(LinuxはUNIXのPC版OSです)ですが
そのおおもとであるUNIXという非常に優れたOSもC言語で書かれているのです。
すからその気になれば
オリジナルのOSを作ることができるのです。
さて、C言語は優秀なので色々な言語に影響を与えています。数々のC言語ライクな言語が誕生しました。
たとえばJAVAなどもそうですし、perlなどもそうです。
ですから、C言語のルールになれてしまえば、他の言語も理解するのに楽と言うことなのです。
最後に
それでは、次回から実際に学習をはじめましょう。
プログラムができるようになると、楽しいですよ。何せ他のソフトを買うのがバカバカしく感じることもあるかもしれません
なぜって?いるなら自分で作ればいいからです。「なんだあのソフトこんなのでこんな値段つけてやがって」とか
思えるかもしれませんね。
もしおもしろいものができたら、どんどん公開してたくさんの人に使ってもらいましょう。
素朴な疑問質問なんでも結構ですのでありましたら、会議室の方に書き込んでください。
Let's enjoy programing!!
蛇足
プログラムには コピーライト
ということで出せるんです。もし他の人が勝手にコピーしたら訴えてもいいんです。
そしてそのソフトを世界中の人が気に入ってくれたら、、、、世界中に
の名前が轟くことになるんです。
もし大ヒットすればあっという間に大金持ちにもなれるんです。すごいでしょ。
のもっているMicrosoftWordとか他のソフト買ってきてもそれでおしまいですよね。
でも
が3万円の開発ツールで作ったソフトは1億円になることもあるんですよ。
お金ばかりじゃないですけど、1番わかりやすいたとえでしょ。
そして今の時代は恵まれています。インターネットがあるのだから、一瞬にして世界中の人に使ってもらえるんですから
でも、忘れちゃいけないのがマナーですね。最近フリーソフトとか流行っていますけど、
なかには「フリーソフトはただでソフトが使える」とか「シェアウェアとはお金を取られる」とか考える人がいます。
嘆かわしいですね。ただなら使うけどお金は払わない、、、、
そもそもオンラインはギブANDテイクで成り立っています。
「僕が作ったこのソフトおもしろいからつかってみて」というのがオンラインソフトの考え方です。
そして気に入ったら作者にメールして「いやあ!とてもいいですよ」とか言ってあげたり、「この辺を変えた方がいいよ」とか
言ってあげるのが本当ですよね。
中には当然開発するのにお金がかかっていますから、(開発ツールに*万円とか参考書に8千円とか、、、)
「ごめん!俺もこれ作るのにお金かかってるねん!俺もお金ないし悪いけど開発費だけは出してくれ」という気持ちで
シェアウェアになっているものもあります(フリーウェアとかシェアウェアなんて言葉は最近になってできた)
ですからオンラインソフトを使うときは「ああ言いもの使わさせていただいているんだな。僕は代わりのもの作れないけど
ありがたく使おう」という気持ちが大切です。