1. 프로그래밍 언어란?
프로그래밍 언어란 컴퓨터에서 일을 수행하는 프로그램을 작성하기 위해 사용하는 기호 체계 (네이버 지식백과)
저급언어 : 컴퓨터가 이해하기 쉬운 언어, 기계어
고급언어 : 사람중심의 언어(사람이 이해할 수 있는 언어), 기계어로 번역되어야 할 필요가 있음.
1.1 프로그래밍 언어의 종류
스크립트 언어, 인터프리터 언어, 컴파일 언어등 총 3가지로 나눌 수 있다.
- 컴파일 언어
컴파일은 어느 특정 언어를 동등한 의미를 갖는 기계어로 바꾸는것을 말한다.
[컴파일러] : 고급언어로 쓰인 프로그램을 컴퓨터에서 즉시 실행될 수 있는 형태의 목적 프로그램으로 바꾸어 주는 번역 프로그램.
출처 : 두산백과
컴파일러에 의해 고급 언어를 저급 언어로 번역하여 .obj(오브젝트 파일) 을 만들고, 실행가능한 파일(.exe)로 변환
출처 : http://www.programering.com/a/MTOyMjMwATA.html
[ 컴파일 과정 ]
1. 전처리 과정
소스코드상에서 헤더파일이나 매크로가 있다면, 해당 하는 내용들에 대한 기계어 변환을 해놓는다.
2. 컴파일 과정
바로 기계어로 변환하지 않고, 1차적으로 어셈블리 언어로 변환한다.
해당 언어의 문법에 맞게 작성되었는지 검증하기도 하는 과정
3. 어셈블러 과정
어셈블리 언어를 기계어로 변환하는 과정. obj 객체를 만들어낸다.
4. 링커 과정
라이브러리 파일[함수의 집합체] 과 obj 파일을 이용하여 실행 가능한 .exe 파일을 만드는 과정.
[ 컴파일 언어의 장점과 단점 ]
[장] 컴파일 한 후 계속 재 실행이 가능하므로, 한번 컴파일 한 후에는 빠르게 실행 할 수 있으므로 수행속도가 빠르다.
[단] 기계어로 변환하는데 많은 시간이 소요.
한줄의 언어가 때로는 몇 백줄의 기계어로 번역되어 메모리 낭비의 가능성이 생길 수 있다.
- 인터프리터 언어
중간 과정 없이 원시 프로그램을 직접 저급 언어로 바꾸면서 동시에 실행하는 언어
출처 : https://ruslanspivak.com/lsbasi-part1/
[ 인터프리터 언어의 장점과 단점 ]
[장] 프로그램이 실행되기 전까지 소스 형태를 유지하므로 메모리가 많이 필요하지 않다.
[단] 재실행 시 매번 소스를 디코딩 하면서 처리해야 하므로 소요 시간이 많이 걸린다.
* Java는 컴파일 언어와 인터프리터 언어를 합쳐놓았다.
Java는 자체 컴파일러인 Javac 를 통해 중간언어인 ByteCode로 변환. 이에 대한 결과값은 [.class]파일에 저장된다.
해당 ByteCode 는 JVM[Java Virtual Machin]의 인터프리터가 한줄 한줄 해석하여 기계어로 번역하여 실행.
'프로그래밍' 카테고리의 다른 글
[프로그래밍] 객체지향 언어의 특징과 C++ 과 Java 의 차이 (4) | 2016.05.06 |
---|