프로그래밍: 프로그램을 만드는 행위
프로그래밍 언어: 프로그램을 만들때 사용하는 컴퓨터언어
- 저급 프로그래밍 언어: 컴퓨터가 이해하기 쉬운 언어(기계어,어셈블리어)
- 고급 프로그래밍 언어: 가독성이 좋음(C,C++,자바,파이썬,베이직)
프로그램: 어떤 문제를 해결하기 위해 주어지는 처리방법과 순서를 기술한 명령문 집합체
소프트웨어: 프로그램과 관련된 정보 및 문서 일체
커널: 운영체제의 핵심 적인 기능
발전과정
A언어 (ALGOL) algorithm Language 의 약자.
B언어 켄톰슨이 BCPL(Basic CPL)을 만들게됨.
B언어는 자료형이 없어 C언어가 개발됨.
C언어 개발
- 1972년 벨 연구소 켄 톰슨과 데니스 리치에 의해 개발
- 절차 지향형 언어, C++에서 객체 지향형 언어로 발전됨
- 유닉스 운영체제에서 사용하기위해 개발된언어
C언어 특징
- 이식성이 좋음(윈도우 운영체제로 만들어진 프로그램이어도 다른 운영체제에서도 사용이가능함)
- 다른 언어에 비해 하드웨어 제어가 뛰어남
- 구문이 간결하고 명확함
- 다른 프로그래밍 언어도 쉽게 익힐 수 있음
컴파일러(해석기,번역기): 소스코드를 컴퓨터가 이해할수있는 형태로 바꾸는 과정
장점- 한번 컴파일 하면 빠르게 실행가능
단점- 프로그램 일부만 수정해도 전체 프로그램을 다시 컴파일 해야함
인터프리터: 고급언어를 기계어로 번역해주는 역할(파이썬,Basic)
장점- 컴파일 단계가 필요없음, 대화형 언어에 편리함
단점- 실행할 때마다 기계어로 바꾸는 과정을 다시 수행해야함
인터프리터와 컴파일러의 차이점: 컴파일러는 원시코드 전체, 인터프리터는 한 줄씩 읽어 들여 목적 코드로 바꿈
컴파일러 동작과정
- 소스코드 작성(확장자 *.c)
- 컴파일-> 목적코드를 생성
- 링크 -> 여러 목적코드를 결합
- 빌드 ->컴파일과 링크를 합하는 과정
- 실행파일 생성(확장자*.exe)
통합 개발 환경(IDE, Intearated Development Environment)
코딩, 디버그, 컴파일, 배포 등 할수있는 환경을 제공