본문 바로가기
개발 이론/CS

[CS] 소스코드와 명령어

by dal_been 2024. 2. 12.
728x90
고급언어와 저급언어

 

고급언어 : 컴퓨터가 아닌 사람을 위한 언어 (프로그래밍 언어)

저급언어 : 컴퓨터가 직접 이해하고 실행할 수 있는 언어

 

고급언어로 작성된 소스코드 실행시 저급언어(명령어)로 변환되어야함

 

저급언어에는 기계어와 어셈블리어가 존재한다.

기계어는 오직 컴퓨터만을 위한 언어로 0과 1로 이루어져있고 어셈블리어는 0과1로 표현된 명령어를 읽기 편한 형태로 변역한 언어

 

컴파일 언어와 인터프리터 언어

 

고급언어로 작성된 코드를 실행할떄 저급언어로 변환된다고 했는데

이때 크게 컴파일 방식과 인터프리트 방식이 있다.

 

1. 컴파일 언어

컴파일러에 의해 소스코드 전체가 저급언어로 변환되어 실행하는 고급언어이다.

대표적으로 C언어가 있다. 

 

소스코드를 저급언어로 변환되는 과정을 컴파일이라고 하고 , 컴파일을 수행해주는 도구를 컴파일러라고 한다.

해당 과정에서 문법적인 오류, 실행 가능한 코드인지, 실행하는데 불필요한 코드는 없는지 따지며 처음부터 끝까지 저급언어로 컴파일한다.

만약 오류를 발견하면 컴파일 실패한다.

성공적으로 컴파일 되면 저급언어로 변환된 코드를 목적코드라고 한다.

 

 2. 인터프리터 언어

인터프리터에 의해 소스코드가 한줄씩 실행되는 고급언어이다.

대표적으로 파이썬이 있다.

 

소스코드를 한줄씩 실행하는데 도와주는 도구를 인터프리터라고 한다.

인터프리터 언어는 컴퓨터와 대화하듯이 소스코드를 한줄씩 실행하기 때문에 소스코드 전체를 저급언어로 변환하는 시간을 기다릴 필요가 없다.

만약 N번째 줄에 오류가 있더라도 N-1번째 줄까지는 올바르게 수행된다.

 

인터프리터 언어가 컴파일 언어보다 빠를까? 생각할 수 있지만

인터프리터 언어는 컴파일 언어보다 느리다.

컴파일을 통해 나온 결과물, 즉 목적 코드는 컴퓨터가 이해하고 실행할 수 있는 저급언어인 반면, 인터 프리터언어는 소스코드 마지막에 이를때까지 한줄한줄 씩 저급언어로 해석하며 실행해야하기 때문이다

 

'개발 이론 > CS' 카테고리의 다른 글

[CS] 컴퓨터 구조  (1) 2024.02.11