2
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?

More than 3 years have passed since last update.

MDCAdvent Calendar 2019

Day 19

【そも×2シリーズ】プログラムが動く仕組み~コンパイラの働き~

Last updated at Posted at 2020-01-05

#####◇記事を書いた動機
普段の業務ではJavaでプログラムをしていますが、ある日、コンパイルした時のJDKのバージョンと実行する時のJREのバージョンが異なっていたことでコンパイルエラーとなりました。そのとき、「そもそもコンパイルって何してるんだっけ?」とふと思ったので、調べてみました。

そもそもコンパイルって

コンパイルとは、プログラムソースファイルから実行ファイルを作成する処理のこと。
もう少し難しい言い方をすると、javaやC言語などの高級言語で記述されたソースコードをネイティブコード(*1)に翻訳すること。
そして、コンパイルを実行してくれるプログラムのことをコンパイラと言う。
コンパイラの中では、ソースコードとネイティブコードの対応表があり、それに基づきながらソースコードの字句解析/構文解析/意味解析を実施し、最終的にネイティブコードを生成する。また、コンパイラはプログラミング言語の種類によって専用のものが必要だが、CPUの種類によっても専用のものが必要になる。

(*1) ネイティブコードとは
マシン語のこと。難しい言い方をすると、コンピュータのCPU(MPU/マイクロプロセッサ)が理解できる形式で記述されたコンピュータプログラム。

#####◇感想・気付き
・コンパイルはプログラムを動かす上で重要な働きをしているが、そもそもソースコードからプログラムの実行まで、どのような仕組み・フローで制御されているのか知りたくなった。次回以降のトピックにしたい。

2
0
0

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
2
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?