Posts 🍡 ν›„μœ„μ¦κ°μ—°μ‚°μžμ™€ 컴파일 μ΅œμ ν™”
Post
Cancel

🍡 ν›„μœ„μ¦κ°μ—°μ‚°μžμ™€ 컴파일 μ΅œμ ν™”

ν›„μœ„μ¦κ°μ—°μ‚°μžμ™€ 컴파일러의 μ΅œμ ν™” κ³Όμ • μ΄ν•΄ν•˜κΈ°

1
2
3
4
5
6
int i = 7;

int j = i++;

System.out.println(i);	// 8
System.out.println(j);	// 7

μœ„ μ½”λ“œλ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ” 컴파일러 과정에 λŒ€ν•œ 이해가 ν•„μš”ν•˜λ‹€. μ»΄νŒŒμΌλŸ¬λŠ” 컴파일 κ³Όμ •μ—μ„œ μ›μ†ŒμŠ€ μ½”λ“œλ₯Ό λ˜‘κ°™μ€ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜λŠ” λ‹€λ₯Έ μ½”λ“œλ‘œ λŒ€μ²΄ν•œλ‹€. 이것을 μ΅œμ ν™” 과정이라고 ν•˜κΈ°λ„ ν•œλ‹€. μ΄λ•Œ μ΄λ ‡κ²Œ 컴파일된 기계어 μ½”λ“œ(Hello.class)λ₯Ό μ›μ†ŒμŠ€λ‘œ λ°”κΏ€ λ•ŒλŠ” μ—­ 컴파일러λ₯Ό μ‚¬μš©ν•˜λŠ”λ°, κ·Έλ ‡κ²Œ μƒμ„±λœ μ½”λ“œλŠ” 졜초의 μ†ŒμŠ€μ½”λ“œ μž‘μ„±μžκ°€ μž‘μ„±ν•œ μ½”λ“œμ™€ λ™μΌν•˜μ§€ μ•Šλ‹€.

postfix-compiler

1
2
3
4
int i = 5;
int j = i++;

System.out.printf("%d, %d", i, j); // 6, 5

μœ„μ™€ 같이 κ²°κ³Όκ°€ λ‚˜μ˜€λŠ”λ°, μ΄λŠ” int j = i++;λΌλŠ” λ¬Έμž₯이 μ–΄λ–€ μ‹μœΌλ‘œ 컴파일 λ˜λŠ”μ§€λ₯Ό νŒŒμ•…ν•˜λ©΄ μ΄ν•΄ν•˜κΈ° 쉽닀.

1
2
3
4
5
6
int i = 5;
int j;
int temp;
temp = i;
i = i +1;
j = temp;
  1. j λ³€μˆ˜λ₯Ό μ„ μ–Έν•œλ‹€.
  2. μž„μ‹œ λ©”λͺ¨λ¦¬λ₯Ό μ„ μ–Έν•œλ‹€.
  3. μž„μ‹œ λ©”λͺ¨λ¦¬μ— ν˜„μž¬ i의 κ°’(5)을 λ„£λŠ”λ‹€.
  4. i λ©”λͺ¨λ¦¬μ— ν˜„μž¬ i의 κ°’(5)에 1을 λ”ν•œ κ°’(6)을 λ„£λŠ”λ‹€.
  5. jμ—λŠ” μž„μ‹œ λ©”λͺ¨λ¦¬μ— λ“€μ–΄μžˆλŠ” κ°’ (5)을 λ„£λŠ”λ‹€.
This post is licensed under CC BY 4.0 by the author.

학원 #13일차: λ…Όλ¦¬μ—°μ‚°μžμ™€ λΉ„νŠΈμ—°μ‚°μž

학원 #14일차: μ œμ–΄λ¬Έκ³Ό μ»¬λ ‰μ…˜

Loading comments from Disqus ...