명령어

컴퓨터를 동작시키는 실질적인 정보

  • 무엇을 대상으로 무엇을 수행하라.
    • 명령의 대상 + 명령의 동작
  • 오퍼랜드로 연산코드를 수행하라.
    • 오퍼랜드 : 명령어를 수행할 대상, 대상(데이터)이 직접 명시되기도 하고, 대상의 위치가 명시되기도함
  • 연산코드 : 오퍼랜드로 수행할 동작

데이터

  • 명령어의 대상

컴퓨터는 소스 코드를 곧장 이해할 수 있을까?

컴퓨터는 명령어를 이해한다.

소스 코드는 실행되기 전 명령어로 변환되어 실행된다.

소스코드와 명령어,데이터

  • 소스 코드는 사람(개발자)가 이해하기 편한 언어

    소스코드는 고급 언어라고도 함

  • 명령어와 데이터는 컴퓨터가 이해하기 편한 언어

    명령어와 데이터는 저급 언어라고도 함

저급 언어의 두 종류

CPU의 종류에 따라, 혹은 소프트웨어(컴파일러)에 따라 생김새가 달라질 수 있다.

  • 기계어 (machine code)
  • 어셈블리어 (assembly language) -> 기계어를 사람이 읽기 조금이라도 더 편하게 옮긴 언어

고급 언어에서 저급 언어로 변환되는 대표적인 방식

  • 컴파일
  • 인터프리터

컴파일

  • 소스 코드 전체가 컴파일러에 의해 검사, 목적 코드로 변환
  • C, C++, Rust 컴파일

인터프리터

  • 소스 코드 한 줄씩 인터프리터에 의해 검사, 목적 코드로 변환
  • Python, JavaScript

잘못된 개념에 대해서 주의하자

  • 소스 코드가 저급 언어로 변환되는 대표적인 방식일뿐. 컴파일 방식과 인터프리터 방식은 칼로 자르듯 구분되는 개념은 아니다.
  • 컴파일 언어의 특성과 인터프리터 언어의 특성을 모두 갖춘 언어도 있다.
    • 대표적으로 자바와 파이썬
    • 파이썬도 컴파일 방식 가능하다.(신기함)