์ ๊ธ์ธ์ด (Low-Level Language)
์ ๊ธ์ธ์ด๋ ์ปดํจํฐ ํ๋์จ์ด์ ๊ฐ๊น์ด ์์ค์์ ๋์ํ๋ฉฐ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ธ์ด์ ๋๋ค. ๊ธฐ๊ณ์ด์ ์ด์ ๋ธ๋ฆฌ์ด๊ฐ ๋ํ์ ์ ๋๋ค.
์ ๊ธ์ธ์ด์ ํน์ง์ผ๋ก๋,
1) ์ง์ ์ ์ผ๋ก ํ๋์จ์ด์ ์ํธ์์ฉํ ์ ์์ต๋๋ค.
2) ์ ๊ธ์ธ์ด๋ก ์์ฑ๋ ์ฝ๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋์ ์ฑ๋ฅ์ ๊ฐ์ง๋๋ค.
3) ํ๋์จ์ด์ ์ธ๋ถ ๊ธฐ๋ฅ์ ์ง์ ๋ค๋ฃฐ ์ ์์ต๋๋ค
์ปดํจํฐ๋ ์ด๋ฌํ ์ ๊ธ์ธ์ด๋ฅผ ํด์ํ์ฌ ํ๋ก๊ทธ๋จ์ ์คํ์ํต๋๋ค.
๊ธฐ๊ณ์ด์ ์ด์ ๋ธ๋ฆฌ์ด์ ์ฐจ์ด์
๊ธฐ๊ณ์ด๋ 0๊ณผ 1๋ก ์ด๋ฃจ์ด์ ธ์๊ฑฐ๋ 16์ง์๋ก ํํ๋๊ธฐ๋ ํฉ๋๋ค. ๋ฐ๋ฉด ์ด์ ๋ธ๋ฆฌ์ด๋ ์กฐ๊ธ ๋ ์ฒด๊ณ๊ฐ ๊ฐ์ถฐ์ ธ ์์ง๋ง ์ฌ์ ํ ์ฌ๋์ด ์ดํดํ๊ธฐ์๋ ์ด๋ ต์ต๋๋ค. ์ด์ ๋ธ๋ฆฌ์ด๋ 0๊ณผ 1๋ก๋ง ์ด๋ฃจ์ด์ง ๊ธฐ๊ณ์ด๋ฅผ ์กฐ๊ธ ๋ ์ดํดํ๊ธฐ ํธํ๊ฒ ๋ง๋ ์ธ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๊ณ ๊ธ์ธ์ด (High-Level Language)
๊ณ ๊ธ์ธ์ด๋ ์ฌ๋์ด ์ดํดํ๊ธฐ ์ฝ๋๋ก ๋์์ธ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ๋ํ์ ์ธ ๊ณ ๊ธ์ธ์ด๋ก๋ Python, Java, C#, ๋ฑ์ด ์์ต๋๋ค.
๊ณ ๊ธ์ธ์ด์ ํน์ง์ผ๋ก๋,
1) ๊ฐ๋
์ฑ ๋ฐ ์ดํด์ฑ: ๊ณ ๊ธ์ธ์ด๋ ์ฌ๋์ด ์ดํดํ๊ธฐ ์ฝ๊ฒ ์์ฑ๋์ด ์์ต๋๋ค.
2) ์ถ์ํ: ํ๋์จ์ด์ ์ธ๋ถ์ฌํญ์ ์จ๊ธฐ๊ณ , ๋์ ์์ค์ ์ถ์ํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
3) ์์ฐ์ฑ ํฅ์: ์ฝ๋ ์์ฑ์ด ๋น ๋ฅด๊ณ ๊ฐํธํ์ฌ ์์ฐ์ฑ์ด ํฅ์๋ฉ๋๋ค.
์ปดํ์ผ ์ธ์ด vs ์ธํฐํ๋ฆฌํธ ์ธ์ด
๊ทธ๋ฐ๋ฐ ์ฌ๋์ด ๊ณ ๊ธ์ธ์ด๋ก ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ฉด ์ปดํจํฐ๋ ์ด๋ป๊ฒ ์ดํดํด์ผ ํ ๊น์? ์ฌ๊ธฐ์ ์ฌ๋์ด ์์ฑํ ์์ค ์ฝ๋๋ฅผ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๊ฒ ๋ฒ์ญํด์ฃผ๋ ์ญํ ์ ์ปดํ์ผ๋ฌ ์ธ์ด์ ์ธํฐํ๋ฆฌํธ ์ธ์ด๊ฐ ํฉ๋๋ค.
์ปดํ์ผ ์ธ์ด๋ ์ฝ๋๋ฅผ ์ฌ์ ์ ์ ์ฒด์ ์ผ๋ก ๊ธฐ๊ณ์ด๋ก ๋ณํํ๋ ๊ณผ์ ์ธ ์ปดํ์ผ๋ง์ ๊ฑฐ์น ํ, ์ด๋ฅผ ์คํํฉ๋๋ค. ์คํ ํ์ผ์ด ์์ฑ๋์ด ๋์ค์ ์คํ๋ฉ๋๋ค.
์ปดํ์ผ์ ๊ฒฐ๊ณผ๋ก ๋ชฉ์ ์ฝ๋(Object Code)๋ฅผ ์ป๊ฒ ๋๊ณ ์ด๋ฅผ ์ปดํจํฐ๋ ์ดํดํ๊ณ ํด์ํฉ๋๋ค. ์ปดํ์ผ ์ธ์ด๋ ๋ํ์ ์ผ๋ก C, C++, Java๋ฑ์ด ์์ต๋๋ค.
์ปดํ์ผ์ ํน์ง์ผ๋ก๋,
1) ์คํ ์๋: ์ผ๋ฐ์ ์ผ๋ก ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ณด๋ค ๋น ๋ฅด์ง๋ง, ์ฝ๋ ์์ ์ ๋ค์ ์ปดํ์ผํด์ผ ํ๋ฏ๋ก ๊ฐ๋ฐ ์๋๋ ์๋์ ์ผ๋ก ๋๋ฆฝ๋๋ค.
2) ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ: ์ปดํ์ผ๋ ์ฝ๋๋ ์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
3) ์ฝ๋ ์จ๊น: ์์ค ์ฝ๋๊ฐ ์คํ ํ์ผ๋ก ์ปดํ์ผ๋์ด ๋ฐฐํฌ๋๋ฏ๋ก ์ฝ๋๋ฅผ ๋ณดํธํ ์ ์์ต๋๋ค.
๋ฐ๋ฉด ์ธํฐํ๋ฆฌํฐ ์ธ์ด๋ ์ฝ๋๋ฅผ ํ ์ค ์ฉ ์ฝ์ด๋ค์ด๊ณ , ์ฆ์ ์คํํ๋ ์ธ์ด์ ๋๋ค. ์ฝ๋๋ฅผ ์คํํ๋ ๋์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ์๋ฌ๋ฅผ ์ฆ์ ๋ณด๊ณ ์ค๋จ๋ฉ๋๋ค.
์ฆ, ์ปดํ์ผ์ด ์ฑ ์ ์ฒด๋ฅผ ๋ฒ์ญํ๋ ๊ณผ์ ์ ๊ฐ์ง๋ค๋ฉด ์ธํฐํ๋ฆฌํธ ์ธ์ด๋ '์๋ ํ์ธ์'๋ผ๊ณ ์์ํ๋ ํ๊ตญ์ด ์ฑ ์ ํ ์ค์ฉ ๋ฒ์ญํด๊ฐ๋ ๋ฐฉ์์ธ ๊ฒ์ด์ฃ . ๋ํ์ ์ผ๋ก Python, JavaScript, Ruby๋ฑ์ด ์์ต๋๋ค.
1) ์คํ ์๋: ์ผ๋ฐ์ ์ผ๋ก ์ปดํ์ผ ์ธ์ด๋ณด๋ค ๋๋ฆฌ์ง๋ง, ์ฝ๋ ์์ ํ ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ์ฌ ๊ฐ๋ฐ ์๋๊ฐ ๋น ๋ฆ
๋๋ค.
2) ๋๋ฒ๊น
์ฉ์ด์ฑ: ์๋ฌ๊ฐ ๋ฐ์ํ ๊ณณ์์ ์ค๋จ๋๋ฏ๋ก ๋๋ฒ๊น
์ด ์ฝ์ต๋๋ค.
3) ํ๋ซํผ ๋
๋ฆฝ์ฑ: ์์ค ์ฝ๋๋ฅผ ์คํํ๋ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ณํ๊ฐ ์์ด ํ๋ซํผ ๋
๋ฆฝ์ฑ์ด ๋์ต๋๋ค.
ํ์ง๋ง ์ธ์ ๋ชจ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค์ด ์ปดํ์ผ ์ธ์ด์ ์ธํฐํ๋ฆฌํธ ์ธ์ด๋ก ํ์ฐํ ๋๋์ด์ง์ง๋ ์์ต๋๋ค. ์ปดํ์ผ ๋ฐฉ์์ ์ธํฐํ๋ฆฌํธ ๋ฐฉ์์ด ์กด์ฌํ๋๋ฐ ๊ณ ๊ธ์ธ์ด๋ฅผ ์ ๊ธ์ธ์ด๋ก ๋ฒ์ญํ ๋ ๋ํ์ ์ผ๋ก ํ์ฉ๋๋ ๋ฐฉ์๋ค์ธ ๊ฒ์ ์๊ธฐํด์ฃผ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค.
Low-level Language
Low-level languages offer minimal abstraction, providing direct control over hardware and are used for tasks requiring fine-grained control.
High-level Language
High-level languages prioritize human readability, featuring abstraction from hardware complexities and often include productivity-focused features.
Machine Code
Machine code is the lowest-level binary language directly executed by a computer's CPU, representing fundamental operations.
Assembly Language
Assembly language uses mnemonics to represent machine code, offering human-readable instructions and serving as an intermediary between high-level and machine code.
Compiled Language
Compiled languages undergo a prexecution translation process, producing standalone executables independent of source code.
Interpreter Language
Interpreter languages execute code directly, line-by-line, facilitating quick testing and modification but potentially sacrificing runtime performance.
'Computer Science > Computer Structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
6 CPU - Register (๋ ์ง์คํฐ) (0) | 2023.12.21 |
---|---|
5 CPU - ์ ์ด์ฅ์น (Control Unit) (1) | 2023.12.21 |
4 CPU - ALU (์ฐ์ฐ ์ฅ์น) (0) | 2023.12.21 |
3 CPU (Central Processing Unit) (1) | 2023.12.21 |
1 ํ๋์จ์ด์ ์ํํธ์จ์ด - Hardware & Software (0) | 2023.12.10 |
๋๊ธ