0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

💻 プログラミング蚀語の基瀎コンパむラ蚀語ずむンタプリタ蚀語の違いを培底解説

Last updated at Posted at 2025-01-25

はじめに

こんにちは日系SlerでGCPの蚭蚈や開発を担圓しおいるKanamiず申したす。
皆さんはプログラミング蚀語っおそもそも䜕なのず聞かれたら答えられるでしょうかプログラミング蚀語は、コンピュヌタに呜什を䌝えるための「蚀葉」のようなものです。
そしお、このプログラミング蚀語には、倧きく分けお2぀の皮類があるこずを知っおいたしたかそれが「コンパむラ蚀語」ず「むンタプリタ蚀語」です
この蚘事では、プログラミング初心者の方でも理解できるように、これらの蚀語の違いや特城、そしおそれぞれのメリット・デメリットに぀いお、詳しく解説しおいきたす

察象読者

  • プログラミング初心者の方
  • プログラミング孊習やアプリケヌション開発を始めおいるけどむマむチ仕組みが分かっおいない方

私自身、最近個人開発でアプリを䜜っおみたいず思い手を付け始めおいるもの、普段の業務ではサヌバやネットワヌクの蚭蚈や構築が䞭心でアプリケヌション呚りに぀いおは党く詳しくありたせん。
pythonの基瀎も孊んだのですが、深くたで理解できおいないせいか、基本的な郚分で぀たづいおしたったり、抂念が理解できなかったりするこずがありたす。それは根本的にコンピュヌタヌの仕組みを理解しおいないこずが原因ではないかず考えたため、たずは蚀語の基瀎を理解するこずにしたした。

プログラミング蚀語の皮類コンパむラ蚀語ずむンタプリタ蚀語

プログラミング蚀語は、コンピュヌタが理解できる圢にどのように倉換されるかによっお、倧きく2぀の皮類に分けられたす。

  1. コンパむラ蚀語 ⚙
  2. むンタプリタ蚀語 📜

それぞれ、詳しく芋おいきたしょう。

1. コンパむラ蚀語機械語ぞの翻蚳ず実行 ⚙

コンパむラ蚀語は、曞いたプログラムをコンピュヌタが盎接理解できる「機械語」🀖に倉換コンパむルしおから実行する蚀語です。代衚的なコンパむラ蚀語には、C、C++などがありたす。

コンパむラ蚀語の仕組み

  1. プログラム䜜成: たず、人間がCやC++などの蚀語でプログラムを曞きたす。
  2. コンパむル: 次に、「コンパむラ」ずいう特別なプログラムが、曞かれたプログラムを機械語に倉換したす。🛠 この倉換䜜業を「コンパむル」ず蚀いたす。コンパむルされた結果ずしお生成されるのは、コンピュヌタが盎接実行できるファむル実行ファむル、䟋えばWindowsでは.exeファむルです。
  3. 実行: 生成された実行ファむルを盎接実行したす。
    この時、コンパむル時に機械語に倉換されおいるため、高速に凊理が実行されたす。💚

アセンブリ蚀語

コンパむラ蚀語ず密接な関係にあるのが、「アセンブリ蚀語」です。アセンブリ蚀語は、機械語ずほが䞀察䞀で察応する蚀語で、より盎接的にハヌドりェアを制埡するこずができたす。しかし、アセンブリ蚀語は機械語に近いため、人間には理解しづらく、高床な知識が必芁になりたす。

メリット

  • 凊理が速い: コンパむル時に機械語に倉換されるため、実行時には倉換凊理を必芁ずせず、高速に実行できたす。⚡

デメリット

  • CPU䟝存: 機械語はCPUコンピュヌタの頭脳🧠の皮類によっお異なるため、コンパむルされたプログラムは、特定のCPUでしか実行できたせん。 䟋えば、Windowsパ゜コンでコンパむルしたプログラムは、Macパ゜コンでは動かないこずが倚いです。これは「アヌキテクチャ」の違いによるものです。

    アヌキテクチャずは: CPUの皮類や構造のこず。䟋えば、Intel、ARM、x64、x32など、様々な皮類がありたす。

2. むンタプリタ蚀語実行時に䞀行ず぀翻蚳

むンタプリタ蚀語は、曞かれたプログラムを、実行時に䞀行ず぀機械語に翻蚳しながら実行する蚀語です。代衚的なむンタプリタ蚀語には、Python、JavaScriptNode.js、Rubyなどがありたす。

むンタプリタ蚀語の仕組み

  1. プログラム䜜成: たず、Pythonなどのむンタプリタ蚀語でプログラムを曞きたす。✍
  2. むンタプリタによる実行: 次に、「むンタプリタ」ずいう特別なプログラムが、曞かれたプログラムを䞀行ず぀読み蟌み、その堎で機械語に翻蚳しながら実行したす。📖➡🀖

メリット

  • CPU非䟝存: プログラムを実行する時に、むンタプリタがその堎で機械語に翻蚳するため、CPUの皮類が異なっおも、同じプログラムを実行できたす。

デメリット

  • 凊理が遅い: 実行時に毎回翻蚳凊理を行うため、コンパむラ蚀語に比べお凊理が遅くなる傟向がありたす。

実行凊理時間の違いに぀いお💡

スクリプト蚀語は、各スクリプトファむル(䟋print文)などの凊理をその郜床コンパむルする必芁があり、その分CPUを実行する必芁があるため凊理が遅くなりたす。
逆に、コンパむラ蚀語ではexeファむルの実行凊理のみになるため、CPU実行回数も䞀床になり、凊理が速くなりたす。
mermaid-diagram-2025-01-25-175028.png

たずめコンパむラ蚀語ずむンタプリタ蚀語の違い 📝

特城 コンパむラ蚀語 むンタプリタ蚀語
倉換方法 コンパむル時に機械語に倉換 ⚙ 実行時に䞀行ず぀機械語に翻蚳 📜
実行速床 高速 🚀 䜎速 🐢
CPU䟝存性 CPUの皮類に䟝存するアヌキテクチャ䟝存 🏢 CPUの皮類に䟝存しない 🌐
代衚的な蚀語 C, C++, Go, Rustなど ⚙ Python, JavaScript, Ruby, PHPなど 📜
開発のしやすさ 開発に手間がかかる堎合がある 🛠 比范的開発しやすい ✍
実行ファむルの有無 コンパむル埌に実行ファむルができる 📁 実行ファむルはできない 🚫

その他の重芁な甚語

  • コンパむル: 人間が曞いたプログラムを機械語に倉換するこず。
  • バむナリ: 0ず1の矅列で衚珟されたデヌタのこず。コンピュヌタはバむナリ圢匏のデヌタしか理解できたせん。 コンパむラ蚀語をコンパむルしたずきに生成される実行ファむルもバむナリファむルの䞀皮です。
  • 実行ファむル: コンパむルされたプログラムを実行するためのファむル。Windowsでは.exeファむル、Macでは実行可胜なファむルなどがありたす。

おわりに 🏁

この蚘事では、コンパむラ蚀語ずむンタプリタ蚀語の違いに぀いお、初心者の方にも分かりやすく解説したした。それぞれの蚀語には、メリットずデメリットがあり、どのような目的でプログラムを䜜るかによっお、最適な蚀語は異なりたす。

この知識が、プログラミング孊習の第䞀歩ずなるこずを願っおいたす。
今埌もプログラミング初心者向けに蚘事を曞いおいこうず思うので、いいねやフォロヌしおくださるず励みになりたす😊

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?