프로그래밍 언어를 크게 고급언어와 저급언어 2가지로 분류된다.
2가지의 차이점을 정말 간단하게 알아보자!
⚱️ 고급언어 (High-Level Language)
💁🏻♂️ 소개
프로그래밍 언어를 크게 고급언어와 저급언어 2가지로 분류된다.
2가지의 차이점을 정말 간단하게 알아보자!
⚱️ 고급언어 (High-Level Language)
고급언어는 사람이 이해하기 쉬운 형태로 작성된 프로그래밍 언어이다.
예) C++, Java, Ruby 등
a = 12;
b = a;
c = a + b;
저급언어는 컴퓨터가 이해하기 쉬운 형태의 언어이다.
예) 기계어나 어셈블리어
저급언어를 사용하면 하드웨어의 세부 사항을 직접 다룰 수 있어 최적화된 프로그램을 작성할 수 있다.
section .data
a db 12 ; 변수 a를 12로 초기화
section .bss
b resb 1 ; 변수 b를 1바이트 크기로 선언
c resb 1 ; 변수 c를 1바이트 크기로 선언
section .text
global _start
_start:
; 변수 a를 변수 b에 복사
mov al, byte [a]
mov [b], al
; 변수 a와 변수 b를 더해서 변수 c에 저장
mov al, byte [a]
add al, byte [b]
mov [c], al
; 종료 시스템 콜
mov eax, 1 ; 시스템 콜 번호 1은 sys_write를 의미
mov ebx, 1 ; 파일 디스크립터 1은 표준 출력을 의미
mov ecx, c ; 출력할 데이터의 주소인 변수 c의 주소
mov edx, 1 ; 출력할 데이터의 길이는 1바이트
int 0x80 ; 인터럽트 0x80을 통해 시스템 콜 실행
; 프로그램 종료
mov eax, 1 ; 시스템 콜 번호 1은 sys_exit를 의미
xor ebx, ebx ; 종료 코드 0
int 0x80 ; 인터럽트 0x80을 통해 시스템 콜 실행
(저급 언어 보고만 있어도 머리 아프다..)
그래서 자바를 예로 들면 hello.java 파일을 컴파일러를 통해 컴파일이라는 과정을 거치면
우리가 이해할 수 없는 (예를 들어 01010101) 언어로 변경된 hello.class 파일로 변환된다.!