μ»΄νμΌλ¬: μ½λ λ²μμ λκ°
1. μ»΄νμΌλ¬μ κ°λ
μ»΄νμΌλ¬(Compiler)λ νλ‘κ·Έλλ° μΈμ΄λ‘ μμ±λ μμ€ μ½λλ₯Ό κΈ°κ³μ΄λ‘ λ³ννλ λꡬλ‘, μμ€ μ½λλ₯Ό μ 체μ μΌλ‘ ν΄μνμ¬ μ€κ° μ½λ λλ λͺ©μ μ½λλ‘ λ²μν©λλ€. μ΄λ κ² λ³νλ μ½λλ μ€ν νμΌλ‘ μ¬μ©λμ΄ νλ‘κ·Έλ¨μ μ€νν μ μκ² λ©λλ€.
2. μ»΄νμΌλ¬μ μ λμ μν
μ»΄νμΌλ¬λΌλ μ©μ΄λ 'Compile'μ΄λΌλ μλ¨μ΄μμ μ λλμμ΅λλ€. μ΄κΈ°μλ κΈ°κ³μ΄λ‘ μ§μ μ½λ©νλ μ΄μ λΈλ¦¬ μΈμ΄μμ κ³ κΈ μΈμ΄λ‘μ λ³νμ μ§μνλ μν μ ν©λλ€.
μ»΄νμΌλ¬μ μ£Όμ μν μ λ€μκ³Ό κ°μ΅λλ€.
- μμ€ μ½λ λ²μ: κ³ μμ€ μΈμ΄λ‘ μμ±λ μ½λλ₯Ό μ μμ€ μΈμ΄λ‘ λ³νν©λλ€.
- λ¬Έλ² λ° μλ―Έ κ²μ¬: μ½λμ λ¬Έλ²μ μ€λ₯ λ° μλ―Έμ μ€λ₯λ₯Ό κ²μ¬νμ¬ κ°λ°μμκ² μλ €μ€λλ€.
- μ΅μ ν: μ€ν μκ° λ° λ©λͺ¨λ¦¬ μ¬μ©λμ μ΅μ ννμ¬ ν¨μ¨μ μΈ μ½λλ₯Ό μμ±ν©λλ€.
3. μ»΄νμΌλ¬μ λμ μ리
μ»΄νμΌλ¬μ λμμ λ€μκ³Ό κ°μ λ¨κ³λ‘ μ΄λ£¨μ΄μ§λλ€.
- ꡬ문 λΆμ(Syntax Analysis): μμ€ μ½λλ₯Ό ν ν°μΌλ‘ λλκ³ λ¬Έλ² κ·μΉμ λ°λΌ ꡬ문 νΈλ¦¬λ₯Ό μμ±ν©λλ€.
- μλ―Έ λΆμ(Semantic Analysis): μμ±λ ꡬ문 νΈλ¦¬μμ μλ―Έμ μ€λ₯λ₯Ό μ°Ύκ³ ν΄λΉ μ€λ₯λ₯Ό λ³΄κ³ ν©λλ€.
- μ΅μ ν(Optimization): μμ±λ μ½λλ₯Ό μ΅μ ννμ¬ μ€ν μλμ λ©λͺ¨λ¦¬ μ¬μ©λμ κ°μ ν©λλ€.
- μ½λ μμ±(Code Generation): μ΅μ νλ μ½λλ₯Ό λͺ©μ μ½λλ‘ λ²μν©λλ€.
4. μ»΄νμΌλ¬μ μ₯λ¨μ
4.1. μ₯μ
- λμ μ±λ₯: 미리 λ²μλ μ½λλ₯Ό μ€ννκΈ° λλ¬Έμ μ€ν μλκ° λΉ λ¦ λλ€.
- μ€λ₯ κ²μΆ μ©μ΄: λ²μ μ μ λ¬Έλ² λ° μλ―Έμ μ€λ₯λ₯Ό κ²μΆνμ¬ κ°λ°μμκ² μλ €μ€λλ€.
4.2. λ¨μ
- μ»΄νμΌ μκ° μμ: λ²μ κ³Όμ μ΄ μΆκ°λμ΄ κ°λ°μλ λ²μμ΄ μλ£λ λκΉμ§ κΈ°λ€λ €μΌ ν©λλ€.
- νλ«νΌ μμ‘΄μ±: νΉμ νλ«νΌμ λ§κ² λ²μλ μ½λμ΄λ―λ‘ μ΄μμ±μ΄ λ¨μ΄μ§ μ μμ΅λλ€.
5. μ»΄νμΌλ¬ μμ
5.1. C μΈμ΄
// κ°λ¨ν λ§μ
μ°μ° μμ
#include <stdio.h>
int main() {
int a = 3, b = 5;
int result = a + b;
printf("%d\n", result);
return 0;
}
5.2. Java μΈμ΄
// λ¬Έμμ΄ κ²°ν© μμ
public class ConcatenationExample {
public static void main(String[] args) {
String str1 = "Hello";
String str2 = "World";
String result = str1 + " " + str2;
System.out.println(result);
}
}
5.3. Python μΈμ΄
# 리μ€νΈ μ‘°μ μμ
numbers = [1, 2, 3, 4, 5]
squared = [n**2 for n in numbers]
print(squared) # [1, 4, 9, 16, 25]
5.4. Swift μΈμ΄
// λ°λ³΅λ¬Έμ ν΅ν μΆλ ₯ μμ
for i in 0..<5 {
print("Iteration \(i)")
}
5.5. Go μΈμ΄
// νμΌ μ½κΈ° λ° μΆλ ₯ μμ
package main
import (
"fmt"
"io/ioutil"
)
func main() {
data, err := ioutil.ReadFile("example.txt")
if err != nil {
panic(err)
}
fmt.Println(string(data))
}
6. μ°κ΄λ κΈ°μ : JIT μ»΄νμΌλ¬
μ»΄νμΌλ¬μ λ²μ λ¨κ³μμ λ°μνλ μ±λ₯ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ λ±μ₯ν κΈ°μ μ€ νλκ° JIT(Just-In-Time) μ»΄νμΌλ¬μ λλ€. JIT μ»΄νμΌλ¬λ νλ‘κ·Έλ¨μ μ€ννλ μμ μ ν΄λΉ μ½λλ₯Ό κΈ°κ³μ΄λ‘ λ³ννκ³ μΊμ±νμ¬ μ±λ₯μ ν₯μμν΅λλ€.
7. κ²°λ‘
μ»΄νμΌλ¬λ νλ‘κ·Έλλ° μΈμ΄λ‘ μμ±λ μ½λλ₯Ό κΈ°κ³μ΄λ‘ λ³ννμ¬ μ€ν κ°λ₯ν νλ‘κ·Έλ¨μ μμ±νλ ν΅μ¬ λꡬμ λλ€. κ° μΈμ΄λ³λ‘ λ€μν μ»΄νμΌλ¬κ° μ‘΄μ¬νλ©°, μ΄λ₯Ό ν΅ν΄ ν¨μ¨μ μ΄κ³ μμ μ μΈ νλ‘κ·Έλ¨μ κ°λ°ν μ μμ΅λλ€.
λκΈ