IT

プログラミング言語について

2020年11月23日


プログラミング言語っていろんな種類があるよねー!

そうだね!でもプログラミングってどれがどういう言語なのかわからないよね・・・

ITについて勉強している日々なのに、そういえばプログラミングってどんなものがあって、種類で分けたらどんな種類に分けられるのか考えたことがあまりなかったので、自分なりに考えて考察してみました。

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

いろんな言語の区別の仕方がある

・低級言語と高級言語
・スクリプト言語と、コンパイラ言語

スクリプト言語は1行ずつ実行してその都度コンパイルが走り、CPUが理解できる機械語に変換をかける。そのため、

実行時間が遅くなる。

コンパイラ言語は、実行する前に一回プログラムをコンパイラして一括機械語に変換をかける。それにより実行すると高速で動くというメリットがある。
代表的な言語はc言語やjava、c++である。
低級言語と高級言語は、なんだかこの言語はあんまりよくない言語で、高級言語はめちゃくちゃ使うのに費用のかかる高級な言語とかそんなことではなくて、
簡単にいうとメモリ(メインメモリ)に近い言語かどうか?
→ よくわからないかもしれないが、要はメモリを簡単に操作しやすいかどうかの違い。
通常、phpなどのプログラムは実行するとメモリに格納される。そして実行するときはメインメモリにそのプログラムや処理に必要な変数/データを移動させる。
つまり階層としては、プログラムを実行する処理装置であるCPUから近い順に並べると、CPU ⇄ メインメモリ(主記憶装置) ⇄ フラッシュメモリ ⇄ HDDやUSBメモリなど。
この順につまり処理をする場合はメインメモリに必要なデータをおいて、そしていらないものはフラッシュメモリに移行したりする。
c言語では、このメインメモリを直接扱うことのできる言語である。phpなどは直接メインメモリを扱うことのできない言語であり、ここで低級と高級で分けることができる。
(憶測だけど、c言語ではコンパイルすると.exeファイルが作成される。php.exeなどもあるのでphpなどの言語はコンパイルされたものをパスを通すことでphpコマンドが使用できるなどがあるのかな?)
ただ結局難しいと言われる由縁が常に、メインメモリを考えながらプログラムを実行しないといけない点である。
phpなどの言語では、自動的に使用しなくなったメモリは解放(ガベージコレクション)を行っていく。
しかし高級言語という言語たちは、メインメモリがいっぱいになっても自動的に解放することはなく、メモリが足りないというエラーを出す。そのため、自らメモリも確認しつつ、どこでint型の変数の箱や、文字列型の変数の箱を用意するかを考えないといけない。これによりフラグメンテーションがおき、空いている場所でもところどころにメモリの空きスペースができ、入れたい型の箱を連続で作成することができなくなる危険性がある。
javascriptは実は関数も第一級変数で、変数の中に関数を入れることもできる。つまりオブジェクトとして関数を使用することができ、
ちなみに、オブジェクトclassというものもあるので、javascriptはどんなものもオブジェクト化することができる言語である。

これが全てでないと思いますが、プログラミング言語って本当に性質で特徴が違うんだなーってしみじみ思いました

-IT
-

© 2024 Yosshi Labo. Powered by AFFINGER5