プログラミング言語って何???
人間がコンピュータに命令をするために作られたもので、コンピュータが曖昧さなく解析できるように設計されています。
プログラミング言語の大まかな分類
ここでは、プログラミング言語がどのようにプログラムに対してアプローチするかや、具体的なプログラミング言語の種類を見ていきます。
プログラミングパラダイムによる分類
プログラミングのプロセスにどのようにアプローチするかという方法論のことである。
手続き型パラダイム(命令型パラダイム)
問題を解くアルゴリズム(手順)を発見した上で、そのアルゴリズムを一連の命令列として表現する
宣言型パラダイム
問題をを解くのにすでに確立されている汎用問題解決アルゴリズムを適用する
関数型パラダイム
単純な関数の入れ子になった組み合わせとしてプログラムを表現する
オブジェクト指向パラダイム
プログラムを複数のオブジェクト(物)の集まりとして捉えプログラムを表現する
その他の分類
機械語(マシン語)
コンピュータが直接理解できる唯一の言語 (基本的に2進数で表記される)
アセンブリ言語
CPUなどのプロセッサが理解できる機械語と1対1で対応する言語。
コンパイラ言語
一括して実行可能な形式(機械語)に変換するタイプの言語
例)C、FORTRAN
インタプリンタ言語
実行可能な形式(機械語)に変換しながら実行するタイプの言語
例)Java、Bacic
高級言語
より自然言語に近く人間が理解できる言語
低級言語
より機械言語に近くコンピュータが理解できる言語
具体的なプログラミング言語の種類
C言語(ゲーム、組み込み、教育など)
メモリの内容操作など通常なら低水準言語が取り扱うようなハードウェアに近い部分の制御まで記述できる自由度も持っている
C++(ゲーム、組み込み、教育など)
C言語のように手続き型でのプログラミングもできる
オブジェクト指向型言語、C言語の上位互換
C#(Windows, Web, モバイルアプリ開発)
Windowsで使われている.Net Frameworkにおいて標準とも言える言語
Objective-C(iOS, macOSのアプリ)
現在はSwiftへの憩いうが進みつつある
Java(業務システム、Androidアプリ、Webアプリ)
どのコンピュータ環境においても共通のプログラム実行環境を提供するため、環境別にJava仮想マシンが用意されており、個別のJavaプログラムはこの仮想マシン上で動作する。
FORTRAN(科学技術計算)
最初の高水準言語。長年使われているため、多くのソフトウェア資産の蓄積がある
COBOL(事務システム、業務システム)
英語に近い文法を持っているためプログラムの読みやすさが高いのが特徴
BASIC(教育)
センター試験でも使われた初心者向けのプログラミング言語
Perl(Webアプリ)
文字列処理が得意で、Webアプリケーション開発の現場で多く使われている言語
PHP(Webアプリ)
動的なWebページを容易に作成できる。HTMLに埋め込んで記述でき、このプログラムはWebサーバ側で実行される。Webサーバに置かれたPHPで記述されたプログラムは、ブラウザでアクセスすることでWebサーバの上で簡単に動作させることができる
JavaScript(Webブラウザ)
PHPのようにHTMLに埋め込んで、ブラウザでの表示内容を制御することができるがプログラムの実業処理は基本的にはブラウザ側で行われている。サーバー側で実行されるWebアプリケーションの開発や、Webアプリケーションの技術を応用したデスクトップアプリケーションの開発にも使用される
Ruby(Webアプリ、教育)
日本人が開発。Perlの代替として、UNIX上で簡単な処理を行うスクリプトを記述するのによく使われる。Rubyによって記述されたWebアプリケーション開発フレイムワークであるRuby on Railsto共に、Webアプリケーション開発においても普及している
Python(Webアプリ、データ分析、人口知能)
文法を単純化して、プログラムの可読性を上げることで効率的な開発が行えるようになっている一方で豊富なライブラリによって機能を拡張することで、科学技術計算かたUNIXシステムの管理、Webアプリケーションなどの幅広い分野で利用されている
シェルスクリプト
シェルスクリプトとはLinuxなどのシェルで実行するコマンドなどがまとまったドキュメントのようなもの
AWK(文字列処理)
CSV(コンマ区切り)やTSV(タブ区切り)といったテキストファイルを処理するのに適した言語。入力されたデータのパターンに対して、どのような処理(アクション)を実行するのかを記述する。入力そ行単位に読み込んで、その行がパターンにマッチするかどうかを調べ、マッチした場合に処理を実行する。
sed(文字列処理)
コマンドラインで文字列を置換する正規表現の活用で一括変換を実現する。入力されたテキストデータに対し、行単位でテキストの内容を変換し、標準入力に出力する。文字列の置換が中心のために、入力された文字列をsedで整形してから、awkで処理する、といった使い方が多い
bc(計算)
コマンドラインで使う計算機!?
巨大な数でも計算できる言語
Go(Webアプリ)
言語仕様が簡単で覚えやすく、高速に処理できる
Kotlin(Androidアプリ)
Googleが採用した。Android開発環境として普及が期待
R(統計分析)
ベクトルや行列を用意に処理できる仕組みが整っている。
データ分析やグラフ描画が可能
SQL(リレーショナルデータベース)
誕生から40年経っても、色あせないデータベース操作言語
データを1件ずつ処理するというよりも、データの集合に対して行うイメージで処理を行う。
Swift(iOSやmacOSアプリ)
スクリプト系言語などの多くの言語の特徴を生かしており、Objective–Cに比べて学習コストが低いとされている
プログラミング言語を学びたい人に向けて
初めてプログラミングを学びたい人は、C言語がオススメです。
理由としては、C言語は、たくさんのプログラミング言語の元になった言語なので、C言語を学ぶことによって、これからの基礎づくりができます。