のむログ

技術メモ / 車 / 音楽 / 雑記 / etc...

こちらは旧ブログになります。

新ブログはこちらに移行しました🙇

C言語 - Part.0:C言語とは

C言語とは

情報系の人間にとっては『耳タコ』なぐらい聞いたと思いますが、C言語とはコンピュータ言語(プログラミング言語)の1つです。

この言語を用いて、コンピュータを動かすことをプログラミングと呼びます。

コンピュータ言語とはたくさんの種類がありますが、C言語は現在も使われているプログラミング言語であり、最も有名で、古い言語の1つであると言えます。

言語 特徴
C 現在用いられている主要な言語で最も古い言語で、多くの言語のベースになっている。
C++ Cにオブジェクト指向を取り入れ拡張した言語
Java C/C++をベースにして開発された言語。スマホ(Android)やサーバーなどで使われている。
C# MS社がJavaをベースにして開発した言語。現在ではXamarinのようなクロスプラットフォームの開発言語として使われている。
Objective-C Apple社がCをベースに独自開発した言語。iPhoneやMacなどのアプリ開発に使われている。

What is コンピュータ言語?

低級言語/高級言語

そもそも、コンピュータが理解できるのは、コンピュータ専用の言語でマシン語(機械語)/低級言語(低水準言語)と呼ばれます。しかし、この言語は数字の羅列であり、とても理解できるものではないです。

イメージはこんな感じ(これはWindowsにあるマインスーパーの機械語) f:id:nomunomu0504:20190522101951p:plain

これを書いてプログラミングすることは現実的ではありません。そこで考え出されたのが高級言語(高水準言語)と呼ばれる言語です。C言語は高級言語の1つなのですが、低級言語よりの高級言語と呼べるかもしれません。

しかし、このままではコンピュータが理解できないので機械語に変換する必要があります。この方法には『コンパイラ方式』, 『インタプリタ方式』の2つの方法があります。

コンパイラ方式

コンパイラ方式とは、高級言語で書かれたプログラム全体を一括で機械語に変換して、実行ファイルを生成する方式です。 f:id:nomunomu0504:20190522103343p:plain

この方式では、実行可能ファイルをあらかじめ生成しておくので実行速度はインタプリタ方式と比べて高速です。

また、コンパイル時にプログラムの構文チェックを行うことができるので、エラーを事前に確認することができます。

言語として『C, C++, Java, C#』などがあげられます。

インタプリタ方式

インタプリタ方式とは、高級言語で書かれたプログラムを1行ずつ解析して機械語に変換し、実行していく方式です。 f:id:nomunomu0504:20190522103345p:plain

この方式では、実行速度はコンパイラ方式に比べて劣りますが、プログラムを逐次実行できるので、開発速度はコンパイラ方式に比べて早いかと思います。

ただ、構文エラーなどは実行してからしか分からないので、難しいところです...。

言語として『PHP、Ruby、JavaScript、Python』などがあげられます。

しかし、最近の技術進歩によって、両者の違いは無くなってきています。

Part.1 につづく

www.nomunomu0504.work

f:id:nomunomu0504:20190411151221p:plain:w0