第1回 プログラム言語の種類

作成日:2014-10-14 / 更新日:2019-02-12

1. 概要

独り言によるプログラミング講座「第1回 プログラム言語の種類」です。
動画で、マシン語、C言語、C++、C#、Java、PHPなどの言語の種類について説明しています。

言語概要
マシン語(機械語)CPUが唯一実行できる言語(数値の集合。数値に機能が割り振られている)
アセンブリ言語数値の集合であるマシン語を、人間にわかりやすい言葉を使って書けるようにした言語。アセンブラを使ってマシン語に変換(アセンブル)して実行する。
C言語高級言語(人間にわかりやすい言語)。低レベルな処理が書けたり、高速に動作する反面、後発の言語に比べると、メモリ管理などを自分で行う必要があり、他の言語に比べると難しい。プログラムはコンパイラを使ってマシン語に変換(コンパイル)して実行することが多い。
BASIC習得が簡単。昔は C言語に比べると、実行できる処理が限られ、インタープリタ型(プログラムをマシン語に変換せずに1行ずつ処理して実行)が多かったため、動作も遅かった。現在はコンパイルしてから実行することもでき、動作が速い。VB.NET ではライブラリも豊富なため、ほとんどのことが行える。
Pascal習得が簡単。コンパイルして高速に実行できる。Borland社 から Turbo Pascal、Delphi、Kylix などのコンパイラが発売されていた。
C++C言語を拡張してオブジェクト指向に対応した言語。言語名の「++」はC言語の 1 を加算する演算子のこと。
Javaオブジェクト指向に対応、C言語で必要だったメモリ管理などを不要にした言語。Webアプリ、Androidアプリなどの開発で使用されている。プログラムは中間言語に変換され、仮想マシンと呼ばれるソフトを使って実行される。仮想マシンがインストールされていれば、どの OS でも動作する。
C#C言語を Java っぽくした言語。コンパイルすると中間言語に変換され、プログラム実行時に .NET Framework と言うソフトでマシン語に変換されて実行される。.NET Framework がインストールされていないと動かない。
スクリプト言語簡易的な言語の総称。プログラムを解析しながら実行するインタープリタ型が多く、コンパイル形式に比べると動作が遅い。コンパイルが不要なため、プログラムを書き換えて即座に実行できる。
Perl スクリプト言語。Webアプリ開発でよく使用されている。日本でインターネットが普及し始めた頃の掲示板(BBS)などは、Perlで作られることも多かった。
PHP スクリプト言語。Webアプリ開発でよく使用されている。HTML の中に直接プログラムを書けるようにした言語。ブラウザで直接実行することはできない。PHP は Web サーバで実行し、その実行結果(HTML)をブラウザに返して表示します。
Ruby スクリプト言語。Webアプリ開発でよく使用されている。まつもとゆきひろ氏によって開発された言語。Ruby 用の Web フレームワークとして、Ruby on Rails がある。
Pythonスクリプト言語。Webアプリ開発でも使用されますが、ライブラリが豊富にあるため、ディープラーニングの分野で注目されています。
Gogoogleが開発した言語。クラスがないため、継承もない。C言語っぽい。有名なところで、Docker が Go で開発されている。
JavaScriptブラウザで動作するスクリプト言語。Java とは全く関係ない。現在は、サーバなどのブラウザ以外の環境でも使用されている。
TypeScriptマイクロソフトが開発した、JavaScript の上位言語。ブラウザでは直接実行できないため、事前に JavaScript にトランスパイルする必要がある。最終的には JavaScript として実行される。
Scala関数型言語の特徴を持つ。Java と同じ中間言語に変換されるため、Java が動く環境であれば、Scala のプログラムも動く。
Kotlinコトリンと言う可愛らしい名前の言語。下位互換を維持しながら拡張し複雑になってきた Java を一気に見直して、いいとこ取りした言語。Java と同じ中間言語に変換されるため、Java が動く環境であれば、Kotlin のプログラムも動く。

2. 動画


3. 動画の中で書いたテキスト

■プログラム言語の種類

・機械語 = マシン語
CPUが唯一理解できる言語

具体的には、
A0 35 A1 45 ・・・数値羅列 16進数表記 0~9,A~F

・アセンブリ言語
マシン語が1対1で対応
人間にわかりやすい

具体的には、
MOV AL, 35 ---> マシン語 A0 35

アセンブリ言語のソースを、
アセンブラ(変換ソフト)で、
アセンブル(変換処理)して、マシン語にする。

・C言語
ライブラリ豊富
関数 sin() cos()
さらに人間にわかりやすい

C言語のソースを、
コンパイラ(変換ソフト)で、
コンパイル(変換処理)して、マシン語にする。
動作が速い

・BASIC言語
さらに人間にわかりやすい
習得が簡単
インタープリタ型

BASIC -> 解釈する人 -> CPU
動作が遅い

・C++
C言語を拡張した言語
オブジェクト指向 -> さらにさらに人間にわかりやすくなった。

・Java
C言語を拡張して、オブラートにつつんだ言語
オブジェクト指向
低レベル操作の廃止

Webアプリ(企業向け)、Androidアプリ

どのOSでも動く
Java -> 解釈する人(VM:仮想マシン) -> CPU

・C#
C++を拡張した言語
Javaに近い(低レベル操作の廃止)
安全

・PHP / Perl / Python / Ruby
Webアプリ言語
インタープリタ型
動作が遅い
サーバ側動く

・JavaScript
Javaとは別物。田中さんと中田さんぐらい違う。
クライアント側(自分のPC側)で動く
オブジェクト指向

■最初に学ぶ言語
C# Windowsアプリ作る
PHP Webアプリ(個人向け)
Java Webアプリ(企業向け)、Androidアプリ
JavaScript