고급언어 : 사람이 이해하고 작성하기 쉽게 만들어진 언어
저급언어 : 컴퓨터가 직접 이해하고 실행할 수 있는 언어
컴파일 방식 - 소스 코드 컴파일 중 오류가 발생하면 소스 코드 전체가 실행되지 않는다.
인터프리트 방식 - 소스 코드 인터프리트 중 오류가 발생하면 오류 발생 전까지의 코드는 실행된다.
일반적으로 컴파일 언어가 인터프리터 언어보다 빠르다
→ 컴파일을 통해 나온 목적 코드는 컴퓨터가 실행할 수 있는 저급 언어이지만, 인터프리터 언어는 소스 코드 마지막에 이를 때까지 한 줄씩 저급 언어로 해석하며 실행해야 하기 때문이다.
명령어 - 연산 코드 + 오퍼랜드
연산 코드 (연산자) - 명령어가 수행할 연산
데이터 코드, 산술/논리 연산, 제어 흐름 변경, 입출력 제어
오퍼랜드 operand (피연산자) - 연산에 사용될 데이터, 연산에 사용할 데이터가 저장된 위치(주소)
1) 즉시 주소 지정 방식 - 연산에 사용될 데이터를 오퍼랜드 필드에 직접 명시
2) 직접 주소 지정 방식 - 오퍼랜드 필드에 유효 주소를 직접적으로 명시하는 방식
3) 간접 주소 지정 방식 - 유효 주소의 주소를 오퍼랜드 필드에 명시. 두 번의 메모리 접근이 필요하므로 상대적으로 느림
4) 레지스터 주소 지정 방식 - 연산에 사용할 데티어를 저장한 레지스터를 오퍼랜드 필드에 직접 명시. 직접 주소 지정 방식과 비슷함
5) 레지스터 간접 주소 지정 방식 - 연산에 사용할 데이터를 메모리에 저장하고, 그 주소를 저장한 레지스터를 오퍼랜드 필드에 명시하는 방법
스택 stack - 한 쪽 끝이 막혀있는 저장공간
LIFO(후입선출), PUSH, POP
큐 Queue - 양 쪽이 뚫려있는 저장공간
FIFO(선입선출)