프로그래밍 언어, Programming Language

프로그램과 프로그래밍 언어

  • 프로그램이란? 컴퓨터가 실행해야할 명령과 순서를 쓴 문서

  • 이러한 문서를 작성하는 언어가 바로 프로그래밍 언어!

컴퓨터는 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

프로그래밍 언어의 Level

  • 인간의 언어와 비슷할수록 고수준언어, 컴퓨터가 해석하기 쉬울수록 저수준언어라고 한다.

컴퓨터←→인간

기계어

저수준언어

고수준언어

에셈블리어

C언어, C#, Java, Python, Go 등

코딩을 할 때 발생하는 일

  • 프로그래밍 언어로 코딩을 한다.

  • 프로그램을 빌드하여 컴파일 되면 개발자가 작성했던 인간의 언어가 기계어로 변환된다.

  • 컴퓨터는 바로 이 기계어를 읽는 것이다.

정적언어(컴파일) vs. 동적언어(인터프리터)

정적언어동적언어

해석과정

코딩 → 빌드 → 기계어

코딩 → 빌드로 인한 중간상태

특징

전체 프로그램의 컴파일 과정을 거친다.

프로그램을 읽을 때 필요한 부분만 중간중간 기계어로 변환해서 읽는다.

대표언어

C, C++, Go

Java, Python, C#, Javascript

돈까스에 비유

돈까스를 처음부터 모두 잘라서 찍어먹는 것

돈까스를 한조각씩 잘라서 먹는 것

속도

한꺼번에 컴파일된 내용을 읽기만 하면 되니까 빠르다

그때그때 해석해야하기에 느리다

Last updated