ビルドってなあに ビルのことではありません コンパイルとリンクをまとめてビルドといいます



ソーラー「みんな~


👇


using System;


namespace Sample

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("青い海");

}

}

}


👆


このソースコード


ちゃんと


お使いのVisual Studioのドキュメントウィンドウ(エディタ画面)


に表示されてる~?


もう見てる~(*´▽`*)




マックス「ここにおよんで


まだ 見てない人がいるのか?」



ソーラー「ところで みんな




        🌞ビルド🌞




って言葉を聞かない?」



マックス「聞かない?っていわれても


まだ


C#


を学び始めてから


1時間しかたってないぞ」



ソーラー「そんなあ


もう


           (*´▽`*)聞いてる(*´▽`*)


って言ってください」



マックス「おぅ


おお


もちろん聞いてるP



        🌞ビルド🌞


多分


超高等難解な意味をもっているんだろう


全く意味が分からん」


ソーラー「意味はすごく簡単です


今日は


ビルド



コンパイル


の違いに


ついて学んでみましょう」



マックス「あ、あのう」


もじもじするマックス


ソーラー「マックスさん なんですか?」


マックス「コンパイルってなんですか?」



ソーラー「ぐげぇ」



マックス「そんなに 褒められても・・・」



ソーラー「OH! NOoooooooooooo!」



ソーラー「Why are our students so fool?」



マックス「そんなに 褒めんでも・・・」



ソーラー「OH! NOoooooooooooo!」



solarplexuss「


コンパイルって


ソースコードを機械語に翻訳することじゃなかったっけ・・・」



ソーラー「そ、そうなの


あたし 知らなかった」



solarplexuss「OH! NOoooooooooooo!」



ソーラー「そんなに 褒めんでも・・・」



solarplexuss「OH! NOoooooooooooo!」



solarplexuss「very fool booooooooy!」




ソーラー「まあ まあ 落ち着いて


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


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


ちょっと楽しみですね。


次のソースコードがドキュメントウィンドウ(エディタ画面)に記述されているとしましょう。


👇


using System;


namespace Sample

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("青い海");

}

}

}


👆


プログラムの実行結果


青い海


C:\Users\solar\source\repos\Sample\Sample\bin\Debug\netcoreapp3.1\Sample.exe (プロセス 19584) は、コード 0 で終了しまし た。

このウィンドウを閉じるには、任意のキーを押してください...


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


🍎using System;🍎の部分と


🍋

namespace Sample

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("青い海");

}

}

}

🍋

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



🍎using System;🍎の部分が

機械語

101010000101111000011000011101000010010101000011101100010101010010101011101110000001001010101010101010000010101010101010100110101010010101010101010010101010101010010101010101010010010111000に



🍋

namespace Sample

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("青い海");

}

}

}

🍋

の部分が

機械語

11010101111101010000101010101010101011010100100010101000101010101010101010000010101010101010101010101010101000100101011111110110111100010000000010101010101010100101010011111111111111111111111100000101010101010100に


という具合にです。




🍎using System;🍎の部分は



🍋

namespace Sample

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("青い海");

}

}

}

🍋

の部分とは別に




統合開発環境Visual StudioのC# コンパイラとセットになっている


C# (.NET Framework)ライブラリ


を参照して


機械語に翻訳されます



自分でプログラムをゼロから組まなくてもいいように

C# (.NET Framework)ライブラリには

すでに

よく使われる重要なプログラムが保存されているんです



🍎using System;🍎をおこなうことにより


C# (.NET Framework)ライブラリに


含まれている


よく使われる重要なプログラムを利用できるようになります


具体的には


🍎using System;🍎を実行することにより


Console.WriteLineメソッド(関数)


を使うことができるようになります


🍎using System;🍎を実行しなければ


Console.WriteLineメソッド(関数)


を使うことはできません




マックス「


Console.WriteLine("青い海");



を実行することができるのも


🍎using System;🍎を実行したからというわけか」



ソーラー「そうなんです



そして



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

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



🍎using System;🍎の翻訳された部分

101010000101111000011000011101000010010101000011101100010101010010101011101110000001001010101010101010000010101010101010100110101010010101010101010010101010101010010101010101010010010

111000


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



🍋

namespace Sample

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("青い海");

}

}

}

🍋



の翻訳された部分

11010101111101010000101010101010101011010100100010101000101010101010101010000010101010101010101010101010101000100101011111110110111100010000000010101010101010100101010011111111111111111111111100000101010101010100に



オブジェクトファイル2


とすると


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


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


オブジェクトファイル2


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


そこで


この2つの


オブジェクトファイルを


1つのプログラムにまとめる


💖リンクという作業が💖


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


Visual Studioでは


ここまでの


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


そうして


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


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


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


実行するというわけです


コンパイルとは正式には


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








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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る