プログラムとは?
• コンピュータに対する命令(処理)を記述したものである。
• コンピュータはプログラムを理解できないため、理解できる言葉(機械語)に変換される。
• プログラム言語によって、変換方法の違いがある。
1) 全て変換してから実行する … コンパイラ
コンパイラを使用するプログラム言語:C, C++, Objective-C
2) 変換しながら実行する … インタプリタ
インタプリタを使用する言語:JavaScript, Python, Ruby, PHP
3) 中間言語(※)に変換したものを、機械語に変換しながら実行する。
中間言語を使用する言語:Java, C#, VB.NET
※ プログラム言語と機械語の間となる言語。コンパイラも実際には中間言語に変換してから機械語にしている。
C/C++/C#/Objective-C
• C
メモリ操作、インラインアセンブラなど、低水準な処理を利用できる。
言語仕様の小ささ(※)、汎用性の高さから、さまざまなもので利用されている。
※ C言語自体には文字列操作、入出力などの機能はない。標準Cライブラリとして用意されている。
• C++
Cを拡張した言語である。C言語との互換性は保証されない。(※)
拡張された内容としては、クラス、仮想関数、多重定義、多重継承、テンプレート、例外処理がある。
※ C言語で書いたものをC++としても大抵は動くが、規格としては保証されない。
• Objective-C
Cにオブジェクト指向機能を足した言語である。
オブジェクトのメソッド呼出しはメッセージ式で行われる(※)
※ メソッド呼出しの例
fooクラスのbarメソッドを呼び出す場合
C++:foo.bar
Objective-C:[foo bar]
• C#, VB.NET共通
C#, VB.NETには、共通言語基盤 (CLI) が使用される。
共通言語基盤 (CLI) の目的は、言語に依存しない開発環境および実行環境を提供するためである。
• VB.NET
C++やJavaに比べて自然言語(※)に近いため、 初心者にもわかりやすい。
VisualBasic6.0との互換性はない。
※ 普段話したり書いたりする言語。例:日本語、英語。
• C#
C/C++にさまざまな機能を加えて使い勝手を向上させている。
例えば、C/C++で起こりがちなメモリリークは、メモリをガベージコレクタ(※)によって解放することで防いでいる。
※ プログラムが確保したメモリ領域のうち、不要になった領域を自動的に解放する機能。
Java
• 構文はCおよびC++から多くを引き継いでいる。
• クラスベースのオブジェクト指向プログラミング言語である。
プログラムの実行は、各クラスを実体化したオブジェクト群が、相互にメッセージをやりとりしながら行われる。
• 中間言語にコンパイルされ、仮想マシンの上で動作する。
これにより、プラットフォームに依存しないアプリを開発できる。
• Javaはサンマイクロシステムズが開発した。
サンマイクロシステムズがオラクルに買収されたため、 現在はオラクルが開発している。
JavaScript
• 名前が似ているが、Javaとは全く別の言語である。
• 実行環境がウェブブラウザに実装されていることが多い。(※)
動的なウェブサイト構築や、リッチインターネットアプリケーションなど高度なユーザインタフェースの開発に用いられる。
• 仕様はECMAScriptとして標準化されている。
• 登場初期はブラウザによって仕様がバラバラだったため、実用的ではないとされていたが、標準化されたこと、非同期通信が実装されたことで、実用的なアプリをHTML+CSS+JavaScriptで作成可能
ということが判明してから注目された。
Python
• C言語などで同じ機能を実装するより、少ないコード行数で書ける。
• インデント/改行が構文規則として決められている(※)ため、プログラムの書き方が、ほぼ統一したものになり、読みやすくなる。
※ たとえば、インデント/改行が構文規則として決めれていないC言語では、一切インデント/改行を入れずに書いてもエラーにならない
• 設計がきれいでドキュメントが充実しているため、最初に学ぶ言語として挙がることが多い。
• 実際の開発では、フレームワークを使用する場合が多い。
• Python2.xとPython3.xでは、相違点が多い。
Python2.xでは動いていたアプリが、Python3.xにバージョンアップすると動かなくなることもある。(※)
※ “2to3”というパッケージを使って変換する。
Ruby
日本人(まつもとゆきひろ氏)によって作られたプログラム言語である。
日本で作られたプログラム言語としては初めて国際電気標準会議で国際規格に認証された事例となった。
• 整数や文字列などのデータ型が、すべてオブジェクトとして扱われるため、純粋なオブジェクト指向言語と言われる。
• 仕様が頻繁に変わるため、前のバージョンでは動いていたものが動かなくなることがよくある。
PHP
• サーバサイドで動作するスクリプト言語として利用されている。
• Webサーバ(※)から一般的なインターフェイスを通して実行する。
• サーバサイドWebアプリケーションを作成する際に必要な機能があらかじめ用意されている。
• データベースにアクセスする機能も用意されている。
• PHPをWebサーバで動作させる方法
1)実行ファイル形式 (CGI / FastCGI)
2)モジュール形式(mod_php / ISAPI など)
※最新の情報の取得・更新に努めておりますが、掲載内容については、その正確性、完全性、有用性、最新性等についていかなる保証もするものではありません。