プログラミング言語-その②

プログラミング

こんにちは。さんたくです。

前回、インタープリター方式の言語の一部を紹介しましたが、今回はコンパイル方式の言語を一部紹介していきたいと思います。
※IT講座記事一覧はこちら

スポンサーリンク

プログラミング言語の種類

プログラミング言語の種類というよりはそのコンパイル(機械語への翻訳)や実行方式の種類を上げていきます。
前回も記述してましたが、昨今は技術の進歩とともに境が曖昧になっているような気もしますが、わかりやすくするために分けていきます。

コンパイル方式


コンパイル方式ではなくコンパイラのWikiですが、説明としては以下。

高水準言語によるソースコードから、機械語に(あるいは、元のプログラムよりも低い水準のコードに)変換するプログラムである。

これをコンパイル方式に置き換えていくと…
インタープリター方式とは違い、実行前にソースコード(プログラム)を実行できるようにコンパイル(機械語翻訳)することになります。
事前にコンパイルが必要な言語ということで、実行環境とは別に開発環境を用意してコンパイルを実施しないとプログラムが動かないので、環境用意に少し手間取るかもしれない。
コンパイル方式はDLLやJar等ライブラリ形式にもコンパイルすることが出来るため、モジュール毎に構成を分けていれば修正した際にすべてのプログラムをコンパイルする必要がなくなる便利さも持っている。

そのコンパイル方式の中でも代表的な言語とその特徴をあげていきます。

JAVA



前の記事に載せてますが、検索プログラミング言語第1位に入っているメジャーな言語です。

Oracle社が提供しているオープンソースのプログラミング言語です。
マルチプラットフォーム(OS)を謳っており、ライブラリ(JDK、JRE等)が各プラットフォーム毎に提供されている。
長年利用されている言語であるがゆえにライブラリ、フレームワームも充実しており、利用用途によって選択の難しさもあるが、大抵のことはこなせる言語なので使い勝手はよい言語です。。

WEBアプリケーションのみならずWindowsアプリ、スマートフォンアプリを様々なアプリケーションを構築できる言語であり、色々なアプリを作成したい方にはうってつけの言語であると思いますが、
個人的には結構癖のある言語だと思うので、初心者の方にとっては合う合わないがはっきりする言語だと思います。

WEBアプリのようなシステムではなく大規模なシステム(基幹システム等)を構築したい方にはおすすめの言語だと思います。

C言語


これも検索ランキングの2位の言語ですね。

ただ、ほかの言語と違って人気な理由が少し違ってます。
1.高級言語の扱いではあるけど、低級言語の側面も持つ
これはOSやドライバ等、よりハードウェアに近い処理を作ることが可能であり、それが人が使う言語に近い形で記述できるということです。
2.現在普及している高級言語のほとんどがC言語の影響を受けている
C言語に影響を受けたプログラミング言語は非常に多く、C++、Java、Objective-Cなどがあげられます。
awk、csh、JavaScript、PHPなど多くのスクリプト言語もC言語の影響を受けており、C言語を理解、学習しておけば他のプログラミング言語の学習が容易になります。
※管理人はC言語からプログラムの世界に入りました。

C言語については単独でWEBアプリケーションは作成できませんが、できることがかなり広く高速なアプリケーションを作成することが可能です。
またC言語自体は多く使われている言語ですので参考文献、サイトが多数あるので、勉強するのには事欠かないと思います。
おすすめは猫でもわかるプログラミング C言語編ですかね。

またC言語の習得は難しく、他の言語では制御できない領域を制御できるので設計が難しいです。
※個人的にPHPと比べると倍ぐらいの時間と考えが必要だった気がします。(後で紹介するC++はもっと難しいですが…)

裏を返せばC言語を習得できるようになれば他の言語では学べないようなプログラムがなぜ動くのかコンピューターはどう動いているのか等を学べるため、IT業界で働いていきたいという方は覚えておいて損はない言語だと思います。

C++


これも検索ランキングの4位の言語ですね。
元々はC With Classes(クラス付きC言語)という名前で作成されており、下記からもわかるようにC言語の上位互換の言語となります。

C言語に、オブジェクト指向プログラミングをはじめとする様々なプログラミングパラダイムをサポートするための改良が加えられたものといえる。ただし、他のプログラミング言語と違い、旧来のCと同様に手続き型言語としても扱えるという特徴がある。このことから、C++をbetter Cというふうに呼ぶことがある。すなわち、基本的にC言語に対して上位互換性がある。

C++は様々なパラダイムに対応したプログラミング言語で構造化プログラミング、オブジェクト指向プログラミング、ジェネリックプログラミングを可能としている言語であり、先ほど上位互換いうことを記述したと思いますが、C言語と互換性があるので合わせて使われることが多い言語でもあります。

C++もC言語同様習得が難しく、C言語よりも難しい言語ではないかと思います。
※管理人的に高級言語の中では1番難しいと思ってます。
 1番はアセンブラですね…

C#


これも検索ランキングの6位の言語ですね。

Microsoftが2000年に提供を開始した言語です。
ガベージコレクションにより自動メモリ管理やオブジェクト指向プログラミング等、C++、Javaのいい所を継承しつつ、現時点(2018/10)まで様々な改良がくわえられており、使いやすい言語となっている。

元々はWindows プラットフォーム用の開発言語としてC/Sの業務アプリケーション構築が得意だったが、現在ではJavaと同じようにマルチプラットフォームに対応しているコンパイラが提供されていることにより、プラットフォーム問わず、開発できるようになっている言語です。
Windowsに限らず、Android、iOS、最近ではLinuxでも実行することが可能となりました。

Microsoftが提供している言語ということもあり統合開発環境(IDE) visual stadio(VS)がMicrosoftから提供されている。
※昔は有償だったが、今は無償の開発環境も存在する。

VSはデザイン生成をGUIですることが可能なので、Windowsアプリ、WEBアプリ共に基本的なデザインはドラッグ&ドロップで作成することが可能です。
※WEBアプリケーションについてはあくまで配置のみができるようになるだけなので、コードで生成していく方が綺麗にできます。

Windowsを使用している方はすでに実行環境が整っている状態なので、VSをインストールすればすぐに環境が構築することが可能となるため、非常に手が出やすい言語だと思います。

まとめ

内容が薄いうえにわかりにくい状態になっているかと思いますが、2回にわたってプログラミング言語を紹介してきましたが、プログラムをやったことがない、または少しかじった程度ぐらいの方でこれから仕事にしていきたいと思っている方は遠回りかもしれませんが、まずはC言語の習得をお勧めします。
そうすれば論理的思考、アルゴリズム、情報処理能力等SEになる上で必要な能力は勝手に上がっていくと思います。

次回のIT講座は何をしていくか考え中ですが、資格関連の情報をまとめようかと思ってます。

それではまた次回!

ではでは~(*´ω`*)

コメント

タイトルとURLをコピーしました