Bim or Vim

Java 入門 #00 [プログラミング言語とは]

2017/12/08 13:30 投稿

  • タグ:
  • Java
  • プログラミング講座
  • プログラミング
どうも。Bimです。

今回からJava言語を習得していきいましょう。
Java言語はプログラミング言語の一つで世界で広く様々な場面で使われている言語です。
まずは、Java言語を学ぶ前にプログラミング言語について学んでいきましょう。

プログラミング言語とは

コンピュータに対する命令を記述するための言語です。
コンピュータを動かすためにはCPU(コンピュータの頭脳)で実行するプログラムの命令が必要です。
パソコンの構造に関してはこちらのページを見てもらえたら良いかと...
人間と人間がやり取りをする場合、私たち(日本人同士)は"日本語"という言語でやりとりをします。
それと同じで、人間とコンピュータの場合がやりとりをする場合に用いる言語がプログラミング言語です。
また、世界には色々な"言語"がありますね。(英語、フランス語、韓国語、中国語...)
プログラミング言語にも、色々な種類があってその一つが"Java言語"という言語になります。

しかし、初期の頃のプログラミング言語は機械ごと呼ばれる0と1だけを羅列したとても分かり辛い物でした。
なので、人間でもわかりやすいようにプログラミング言語も改良を経て、アセンブリ、FORTRAN、LISP、COBOL、C、JAVA、C#、Pythonといった言語が開発されていったわけです。

プログラミング言語は大きく2つの種類に分けることが出来ます。
機械語やアセンブリ言語は、よりハードウェアに命令を渡すのに近い言語です。
CPU特有の命令を使えたり、メモリの操作など他の言語では出来ないことも出来てしまいます。
しかしどちらかと言えば、人間には分かりづらい言語です。
こういった言語を"低水準言語"と言います。

もう1つは、"高水準言語"です。
こちらは、比較的人間にとってわかりやすいように記述することができるプログラミング言語です。
また、低水準言語ではCPUの種類によって(厳密には違いますが)書き方が違いますが、高水準言語は、基本的に一緒です。
C、C++、C#、Java、Pythonなど、現在では様々なプログラミング言語が生まれています。

また、言語が劣っているから低水準というわけでは無くて、ソフトウェアの階層構造を考えた場合に、ハードウェア寄りに位置するので低水準と言っています。

Java言語とは

Java言語は、サン・マイクロシステムズ社が1995年に開発したプログラミング言語です。
主な特徴としては、どのOSでも動くように設計されています。
"Write Once, Run Anywhere"(1度作成すれば、どこでも実行ができる)というのを理念としています。
また、オブジェクト指向プログラミング(後に習います)を取り入れた言語です。
なぜ、Java言語なのかと言うと、元々の名前は"Oak"という名前でしたが、商標を調べたところ既にOakという名前が他の会社に使われていた為、Javaという名前に変更されました。
Javaの由来に関しては、ハッキリとした資料がないのですが、
開発チームのメンバがよく昼食時に通っていたカフェのメニュー説が有効じゃないかと。

※補足(初心者の方は読まなくても良いです)
実際に、中間言語のバイトコードは最初の4バイトが'0xCAFEBABE'となっているんです。
それに関してジェームズ・ゴズリンさんが説明してくれています。

先程、JavaはどのOS(実行する環境)でも動くと説明しましたが、その理由は"JVM"のおかげなのです。
JVM : Java Virtual Machine(Java仮想マシン)とはJavaのプログラムを動かすためのソフトウェアで、Javaで作ったプログラムを実行します。
C言語などの場合だと、プログラムから実行ファイルを生成しOSが実行します。
なので、OS毎に動く場合と動かない場合があります。
Java言語の場合、プログラムからバイトコードと呼ばれる、JVMが実行するようの命令を書いたファイルを生成して、それを"JVMが実行"します。
このJVMが最終的にネイティブコードと呼ばれる、OSが実行するようの命令を書いたファイルに変換する事によって、色々な環境で動くようになっています。
まぁ、ざっとまとめてしまうと、JVMがOS毎の違いを吸収してくれるからどの環境でも動かせることができる。という感じですかね?




さて、先程変換と言いましたが、その"変換"を今度は触れていきたいと思います。
Javaは高水準言語、即ち人間がわかりやすい言語、言い換えれば"機械がわかりにくい言語"です。
でも、実行する担当者は人間ではなく、コンピュータです。
なので、最終的に実行する際にコンピュータがプログラムを理解してくれてないと困るのです。
国同士での対談のとき、他国の話を国のトップが理解できなければ意味がないですよね。
そこで、通訳の人が必要なのです。(格好だけで本当は通訳いらないらしいと言う噂も...)

人間とコンピュータ間でも通訳をしてくれる役割を果たしてくれるものが必要なのです。
その通訳の役割を果たしてくれるのが、"コンパイラ"というソフトウェアです。
コンパイラは人間が理解しやすい言語で書かれたプログラムを、コンピュータのCPUが直接的に実行できる機械語あるいは、もとのプログラムよりも低水準な言語に変換してくれます。
そしてこの変換作業を行うことを"コンパイル"と言います。
※この講座内でも、頻繁に"コンパイルしてください。"と言います。
※これは要するに変換作業を行ってくださいと言っています。





それでは、Javaの概要はここら辺までにして、
次回からはJavaの環境を構築する作業をしていきたいと思います。

その上で、前提事項があります。
本講座のJava実行環境はWindowsでもMacでもなく、Linuxでやっていきます。
しかし、場合によっては操作などが異なる場合が有るかもしれないので、その分の解説は載せるつもりですが、乗っていなかった場合にはコメントか、Twitter、メール連絡フォームからお問い合わせください。

また、Javaのプログラムを効率よく記述するために"テキストエディタ"というソフトウェアを使っていきます。
まぁ、プログラミングをするのに適したメモ帳みたいなものです。
もう少し正確に言うなら、文章を編集するのに特化したソフトウェアです。
私は、"Vim"を使っていきます。
しかし恐らく、Javaの"入門講座"なので、入門者が多いかと思うのでVimはあまりおすすめ出来ないです。(操作方法など色々癖が強いので...)
最初の内は、Notepad++TeraPadAtomSublime Textサクラエディタ、などがオヌヌメです。
それで、ある程度慣れたら、自分にあったテキストエディタを探してみることをおすすめします。(最初は機能がシンプルでわかりやすい(操作しやすい)テキストエディタを使ってみましょう。
特にシンプルなのは、TeraPad、Notepad++、サクラエディタです。
Macだと、miCotEditorです。

また、私の動画でも色々なエディタを紹介した動画がありますので、参考にしてみてください。(宣伝乙ww)



今日はここまで。お疲れ様でした。

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事