ソースコードがコンパイルされて機械語となりコンピュータに実行されていく様子を観察してみましょう

ソーラー「ソースコードがコンパイルされて機械語となりコンピュータに


実行されていく様子を観察してみよう」



一体ソースコードがコンパイルされると


どのようなことがおこっているのでしょうか?


ちょっと楽しみですね。


次のソースコードがエディタに記述されているとしましょう。


#include <stdio.h>


int main(void){

printf("にゃ~ん\n");

return 0;

}


このソースコードはコンパイルされると


🍎#include <stdio.h>🍎の部分と


🍋

int main(void){

printf("にゃ~ん\n");

return 0;

}

🍋

の部分が分割されて機械語に翻訳されます。



🍎#include <stdio.h>🍎の部分が

機械語

101010000101111000011000011101000010010101000011101100010101010010101011101110000001001010101010101010000010101010101010100110101010010101010101010010101010101010010101010101010010010

111000に



🍋

int main(void){

printf("にゃ~ん\n");

return 0;

}

🍋

の部分が

機械語

11010101111101010000101010101010101011010100100010101000101010101010101010000010101010101010101010101010101000100101011111110110111100010000000010101010101010100101010011111111111111111111111100000101010101010100に


という具合にです。


ヘッダファイルの含まれる

🍎#include <stdio.h>🍎の部分は



🍋

int main(void){

printf("にゃ~ん\n");

return 0;

}

🍋

の部分とは別に


統合開発環境のコンパイラに含まれる


C言語標準ライブラリの

ヘッダファイル<stdio.h>

を参照して

機械語に翻訳されます



これらの翻訳された機械語プログラムは

オブジェクトファイルとよばれます。



#include <stdio.h>の翻訳された部分

101010000101111000011000011101000010010101000011101100010101010010101011101110000001001010101010101010000010101010101010100110101010010101010101010010101010101010010101010101010010010

111000


をオブジェクトファイル1



int main(void){

printf("にゃ~ん\n");

return 0;

}

の翻訳された部分

11010101111101010000101010101010101011010100100010101000101010101010101010000010101010101010101010101010101000100101011111110110111100010000000010101010101010100101010011111111111111111111111100000101010101010100



オブジェクトファイル2


とすると


コンパイルが行われた今の時点では機械語プログラム


オブジェクトファイル1と


オブジェクトファイル2


別々に分割された状態となっています


そこで


この2つの


オブジェクトファイルを


1つのプログラムにまとめるリンクという作業が


リンカプログラムによって行われます


Visual Studioでは


ここまでの


コンパイルとリンクの作業をまとめてビルドと呼びます。


そうして


1つにまとめ上げられたオブジェクトファイルは


実行ファイル(.exeファイル)とよばれます。


その実行ファイルをコンピュータは読み込んで


実行するというわけです


コンパイルとは正式には


ソースコードを機械語に変換するまでのことを指しています



ソースコードが機械語に変換されたのちリンクされ


生成された実行ファイルをコンピュータが実行する、


今の全過程を


コンパイルと呼ぶこともあります





  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます