์ปดํจํฐ์์ ์ปค๋ฎค๋์ผ์ด์ ์ ์ฐ์ด๋ ๋ค์ํ ์ข ๋ฅ์ ์ธ์ด๋ค์ ์ผ์ปซ๋ ๋ง.
์ปดํจํฐ ์ธ์ด๋ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋ถ๋ฅํ ์ ์๋ค.
์ ๊ธ ์ธ์ด Low-Level Language
๊ธฐ๊ณ์ด์ ์ด์ ๋ธ๋ฆฌ ์ธ์ด
ํ๋์จ์ด ์์ฃผ์ ์ธ์ด๋ก, ๊ฐ๊ฒฐํ๋ฉฐ ์ฒ๋ฆฌ๊ฐ ์ฝ๋ค.
๊ณ ๊ธ ์ธ์ด High-Level Language
์ ๊ธ ์ธ์ด๋ฅผ ์ ์ธํ ๋ชจ๋ ์ธ์ด
์ ๊ธ ์ธ์ด๋ณด๋ค ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ , ๋ ์ถ์์ ์ด๋ฉฐ, ๋ ์ด์ ๊ฐ๋ฅ์ฑ์ด ๋๊ฒ ๋์์ธ๋๋ค.
์ฌ์ฉ์ ์์ฃผ์ ์ธ์ด๋ก, ๊ฐ๊ฒฐ์ฑ์ ๋จ์ด์ง๋ ๊ฐ๋ ์ฑ์ด ๋ ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด Programming Language
์ปดํจํฐ ์์คํ ์ ๊ตฌ๋์ํค๋ ์ํํธ์จ์ด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์ธ์ด.
๊ณ ๊ธ ์ธ์ด์ผ์๋ก ์ฌ๋์ด ์ฌ์ฉํ๋ ์ธ์ด์ ๊ฐ๊น๋ค.
์ด๋ค์ ๊ตฌํํ๋ ๋ฐฉ์์ ๋ฐ๋ผ์ ์ปดํ์ผ๋ฌ ์ธ์ด์ ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ก ๋๋ ์ ์๋ค.
์ปดํ์ผ๋ฌ Compiler
์์ฑ๋ ์ฝ๋ ๊ทธ๋๋ก๋ฅผ ์ฝ์ด๋ค์ฌ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ๋ ๋์ผํ ํ๋ก๊ทธ๋จ์ ์ถ๋ ฅํ์ฌ ์ฃผ๋ ์ธ์ด์ฒ๋ฆฌ๊ธฐ.
๊ณ ๊ธ ์ธ์ด ํ๋ก๊ทธ๋จ์ ๊ฐ ๋ฌธ์ฅ์ ์คํ ์ ์ ํ๊บผ๋ฒ์ ์ ๋นํ ์ผ๋ จ์ ๊ธฐ๊ณ์ด ๋ช ๋ น์ผ๋ก ๋ฐ๊พธ์ด์ค๋ค.
์ฝ๋๊ฐ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ์ด ์ฝ๊ฒ ์ด๋ฃจ์ด์ง ์ ์์ผ๋ฉด์ ๊ธฐ์ต ์ฅ์๋ฅผ ๋ง์ด ์๊ตฌํ์ง ์๊ณ , ์ํ ์๊ฐ์ ์ค์ํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ.
์ฅ์ : ํ๋ฒ ์ปดํ์ผ ํ๋ฉด ๊ธฐ๊ณ์ด๋ก ๋ฐ๋ณต ์ฌ์ฉ์ด ๊ฐ๋ฅํ์ฌ ์ฒ๋ฆฌ ์๊ฐ์ด ๋งค์ฐ ๋น ๋ฅด๋ค.
๋จ์ : ์ฝ๋ ํ์ค์ด ๋๋ก๋ ๋ช๋ฐฑ๊ฐ์ ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ๋๊ธฐ ๋๋ฌธ์ ํฐ ๊ธฐ์ต์ฉ๋์ ์๊ตฌํ๋ค.
์ธํฐํ๋ฆฌํฐ Interpreter
๊ณ ๊ธ ์ธ์ด ์์ฒด๋ฅผ ๊ธฐ๊ณ์์ ์ํ๋๋ ์ํํธ์จ์ด๋ก ์๋ฎฌ๋ ์ด์ ํ์ฌ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ.
ํ๋ก๊ทธ๋จ์ด ์งง๊ณ ๋ณต์กํ์ง ์์ ์ง๋ฌธ์ ์๋ตํ๋ ์์์ ํ๋ก๊ทธ๋จ์์ ๋ง์ด ์ฌ์ฉ.
๋ด์ฅ ์ฌ์ ์ ์ด์ฉํ์ฌ ํ ๋ฌธ์ฅ์ฉ ๋ฒ์ญํ๊ณ ์คํํ๋ ๋ฐฉ์์ด๋ค.
JIT(just-in-time) compiler๋ฅผ ์ฌ์ฉํ๊ธฐ๋ ํ๋ค.
์ฅ์ : ํ๋ก๊ทธ๋จ์ด ๋ ๋๊น์ง ์ฝ๋ ํํ๋ฅผ ์ ์งํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์ต ์ฅ์๋ ์ถ๊ฐ๋ก ํ์ํ์ง ์๋ค.
๋จ์ : ๋ฐ๋ณต ์คํ ๋๋ง๋ค ์ฝ๋๋ฅผ ํด์ํด์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ง์ ์๊ฐ์ด ๊ฑธ๋ ค ์๋์ ์ผ๋ก ๋นํจ์จ์ ์ด๋ค.
Compile
*compile - link - native code
๋ค์ํ ์ธ์ด์ฝ๋ -> ๋ค์ดํฐ๋ธ ์ฝ๋ (๊ธฐ๊ณ์ด) -> CPU
complier: ํ๋ก๊ทธ๋จ ์ธ์ด/ CPU ํ๊ฒฝ์ ๋ฐ๋ผ์๋ ๋ฌ๋ผ์ง
link: ๋ณ์ญ/์คํ. *.exe ํ์ผ ์ป์. ์ปดํ์ผ ํ *.obj ์ค๋ธ์ ํธ ํ์ผ ์์ฑ -> ๋ง์ปค ํตํด exe
*compile ๋ฐ link์ ์๋ฆฌ
object file /static library / dynamic library
*.lib -> ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ผ: ์ฌ๋ฌ obj ํจ๊ป ๋ฌถ์ด์ ๊ธฐ๋ก.
๋ง์ปค์ library ์ง์ ํ๋ฉด ๊ทธ ์ค ํ์ํ obj๋ง ์ถ์ถ ํ ๋ค๋ฅธ obj ํ์ผ๊ณผ ๊ฒฐํฉํ์ฌ exe ๋ง๋ค์ด์ค.
ํ์คํจ์ (sprintf() ๋ฑ) library ํํ๋ก ์ปดํ์ผ๋ฌ์ ํจ๊ป ์ ๊ณต
์๋์ฐ. API(Application PRogramming Interface) ์ ๊ณต - ํจ์์ ์งํฉ์ผ๋ก ๊ธฐ๋ฅ ์ ๊ณต. MessageBox()
DLL ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ๋ก๊ทธ๋จ์ด ์คํ๋ ๋ exe์ ํฉ์ณ์ง
import.lib (์ํฌํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ) -> user.dll์ ์ํด ์์ผ๋ฉฐ dll ํ์ผ ์ ์ฅ ํด๋ ์ ๋ณด๋ง ๊ธฐ๋ก. ์ค์ obj ํ์ผ X
static: ์ค์ obj ๋ด์ฉ ๋ด๊ณ ์๊ณ , exe ํ์ผ์ ์ง์ ๊ฒฐํฉ
link ~ assemble
'ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐ์ดํฐ ํ์ Data Type (0) | 2015.03.03 |
---|---|
๊ธฐ์๋ฒ ๋ฐ ์ฐ์ ์ฐ์ฐ Number system and Arithmetic Operation (0) | 2015.03.03 |
[tbd] ๋ฉ๋ชจ๋ฆฌ ์์ญ (0) | 2015.03.03 |
[tbd] Disk, Memory, CPU, ALU, FPU (0) | 2015.03.03 |
๋ฐ์ดํฐ ๋จ์ Sizes of Data Units (0) | 2015.03.03 |