사전 정의

  • 프로그래밍 언어
    • 사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어
    • ex) 기계어, 어셈블리어, C, C++, C#, JAVA, PHP 등

  • 컴파일러
    • 프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해주는 번역기
    • 어셈블러 : 기호로 표현된 어셈블리 코드를 기계어로 번역하는 번역기
    • 인터프리터 : 소스 프로그램을 한번에 기계어로 변환시키는 컴파일러와는 달리 프로그램을 한 단계씩 기계어로 해석하여 실행하는 언어 처리 프로그램

C언어의 역사

  • Denis Richie(1972년)
  • UNIX 운영체제 구현에 사용할 목적으로 개발
  • 컴퓨터 기종간 호환성을 가진 고급언어이면서 하드웨어를 제어할 수 있는 새로운 언어가 필요
  • 어셈블리 언어로 된 UNIX 운영체제가 거의 C 언어로 대체

C언어의 특징

  • 프로그램 이식성이 높다
  • 간단한 문법표현으로 함축적인 프로그램 작성이 용이하다
  • 저급언어 특성을 가진 고급언어이다.

프로그램 개발 단계

  1. 프로그램 목적 정의
    • 요구 분석과 시스템 분석을 통하여 프로그램이 가져야 할 기능 정의
  2. 프로그램 설계
    • 분석된 기능을 처리할 수 있도록 프로그램 구조를 설계
  3. 소스코드 작성
    • 작성된 프로그램 설계를 기반으로 에디터를 사용하여 작성
  4. 컴파일/링크
    • 소스코드를 실행 가능한 코드로 변환하고 문법 검사
  5. 프로그램 실행
    • 프로그램 실행
  6. 테스트와 디버깅
    • 에러를 검사하고 디버깅
  7. 유지보수
    • 사용 중 발생되는 에러나 추가적인 변경사항을 처리

  • 에디터와 컴파일러 필요
    • 에디터 : 소스코드를 작성하여 저장할 수 있도록 도와주는 도구
    • C 컴파일러 : Turbo C/C++, Dev-C++, Visual C++, GCC, …

C 프로그램의 완성 과정

  • 코딩 -> 컴파일 -> 링킹
  • 코딩
    • 주어진 문제에 대한 설계를 바탕으로 소스코드를 작성하여 소스파일을 생성하는 과정
    • c라는 확장자로 저장 됨
  • 컴파일
    • 소스파일이 기계 언어의 목적 파일로 변환되는 과정
    • ex.c를 ex.obj로 변환해서 저장 됨

  • 링킹 단계
    • 목적 파일을 실행파일(execution file)로 변환하는 과정
    • 복수의 목적파일 또는 라이브러리가 연결
    • 최종적으로 ex.exe로 저장 됨

Updated: