๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Computer Science/Computer Structure

2 Low level & High level language - ์ €๊ธ‰์–ธ์–ด์™€ ๊ณ ๊ธ‰์–ธ์–ด

by Dowon Kang 2023. 12. 20.

์ €๊ธ‰์–ธ์–ด (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.

 

๋Œ“๊ธ€