Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

컴퓨터 언어의 종류와 특징: 기계어·어셈블리어·고급 언어 총정리

컴퓨터 언어란 무엇인가?

프로그래밍 언어는 사람이 컴퓨터에 명령을 전달하기 위해 사용하는 수단으로, 반드시 컴퓨터가 이해하고 처리할 수 있는 형태로 작성되어야 합니다. 컴퓨터 언어는 발전 단계와 사용 편의성에 따라 크게 세 가지 유형으로 분류됩니다.

  • 기계어(Machine Language)
  • 기호 언어(어셈블리어, Assembly Language)
  • 고급 언어(High-Level Language)

1. 기계어(Machine Language)

컴퓨터는 기계이며, 그 메모리에는 오직 0과 1만 저장할 수 있습니다. 따라서 컴퓨터에 직접 명령을 내리려면 0과 1로 이루어진 이진 코드(Binary Code) 형태로 작성해야 합니다.

이처럼 이진 코드로 작성된 프로그램은 별도의 변환 과정 없이 컴퓨터에 바로 입력되어 실행될 수 있는데, 이것이 바로 기계어입니다.

기계어의 장점

  • 번역 과정 없이 곧바로 실행되므로 실행 속도가 매우 빠릅니다.

기계어의 단점

  • 0과 1의 나열로 구성되어 있어 프로그램을 작성하거나 읽기가 매우 어렵습니다.
  • 기계어 명령어를 암기하기가 힘듭니다.

2. 기호 언어(어셈블리어)

기호 언어는 흔히 '어셈블리어'라고도 불립니다. 어셈블리 프로그램은 '니모닉(Mnemonic)'이라 불리는 기호로 작성됩니다.

니모닉은 약어 형태로 되어 있어 쉽게 외울 수 있는 정보를 의미합니다. 예를 들어 덧셈 명령은 ADD, 뺄셈 명령은 SUB처럼 의미를 연상할 수 있는 기호로 표현됩니다.

기호 언어의 장점

  • 기계어에 비해 읽고 쓰기가 훨씬 쉽습니다.
  • 니모닉은 약어 형태라 기억하기 쉽습니다.

기호 언어의 단점

  • 특정 기계(하드웨어)에 종속적입니다.
  • 실행 속도가 느립니다.
  • '어셈블러(Assembler)'라는 번역 프로그램을 통해 기계어로 변환한 후에야 실행할 수 있습니다.

3. 고급 언어(High-Level Language)

사람이 일상적으로 사용하는 자연어에 가까운 형태로 만들어진 언어를 고급 언어라고 합니다. 조건문, 반복문 등의 제어 구조와 입출력(I/O) 기능을 갖추고 있어 프로그램 작성이 훨씬 편리합니다.

대표적인 예로 FORTRAN, COBOL, PASCAL, C, C++ 등이 있습니다.

고급 언어의 장점

  • 기계에 독립적이므로 프로그램의 이식성(Portability)이 높습니다.
  • 배우고 이해하기 쉽습니다.
  • 프로그램 작성에 걸리는 시간이 적습니다.

고급 언어의 단점

  • 고급 언어로 작성된 프로그램은 실행을 위해 반드시 기계어로 변환하는 번역 과정이 필요합니다.
  • '컴파일러(Compiler)' 또는 '인터프리터(Interpreter)'가 고급 언어를 기계어로 변환합니다.
  • 컴파일러는 프로그램 전체를 한꺼번에 변환하는 반면, 인터프리터는 한 문장씩 순차적으로 변환하며 실행합니다.

세 가지 언어 비교 요약

구분기계어어셈블리어고급 언어
작성 형태0과 1의 이진 코드니모닉(약어 기호)자연어에 가까운 문법
실행 방식직접 실행어셈블러로 변환 후 실행컴파일러/인터프리터로 변환 후 실행
실행 속도매우 빠름느림비교적 느림
이식성없음(기계 종속)없음(기계 종속)높음(이식 가능)
작성 난이도매우 어려움중간쉬움

결론적으로, 컴퓨터 언어는 인간의 편의성을 높이는 방향으로 기계어에서 기호 언어, 그리고 고급 언어로 발전해 왔습니다. 오늘날 대부분의 개발자는 생산성과 이식성이 뛰어난 고급 언어를 사용하며, 하드웨어를 세밀하게 제어해야 하는 경우에만 어셈블리어나 기계어 수준의 지식을 활용합니다.