# 컴퓨터 정보의 종류

컴퓨터가 받아들이고 처리하는 정보의 종류에는 프로그램 코드와 데이터가 있습니다. 데이터는 2진수 비트들의 조합으로 표현됩니다.

 

어떻게 데이터들이 2진수로 저장되고 처리될까요?

# 프로그램 코드

프로그램코드에는 고급언어 프로그램(high-level language), 어셈블리 프로그램(assembly program), 기게어(machine language)가 있습니다.

우리가 쓰는 java, c언어 등을 프로그래밍 언어를 고급언어라고 합니다. 고급언어는 영문자와 숫자로 만들어져 있어서, 사람이 이해하기는 쉽지만, 컴퓨터하드웨어는 디지털 회로들로 이루어져있기 때문에 고급언어를 이해하지 못합니다. 그래서 컴파일러라는 것이 존재하는데, 고급언어들을 컴퓨터하드웨어가 이해할 수있는 언어인 기계어로 번역을 하는 역할을 수행합니다. 

기계어는 각 CPU마다 차이가 있기 떄문에 언어간의 차이를 해결하기 위해, 고급언어와 기계어 사이의 중간 언어가 존재하는데 이를 어셈블리 언어라하고, 이 언어로 작성된 프로그램을 어셈블리 프로그램이라 합니다.

 

# 컴파일

컴파일러는 고급언어 프로그램을 기계어로 변환해주는 소프트웨어라고 설명했습니다. 컴파일은 원시코드(소스코드)를 목적코드(출력될 문서)로 변환하는 과정입니다.

고급언어로 작성된 프로그램을 실행시키는 방법으로는 컴파일과 인터프리터를 사용하는 방법이 있습니다. 인터프리터는 원시코드를 한줄한줄 순차적으로 읽어서 그 즉시로 결과를 실행해주는 방식으로 대화식 프로그래밍이라고도 합니다. 컴파일은 실행이 빠르다는 장점이 있지만, 프로그램이 아주 클 때는 인터프리터를 사용했을 때 컴파일 보다 빠를 수 있습니다.

컴파일러도 컴파일러가 실행되는 컴퓨터(혹은 운영체제)와 컴파일 목적코드가 실행될 컴퓨터(혹은 운영체제)가 같은지 다른지에 따라 두가지로 나뉘게 됩니다.

- native compiller : 같은 경우

- cross compiller : 다른경우 : 다른 컴퓨터 언어로 번역해주는 컴파일러

 

# 고급언어 → 기계어

고급언어에서 기계어로 번역 도식화

위 그림은 고급언어가 기계어로 번역되는 과정을 도식화한 예시입니다. 기계어 프로그램에서는 2진법으로 명령어를 처리하는데, 명령어의 비트 수와 용도 및 필드 구성방법을 지정해주는 형식을 가집니다. CPU마다 명령어 형식은 다릅니다. 예시로 보면,

명령어 형식

- 연산코드 필드(operation code field) : CPU가 수행할 연산을 지정합니다. 위 그림 예시로는 2^3=8개의 연산이 가능합니다

- 오퍼랜드 필드(operand field) : 명령어 실행에 필요한 데이터가 저장된 주소, 2^5=32개 주소에 저장될 수 있습니다.

 

'Computer Science > Computer System' 카테고리의 다른 글

컴퓨터 시스템 구성  (0) 2022.07.16
컴퓨터의 기본구조  (0) 2022.07.15

+ Recent posts