프로그래밍

정의

  • 컴퓨터가 작업을 수행하기 위해 실행해야 하는 일련의 명령 모음을 작성하는 것
  • 초기 컴퓨터 ENIAC 은 케이블을 어떤 순서로 장치들에 물리적으로 연결하느냐에 따라 동작이 달라졌다. 따라서 이 케이블을 연결하는 행위 자체가 초기의 프로그래밍이었다.
  • 이후 프로그램 내장식 컴퓨터가 등장하면서, 기계어로 작성된 프로그램이 컴퓨터 하드웨어를 제어하는 방식으로 발전했고, 이때부터는 기계어를 작성하는 행위가 프로그래밍을 뜻하게 되었다.
  • 지속적으로 발전해 어셈블리어, 그리고 현재 사용되는 고급언어들이 등장하고, 프로그래밍은 이들을 이용해 코드를 작성하는 것을 가리키게 되었다.

프로그래밍 언어

정의

  • 프로그램을 작성하기 위해 사용되는 언어
  • 인간과 컴퓨터 간 통역가(컴파일러)와 인간의 의사소통 수단

발전

제 1세대 언어 : 기계어

  • 하드웨어가 직접 이해하고 동작할 수 있어야 함
  • 따라서 0과 1로 이루어진 이진수로 작성됨. 기계 중심의 언어.
  • 예 : 00000101 00010000 00000000

제 2세대 언어 : 어셈블리어

  • 사람이 이해할 수 있는 단어 형태의 명령어로 구성된 프로그래밍 언어
  • 2진수 형태의 기계어를 기호형태의 코드로 바꾼 것. 기계 중심의 언어.
  • 예 : ADD AX, 0010H

제 3세대 언어 : 고급언어

  • CPU가 달라지면 기계어 코드나 표현 방법이 달라지게 됨
  • 따라서 하나의 환경에서 작성된 코드가 다른 환경에서 동작하지 못할 수도 없음
  • 때문에 기계 중심의 언어가 아닌, 사람 중심의 언어가 등장함
  • C, C++, Java, Python 등
  • 예 : a += 16;

동작

  • 고급 언어로 작성된 프로그램은 컴파일러, 인터프리터에 의해 어셈블리어로 번역된다.
  • 어셈블리어는 어셈블러에 의해 기계어로 번역된다.
  • 기계어는 하드웨어를 제어하여 작업을 수행하도록 한다.

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments