본문 바로가기
Computer/Computer Science

[Computer Science] 프로그램 (Program)

by goatlab 2024. 5. 7.
728x90
반응형
SMALL

프로그램 (Program)

 

프로그램은 실행 가능한 명령어 (instruction)의 집합이다. 프로그램은 하드디스크와 같은 저장 장치에 저장되어 있지만 메모리에는 올라가지 않은 정적인 상태이다. 컴파일된 바이너리 이미지나 파이썬 스크립트와 같이 인터프리터가 프로그램의 형태가 된다.

 

프로그래밍 언어

 

https://www.helpteaching.com/lessons/1285/high-level-low-level-languages

 

프로그래밍 언어는 컴퓨터 시스템을 구동시키는 소프트웨어를 작성하기 위한 형식 언어이다. 고급 언어일수록 사람이 사용하는 언어에 가깝다. 고수준 언어 (high-level programming language)는 사람이 이해하고 작성하기 쉽게 만들어진 언어 (ex: Python, Java, C)이다. 반면, 저수준 언어 (low-level programming language)는 컴퓨터가 이해하고 실행할 수 있는 언어 (ex: 기계어, 어셈블리어)이다.

 

컴파일 언어 (Compile language)

 

컴파일 언어는 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어를 말한다. 컴파일은 컴파일 언어로 작성된 소스 코드 전체를 저급 언어로 변환시키는 과정을 말하며, 컴파일러는 컴파일을 수행해주는 도구이다. 추가로, 목적 코드 (object code)는 컴파일러를 통해 저급 언어로 변환된 코드를 말한다.

 

https://hpc-wiki.info/hpc/Compiler

 

컴파일러는 개발자가 작성한 소스 코드 전체를 탐색하여 소스 코드에 문법 오류, 실행 가능한지를 판별하고 저급 언어로 변환한다. 이때, 소스 코드 내에서 오류가 있으면 컴파일을 실패한다.

 

인터프리터 언어 (Interpreter language)


인터프리터 언어는 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 언어이다. 이로 인해, 소스 코드 전체를 저급 언어로 변환하는 컴파일러 언어와 다르게 오류 직전 코드까지 실행된다. 여기서 인터프리터는 소스 코드를 한 줄씩 저급 언어로 변환하여 실행해주는 도구이다.

 

https://medium.com/from-the-scratch/stop-it-there-are-no-compiled-and-interpreted-languages-512f84756664

 

일반적으로 컴파일 언어가 인터프리터 언어보다 속도가 빠르다. 그러나 컴파일과 인터프리터 언어가 완변히 구분되지 않는다. 자바의 경우 저급 언어로 변환되는 과정에서 컴파일과 인터프리터를 동시에 수행한다. 파이썬은 인터프리터 언어이지만 컴파일도 한다.

728x90
반응형
LIST