[CS] 소스 코드와 명령어

정은아·2023년 12월 11일
post-thumbnail

모든 소스 코드는 컴퓨터 내부에서 명령어로 변환된다.
프로그래밍 언어가 어떻게 명령어가 되어 실행되는지 알아보자.

고급 언어와 저급 언어

  • 사람을 위한 언어를 고급언어라고 한다.
  • 컴퓨터가 직접 이해하고 실행할 수 있는 언어를 저급언어라고 한다.
    • 저급 언어에는 두 가지 종류가 있다. 기계어어셈블리어다.

    • 기계어 : 0과 1의 명령어 비트로 이루어진 언어다. 이진수로 나열하면 너무 길어지기 때문에 가독성을 위해 십육진수로 표현하기도 한다.
    • 어셈블리어 : 기계어는 오로지 컴퓨터만을 위해 만들어진 언어이기 때문에 사람이 읽기 어렵다. 0과 1로 표현된 명령어(기계어)를 읽기 편한 형태로 번역한 언어가 어셈블리어이다.
    • 개발자들에게 어셈블리어란 '작성의 대상'일 뿐만 아니라 '관찰의 대상'이다. 어셈블리어를 읽으며 컴퓨터가 어떤 과정을 거쳐 실행하고 작동하는지 파악할 수 있기 때문이다.

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

개발자들이 고급언어로 작성한 소스 코드는 결국 저급 언어로 변환되어 실행된다고 했는데, 그렇다면 고급 언어는 어떻게 저급 언어로 변환될까?

  • 컴파일 방식인터프리트 방식을 통해 변환된다.

    • 컴파일 방식으로 작동하는 프로그래밍 언어를 컴파일 언어라고한다.
    • 인터프리트 방식으로 작동하는 프로그래밍 언어를 인터프리터 언어라고한다.

  • 컴파일 언어

    • 컴파일 언어는 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어다.
    • 대표적인 언어로는 C가 있다.
    • 컴파일 언어로 작성된 소스 코드는 코드 전체가 저급 언어로 변환되는 과정을 거치는데, 이 과정을 컴파일 이라고 한다.
    • 컴파일을 수행해 주는 도구를 컴파일러 라고 한다.
    • 컴파일이 성공적으로 수행되면 개발자가 작성한 소스코드는 컴퓨터가 이해할 수 있는 저급 언어로 변환되는데, 그 코드를 목적코드 라고 한다.
  • 인터프리터 언어

    • 인터프리터 언어는 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급 언어이다.
    • 대표적인 언어로는 Python이 있다.
    • 소스 코드 전체가 저급 언어로 변환되는 컴파일 언어와 다르게, 인터프리터 언어는 한 줄씩 차례로 실행한다. 그 도구를 인터프리터라고 한다.
    • 인터프리터 언어는 소스 코드 전체를 저급 언어로 변환하는 시간을 기다릴 필요가 없다.
    • 소스 코드 내에 오류가 하나라도 있으면 컴파일이 불가능했던 컴파일 언어와 달리, 인터프리터 언어는 소스 코드를 한 줄씩 실행하기 때문에 소스 코드 N번째 줄에 문법오류가 있더라도 N-1번째 줄까지는 올바르게 수행한다.
    • 인터프리터 언어는 컴파일 언어보다 느리다.

목적파일 vs 실행 파일

  • 목적 코드로 이루어진 파일을 목적파일이라고 부른다.
  • 실행 코드로 이루어진 파일을 실행파일이라고 부른다.
  • 목적파일과 실행파일은 다른 의미를 갖는다. 목적 코드가 실행파일이 되기 위해서는 링킹이라는 작업을 거쳐야한다.
profile
꾸준함의 가치를 믿는 개발자

0개의 댓글