본문 바로가기

카테고리 없음

컴퓨터 언어의 이해와 처리 과정 정리

반응형

컴퓨터 언어는 크게 고급언어와 저급언어로 나뉩니다. 고급언어는 일반적으로 개발자가 사용하는, 인간이 이해하기 쉬운 형태의 언어입니다. 반면, 저급언어는 컴퓨터가 직접 이해하고 처리할 수 있는 언어로, 주로 기계어(0과 1로 구성)와 어셈블리어로 구성됩니다.

고급언어와 저급언어

  • 고급언어: 개발자가 사용하는 언어로, 컴퓨터가 직접 이해할 수 없습니다. 이를 컴퓨터가 이해할 수 있는 언어로 변환해야 합니다.
  • 저급언어:
    • 기계어: 0과 1로만 구성된 컴퓨터의 기본 언어입니다.
    • 어셈블리어: 기계어보다 약간 더 이해하기 쉬운 형태로, 명령어로 구성됩니다.

고급언어에서 저급언어로의 변환

  • 컴파일러: 소스 코드 전체를 읽어 한 번에 기계어로 변환합니다. 컴파일 과정에서 오류가 발생하면 변환을 완료할 수 없습니다.
  • 인터프리터: 소스 코드를 한 줄씩 읽어 바로 기계어로 변환하고 실행합니다. 문제가 발생하면 그 시점에서 실행을 중단합니다.

컴파일 과정

  1. 전처리: 라이브러리, 매크로 등을 처리합니다. 이 시점에서 코드는 여전히 고급언어 상태입니다.
  2. 컴파일: 고급언어를 어셈블리어로 변환합니다.
  3. 어셈블링: 어셈블리어를 기계어로 변환합니다.
  4. 링킹: 서로 다른 파일들을 연결하여 하나의 실행 파일(.exe)을 생성합니다.

CPU의 명령어 처리

CPU는 명령어를 처리하여 연산을 수행합니다. 이 과정에는 다양한 연산과 데이터 처리 방식이 포함됩니다.

  • 연산 종류:
    • 산술 연산: 사칙 연산, 논리 연산 등
    • 제어 연산: 점프, 조건부 점프, 함수 호출 및 반환 등
    • 데이터 전송
    • 입출력
  • 오퍼랜드: 데이터 값 또는 데이터의 메모리 위치 주소를 저장합니다.
  • 데이터 위치 주소 저장의 이유: 오퍼랜드의 크기가 한정되어 있어 긴 데이터 값을 직접 저장할 수 없기 때문에, 데이터가 저장된 주소를 참조하여 필요할 때 데이터를 사용합니다.

명령어 주소 지정 방식

CPU는 메모리에서 데이터를 가져와 명령어를 처리합니다. 이를 위한 다양한 주소 지정 방식이 있습니다.

  • 즉시 주소 지정 방식: 오퍼랜드에 데이터 값을 직접 저장합니다.
  • 직접 주소 지정 방식: 오퍼랜드에 데이터의 유효 주소를 저장합니다.
  • 간접 주소 지정 방식: 유효 주소의 주소를 저장합니다. 공간은 넓게 사용할 수 있지만, 메모리 탐색으로 인해 속도가 느립니다.
  • 레지스터 주소 지정 방식: 레지스터에 데이터 값을 저장합니다.
  • 간접 레지스터 주소 지정 방식: 레지스터에 유효 주소가 저장되어 있으며, 이를 참조하여 값을 가져옵니다.

이러한 과정을 통해 고급언어로 작성된 코드는 저급언어로 변환되어 CPU가 이해하고 처리할 수 있게 됩니다.

반응형