명령어
컴퓨터를 동작시키는 실질적인 정보
- 무엇을 대상으로 무엇을 수행하라.
- 명령의 대상 + 명령의 동작
- 오퍼랜드로 연산코드를 수행하라.
- 오퍼랜드 : 명령어를 수행할 대상, 대상(데이터)이 직접 명시되기도 하고, 대상의 위치가 명시되기도함
- 연산코드 : 오퍼랜드로 수행할 동작
데이터
- 명령어의 대상
컴퓨터는 소스 코드를 곧장 이해할 수 있을까?
컴퓨터는 명령어를 이해한다.
소스 코드는 실행되기 전 명령어로 변환되어 실행된다.
소스코드와 명령어,데이터
-
소스 코드는 사람(개발자)가 이해하기 편한 언어
소스코드는 고급 언어라고도 함
-
명령어와 데이터는 컴퓨터가 이해하기 편한 언어
명령어와 데이터는 저급 언어라고도 함
저급 언어의 두 종류
CPU의 종류에 따라, 혹은 소프트웨어(컴파일러)에 따라 생김새가 달라질 수 있다.
- 기계어 (machine code)
- 어셈블리어 (assembly language) -> 기계어를 사람이 읽기 조금이라도 더 편하게 옮긴 언어
고급 언어에서 저급 언어로 변환되는 대표적인 방식
- 컴파일
- 인터프리터
컴파일
- 소스 코드 전체가 컴파일러에 의해 검사, 목적 코드로 변환
- C, C++, Rust
인터프리터
- 소스 코드 한 줄씩 인터프리터에 의해 검사, 목적 코드로 변환
- Python, JavaScript
잘못된 개념에 대해서 주의하자
- 소스 코드가 저급 언어로 변환되는 대표적인 방식일뿐. 컴파일 방식과 인터프리터 방식은 칼로 자르듯 구분되는 개념은 아니다.
- 컴파일 언어의 특성과 인터프리터 언어의 특성을 모두 갖춘 언어도 있다.
- 대표적으로 자바와 파이썬
- 파이썬도 컴파일 방식 가능하다.(신기함)