프로그램과 프로그래밍 언어
•
프로그램이란? 컴퓨터가 실행해야할 명령과 순서를 쓴 문서
•
이러한 문서를 작성하는 언어가 바로 프로그래밍 언어!
컴퓨터는 0과 1밖에 모르는데 어떻게 인간의 언어(글)이 해석될 수 있을까
컴퓨터에서 프로그램이 해석되는 과정은 다음과 같다.
•
인간이 C, Java, Javascript 등으로 프로그램을 작성한다.
•
인간의 언어로 된 이 프로그램을 컴퓨터가 읽을 수 있는 기계어로 변환한다.
•
컴퓨터는 0과 1로 변환된 프로그램을 읽어 실행한다.
예를 들어보자
•
인간이 작성한 프로그램은 다음과 같이 명령어와 데이터의 무수한 나열일 것이다.
◦
참고) 명령어를 오퍼레이터, 데이터를 오퍼핸드라고 한다.
•
ADD 등의 명령어 문자는 OPCODE 에 의해서 4자리 이진수로 정의가 되어있다.
•
따라서 아래의 프로그램은 각각 화살표와 같이 변환되어 컴퓨터에 의해 읽힐것이다.
ADD 3, 4 -> 0001 0011 0100
SUB 6, 5 -> 0002 0110 0101
MUL 7, 8 -> 0003 0111 1000
DIV 9, 3 -> 0004 1001 0011
Plain Text
복사
프로그래밍 언어의 Level
•
인간의 언어와 비슷할수록 고수준언어, 컴퓨터가 해석하기 쉬울수록 저수준언어라고 한다.
컴퓨터 | ←→ | 인간 |
기계어 | 저수준언어 | 고수준언어 |
에셈블리어 | C언어, C#, Java, Python, Go 등 |
코딩을 할 때 발생하는 일
•
프로그래밍 언어로 코딩을 한다.
•
프로그램을 빌드하여 컴파일 되면 개발자가 작성했던 인간의 언어가 기계어로 변환된다.
•
컴퓨터는 바로 이 기계어를 읽는 것이다.
정적언어(컴파일) vs. 동적언어(인터프리터)
정적언어 | 동적언어 | |
해석과정 | 코딩 → 빌드 → 기계어 | 코딩 → 빌드로 인한 중간상태 |
특징 | 전체 프로그램의 컴파일 과정을 거친다. | 프로그램을 읽을 때 필요한 부분만 중간중간 기계어로 변환해서 읽는다. |
대표언어 | C, C++, Go | Java, Python, C#, Javascript |
돈까스에 비유 | 돈까스를 처음부터 모두 잘라서 찍어먹는 것 | 돈까스를 한조각씩 잘라서 먹는 것 |
속도 | 한꺼번에 컴파일된 내용을 읽기만 하면 되니까 빠르다 | 그때그때 해석해야하기에 느리다 |