Machine Code¶
기계어(Machine Language)라고도 불리는 Machine code는 CPU가 직접 이해(decoding)하고 실행할 수 있는 저수준의 프로그래밍 언어임.
사실 프로그래밍 언어라기 보다 CPU가 지원하는 "bit pattern의 명령어의 집합" 이라고도 볼 수 있음.
때문에 binary code라고도 불린다.
- 1940년대-1950년대의 초기 컴퓨터는 기계어로 프로그래밍되었음.
- ENIAC, UNIVAC와 같은 초기 컴퓨터들은 플러그보드와 스위치를 사용하여 명령어를 입력하는 방식으로 machine code를 사용함.
- 초기 기계어는 매우 기본적인 명령어 집합으로 구성되어 있었음.
- 기계어는 직접적으로 하드웨어와 상호 작용함.
ENIAC와 같은 초기 컴퓨터의 프로그래밍은 현대적인 의미의 기계어 프로그래밍과 다르지만,
본질적으로 기계어 프로그래밍의 원리를 따른다고 볼 수 있음.
당시의 플러그보드와 스위치로 명령어를 입력하는 방식은,
프로그램의 논리와 데이터를 물리적인 하드웨어 설정으로 표현한 것으로, 이는 기계어 프로그래밍의 초기 형태로 볼 수 있음.
하지만 1950년대에 machine code 의 mnemonic 인 assembly language가 개발 (1949년 EDSAC에서 최초로 사용되었다고 알려짐)되면서 사람이 직접 기계어로 프로그램하는 경우는 사리지게 됨.
Machine code는
- binary code임
- Hardware 종속적 (CPU가 지원하는 명령어집합임)
- 가장 빠른 처리 속도를 자랑.
- Hardware의 지식이 필수적이고 사람이 읽거나 작성하기가 매우 어려움.