프로그램의 형태

  • 프로그램은 무엇인가?
  • 컴퓨터는 어떻게 프로그램을 이해하는가?
  • 프로그램이 구동될때 하드웨어는 어떤 동작을 취하는가?

고급언어

  • 일반적으로 언급되는 프로그래밍 언어
  • c언어, python, java등 (인간이 이해할 수 있도록 추상화 시킨 언어)
  • 고급언어를 컴파일러가 어셈블리어로 번역

어셈블리어

  • 컴파일러로 부터 생성된 어셈블리어는 기계가 이해할 수 있는 형태로 번역됨
  • 기계사고방식의 언어
  • 어셈블러는 어셈블리어를 기계어로 번역

기계어

  • 기계어는 기수가 2인 숫자로 구성됨
  • 숫자 단위 하나는 비트
  • 컴퓨터가 이해할 수 있는 비트들의 집합

시스템 소프트웨어

  • 공통적으로 필요한 서비스를 제공하는 소프트웨어
  • 운영체제,컴파일러,로더,어셈블러
  • 프로그램 - 하드웨어간이 인터페이스 역할

고급언어 vs 어셈블리언어,기계어

High Level Language

  • 기계어를 고도로 추상화한 표헌으로써 인간이 이해하기 쉬운 형태
  • 프로그램을 개발한 기종에 상관없이 어느 컴퓨터에서든 실행가능한 형태
  • 컴파일 과정에서 불필요한 instruction이 생성되므로 다소 속도가 느림

Low Level Language

  • 컴파일러나 어셈블리어가 생성하는 불필요한 instruction을 최소화 가능
  • 기계적 사고 방식을 강효하기 때문에 프로그램 구성을 위한 소요가 큼