기계어
기계어 (機械語, machine code)는 컴퓨터가 직접 이해하고 실행할 수 있는 형태의 프로그래밍 언어이다. 컴퓨터 중앙 처리 장치(CPU)는 특정 기계어 명령어 세트를 이해하도록 설계되어 있으며, 이 명령어들은 2진수 형태의 코드 (0과 1의 조합)로 표현된다. 각 명령어는 CPU에게 특정 작업을 수행하도록 지시하며, 이러한 작업에는 데이터 이동, 산술 연산, 논리 연산, 조건 분기 등이 포함된다.
기계어는 어셈블리어와 함께 저급 언어로 분류된다. 어셈블리어는 기계어 명령어를 사람이 읽기 쉬운 형태의 니모닉(mnemonic)으로 표현한 것으로, 기계어와 일대일 대응 관계를 가진다. 어셈블리어를 기계어로 변환하는 과정을 어셈블(assemble)이라고 한다.
기계어는 특정 CPU 아키텍처에 종속적이다. 즉, 특정 CPU에서 실행되도록 작성된 기계어 코드는 다른 종류의 CPU에서는 실행되지 않을 수 있다. 이러한 이유로 기계어 프로그래밍은 매우 복잡하고 시간이 많이 소요되며, 오류가 발생하기 쉽다. 따라서 오늘날에는 대부분의 프로그래밍 작업이 C, C++, Java, Python과 같은 고급 언어를 사용하여 수행되며, 컴파일러나 인터프리터를 통해 기계어로 변환된다.
기계어를 직접 다루는 경우는 운영체제 커널 개발, 임베디드 시스템 프로그래밍, 성능 최적화가 필요한 특정 영역 등 매우 제한적이다. 기계어에 대한 이해는 컴퓨터 구조 및 동작 원리를 이해하는 데 중요한 역할을 한다.