프로그래밍
정의
- 컴퓨터가 작업을 수행하기 위해 실행해야 하는 일련의 명령 모음을 작성하는 것
- 초기 컴퓨터 ENIAC 은 케이블을 어떤 순서로 장치들에 물리적으로 연결하느냐에 따라 동작이 달라졌다. 따라서 이 케이블을 연결하는 행위 자체가 초기의 프로그래밍이었다.
- 이후 프로그램 내장식 컴퓨터가 등장하면서, 기계어로 작성된 프로그램이 컴퓨터 하드웨어를 제어하는 방식으로 발전했고, 이때부터는 기계어를 작성하는 행위가 프로그래밍을 뜻하게 되었다.
- 지속적으로 발전해 어셈블리어, 그리고 현재 사용되는 고급언어들이 등장하고, 프로그래밍은 이들을 이용해 코드를 작성하는 것을 가리키게 되었다.
프로그래밍 언어
정의
- 프로그램을 작성하기 위해 사용되는 언어
- 인간과 컴퓨터 간 통역가(컴파일러)와 인간의 의사소통 수단
발전
제 1세대 언어 : 기계어
- 하드웨어가 직접 이해하고 동작할 수 있어야 함
- 따라서 0과 1로 이루어진 이진수로 작성됨. 기계 중심의 언어.
- 예 : 00000101 00010000 00000000
제 2세대 언어 : 어셈블리어
- 사람이 이해할 수 있는 단어 형태의 명령어로 구성된 프로그래밍 언어
- 2진수 형태의 기계어를 기호형태의 코드로 바꾼 것. 기계 중심의 언어.
- 예 : ADD AX, 0010H
제 3세대 언어 : 고급언어
- CPU가 달라지면 기계어 코드나 표현 방법이 달라지게 됨
- 따라서 하나의 환경에서 작성된 코드가 다른 환경에서 동작하지 못할 수도 없음
- 때문에 기계 중심의 언어가 아닌, 사람 중심의 언어가 등장함
- C, C++, Java, Python 등
- 예 : a += 16;
동작
- 고급 언어로 작성된 프로그램은 컴파일러, 인터프리터에 의해 어셈블리어로 번역된다.
- 어셈블리어는 어셈블러에 의해 기계어로 번역된다.
- 기계어는 하드웨어를 제어하여 작업을 수행하도록 한다.
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments