Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コンパイルの違い

Avatar for nikawa2161 nikawa2161
September 16, 2025
0

 コンパイルの違い

Avatar for nikawa2161

nikawa2161

September 16, 2025
Tweet

Transcript

  1. 低水準言語 コンピュータが理解しやすい言語 機械語やアセンブリ言語がこれにあたる。 機械語の例: 01001000 11000111 11000000 00000001 00000000 00000000

    00000000 アセンブリ言語の例(C言語の add 関数をコンパイル後に変換したもの): add: mov eax, edi ; 第1 引数 edi add eax, esi ; 第2 引数 esi ret 3
  2. 高水準言語 人が理解しやすい自然言語に近い言語 C言語やJavaScriptなど。 例: int add(int a, int b) {

    return a + b; } 読みやすく、操作も簡単。普段私たちが使う言語はほとんど高水準言語。 4
  3. 例: PHP <?php for ($i = 1; $i <= 5;

    $i++) { if ($i % 2 == 0) { echo "$i: hoge"; } else { echo "$i: huga"; } } ?> php sample.php 8
  4. コンパイルの流れ 1. TS ファイル作成 function greet(name: string) { console.log("Hello, "

    + name); } 2. コンパイル実行 tsc src/greet.ts このとき ①型チェック と ②JavaScript への変換 が行われる。 10
  5. ① 型チェック greet(123); // $ tsc sample.ts // error TS2345:

    Argument of type 'number' is not assignable to parameter of type 'string'. 11
  6. 最後に 通常の「コンパイル」は 高水準 → 低水準。 TypeScript のコンパイルは「高水準 → 高水準(TS →

    JS) 」 。 実行時は JavaScript エンジン(V8など)が JIT コンパイルを使って処理。 ビルドとランタイムは分離しているため、 型チェックは tsc 変換は esbuild など別ツール を組み合わせて使うことも可能。 tsgo で「コンパイル速度を10倍速くする」こともできる 14