이 글은 고급 언어와 저급 언어에 대해 정리한 글이다.
고급 언어와 저급 언어
프로그래밍을 할 때 사용하는 언어는 컴퓨터가 이해하는 언어가 아니라 사람이 이해하고 작성하기 쉽게 만들어진 언어이다. 이러한 언어를 고급 언어(high-level programming language)라고 한다. 반대로 컴퓨터가 이해하고 실행할 수 있는 언어를 저급 언어(low-level programming language)라고 한다.
대부분의 프로그래밍 언어가 고급 언어에 해당하기 때문에 우리가 알고 있는 C언어, JAVA, Python과 같은 언어는 모두 고급 언어라고 할 수 있다. 이러한 고급 언어는 컴퓨터가 이해하지 못하기 때문에 고급 언어로 작성된 소스 코드가 실행되기 위해서는 고급 언어를 저급 언어로 변환해주는 과정(명령어로 변환)이 필요하다.
저급 언어는 기계어와 어셈블리어로 구분된다.
기계어
기계어(machine code)는 0과 1의 명령어 비트로 이루어진 언어로, 이진수 혹은 십육진수로 표현된다.
8B542408 83FA0077 06B80000 0000C383
FA027706 B8010000 00C353BB 01000000
C9010000 008D0419 83FA0376 078BD98B
B84AEBF1 5BC3
이러한 기계어는 0과 1로 이루어져 있기 때문에, 사람이 읽을 경우 이해하기가 매우 어렵다는 단점이 있다. 이러한 단점을 해결하기 위해 나타난 저급 언어가 어셈블리어이다.
어셈블리어
바로 앞에서 잠깐 언급했듯이, 0과 1로 표현된 기계어를 읽기 편한 형태로 번역한 언어가 어셈블리어(assembly language)이다.
fib:
mov edx, [esp+8]
cmp edx, 0
ja @f
mov eax, 0
ret
@@:
cmp edx, 2
ja @f
mov eax, 1
ret
@@:
push ebx
mov ebx, 1
mov ecx, 1
@@:
lea eax, [ebx+ecx]
cmp edx, 3
jbe @f
mov ebx, ecx
mov ecx, eax
dec edx
jmp @b
@@:
pop ebx
ret
어셈블리어는 한 줄 한 줄이 모두 명령어이다. 이러한 어셈블리어는 프로그래밍을 할 때 접할 일이 없을 수도 있지만, 하드웨어와 밀접하게 접해있는 프로그램을 개발하는 임베디드나 게임 개발자 등의 경우 이러한 어셈블리어를 사용하기도 한다.
요약
- 프로그래밍 언어는 고급 언어(high-level programming language)와 저급 언어(low-level programming language)로 구분된다.
- 저급 언어에는 기계어와 어셈블리어가 있다.
- 기계어는 0과 1로 이루어져 있으며, 이진수 혹은 십육진수로 표현할 수 있다.
- 어셈블리어는 기계어를 이해하기 위한 저급 언어이다.
Reference
1. 혼자 공부하는 컴퓨터 구조 + 운영체제 | 출판사: 한빛미디어 | 저자: 강민철
혼자 공부하는 컴퓨터 구조+운영체제 | 강민철 - 교보문고
혼자 공부하는 컴퓨터 구조+운영체제 | 혼자 해도 충분합니다! 1:1 과외하듯 배우는 IT 지식 입문서 42명의 베타리더 검증으로, ‘함께 만든’ 입문자 맞춤형 도서이 책은 독학으로 컴퓨터 구조와
product.kyobobook.co.kr
저급 프로그래밍 언어 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 저급 프로그래밍 언어(低級 프로그래밍 言語) 또는 로우 레벨 프로그래밍 언어(low-level programming language)란 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어로,
ko.wikipedia.org
'Computer Science > 컴퓨터구조' 카테고리의 다른 글
CS | 컴퓨터구조 | 문자의 인코딩 및 디코딩 방식 (0) | 2024.04.01 |
---|---|
CS | 컴퓨터 구조 | 정보 단위와 숫자 표현 (with. 이진수, 십육진수) (1) | 2024.03.28 |
CS | 컴퓨터 구조 | 컴퓨터가 이해하는 정보와 컴퓨터의 핵심 부품 (0) | 2024.03.22 |