프로그래밍 언어(Programming Language)

2026. 3. 15. 01:46·Etc/Web & CS

프로그래밍 언어

프로그래밍 언어는 두가지로, 저급언어와 고급언어로 나뉩니다. 아래에서는 저급언어와 고급언어가 뭔지 또한 관련 언어들의 특징에 대해서 알아보겠습니다.


저급 언어

저급 언어는 컴퓨터가 이해하기 쉬운 형태로 작성된 프로그래밍 언어를 말하며, 기계어와 어셈블리어가 이에 해당됩니다. 실행속도는 빠르지만 사람이 이해하기 어렵다는 단점이 있습니다. 아래에서 자세히 살펴보겠습니다.

 

기계어

  • 컴퓨터가 직접 이해할 수 있는 언어입니다.
  • 0과 1의 2진수 형태로 표현되며 수행 시간이 빠릅니다.
  • CPU에 내장된 명령들을 직접 사용하는 것으로, 프로그램을 작성하고 이해하기 어렵습니다.
  • 기종 마다 기계어가 다르므로 언어의 호환성이 없습니다.

 

어셈블리어

  • 하드웨어 제어에 주로 사용되며, 언어의 호환성이 없습니다.
  • 컴퓨터가 직접 이해할 수 없으므로 어셈블리어로 작성된 프로그램은 어셈블러 라는 프로그램을 사용하여 기계어로 번역해야지만 사용을 할 수 있습니다.

위와 같이 기계어는 컴퓨터가 직접 이해 할 수 있는 언어이며 사람이 이해하기는 힘든 언어 입니다. 그래서 나온 언어가 어셈블리어인데 해당 언어도 사람 마다 받아들여지기 어렵겠지만 어려운 기계어 보다는 사람에게 그나마 최적화 된 언어입니다. 아쉽게도 어셈블리어는 CPU가 이해하지 못하여 프로그래머가 어셈블리어로 작성한 코드는 어셈블러라는 프로그램을 사용해서 기계어로 번역해야지만 CPU가 이해할 수 있습니다.


고급 언어

고급 언어는 저급 언어와 다르게 인간이 이해하기 쉽도록 만들어진 프로그래밍 언어입니다. 아래에서 한번 고급언어의 특징을 알아봅시다.

 

  • 고급언어는 컴파일러 언어라고도 하며 인간이 실생활에서 사용하는 자연어와 비슷한 형태 및 구조를 가집니다.
  • 하드웨어에 대한 깊은 지식이 없어도 프로그램 작성과 수정이 용이합니다.
  • 컴퓨터가 이해할 수 있는 기계어로 번역하기 위해 컴파일러나 인터프리터가 사용됩니다.

 

고급 언어는 우리가 살면서 한번쯤은(?) 들어봤던 C언어, C++, JAVA, Python 등등 다양한 언어들이 속해 있습니다.


컴파일러와 인터프리터

컴퓨터는 기본적으로 기계어만 이해할 수 있기 때문에, 고급 언어로 작성된 프로그램은 반드시 기계어로 변환되는 과정을 거쳐야 합니다. 이때 사용되는 것이 바로 컴파일러(Compiler)와 인터프리터(Interpreter)입니다. 처음 접하는 사람에게는 다소 생소한 용어일 수 있지만, 두 프로그램 모두 고급 언어로 작성된 원시 프로그램(Source Program)을 컴퓨터가 이해할 수 있는 목적 프로그램(Object Program)으로 번역하는 역할을 합니다. 다만 프로그램을 번역하는 방식의 차이에 따라 컴파일러와 인터프리터로 구분됩니다.

 

컴파일러(Compiler)

컴파일러는 프로그램 전체 코드를 한 번에 기계어로 번역하는 프로그램입니다. 즉, 사람이 작성한 고급 언어 코드를 컴퓨터가 이해할 수 있는 기계어로 변환한 뒤 실행 파일을 생성하는 방식이라고 생각하시면 됩니다.

 

<예시>

  • C
  • C++
  • Go
  • Rust

 

컴파일러 방식은 프로그램 전체를 미리 번역한 후 실행하기 때문에 실행 속도가 빠르며, 실행 전에 오류를 확인할 수 있다는 특징이 있습니다.

 

인터프리터(Interpreter)

인터프리터는 프로그램의 코드를 한 줄씩 해석하면서 바로 실행하는 방식의 번역 프로그램입니다. 컴파일러처럼 전체 코드를 한 번에 번역하는 것이 아니라, 코드를 순서대로 읽으면서 그때그때 실행합니다.

 

<예시>

  • Python
  • JavaScript
  • Ruby

 

인터프리터 방식은 코드를 한 줄씩 해석하며 실행하기 때문에 실행 속도는 상대적으로 느리지만, 실행하면서 바로 결과를 확인할 수 있다는 특징이 있습니다.

 

구분 컴파일러(Compiler) 인터프리터(Interpreter)
번역 방식 전체 번역 한 줄씩 번역
실행 속도 빠름 느림
오류 발견 실행 전 실행 중

 

'Etc > Web & CS' 카테고리의 다른 글

도커(Docker)  (0) 2026.03.30
아키텍처(Architecture)  (0) 2026.03.13
'Etc/Web & CS' 카테고리의 다른 글
  • 도커(Docker)
  • 아키텍처(Architecture)
N_HYUN
N_HYUN
안녕하세요! 현이의 개발 공부방입니다.
  • N_HYUN
    현이의 개발 공부방
    N_HYUN
  • 전체
    오늘
    어제
    • 분류 전체보기 (29)
      • FrontEnd (0)
      • BackEnd (0)
        • Java (0)
      • DataBase (1)
      • TIL & 트러블 슈팅 (24)
      • Etc (4)
        • Theoretical Computer Scienc.. (1)
        • Web & CS (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
N_HYUN
프로그래밍 언어(Programming Language)
상단으로

티스토리툴바