본문 바로가기
KNOU/요약정리

[C 프로그래밍] C언어의 정의

by bottlesun 2023. 5. 10.
728x90

프로그래밍 언어

사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어

→ 기계어, 어셈블리어, C, Cpp, C#, JAVA …

컴파일러

프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하는 프로그램 (번역기 역할)

컴파일러 설명

  • 어셈블러(assembler)

기호로 표현된 어셈블리 코드를 기계어로 번역하는 번역기

  • 인터프리터(interpreter)

소스 프로그램을 한번에 변환시키는 컴파일러와 다르게 프로그램을 한단계씩 기계어로 해석하여 실행하는 언어처리 프로그램

C언어의 역사

Dennis Ritchie(데니스 리치)가 1972년에 개발

유닉스 운영체제 구현에 사용할 목적으로 개발

→ 컴퓨터 기종간 호환성을 가진 고급언어인 동시에 하드웨어를 제어하는 언어 저급언어의 역할도 필요해서 만들어짐

어셈블리 언어로 된 유닉스 운영체제가 C언어로 대체

C언어의 특징

프로그램 이식성이 높다

간단한 문법표현으로 함축적인 프로그램 작성이 용이

저급언어 특성을 가진 고급언어

저급언어 와 고급언어의 차이

저급언어 고급언어

기계어를 직접 사용하여 작성 사람이 이해하기 쉬운 형태의 언어로 작성
하드웨어를 직접 다루는 데에 적합 추상화된 개념을 사용하여 프로그래밍 가능
프로그래밍이 어렵고 유지보수가 어려움 프로그래밍이 상대적으로 쉽고 유지보수가 용이함
이식성이 낮음 이식성이 높음

프로그램 개발단계

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

C 프로그램 작성 과정

코딩 → 컴파일 → 링킹

  1. 코딩 단계 (작성단계)

주어진 문제에 대한 설계를 바탕으로 코드를 작성하여 코드 파일을 생성 ex) hello_world.c

  1. 컴파일 단계 (변환 / 번역 단계)

소스파일을 목적파일로 변환하는 과정 (2진수로 된 기계어 obj 파일로 변환) ex) hello_world.obj

  1. 링킹 단계 (파일생성)

다른 목적파일 및 라이브러리들을 하나의 파일로 합쳐 목적파일들을 실행파일로 변환하는 과정 (프로그램 생성) ex) hello_world.exe

C프로그램의 기본구조

/* 도입부 */
#include<stdio.h>
int add(int x ,int y);

/* 메인 */
void main()
{
int i,j ,sum;
printf("함수의 호출 \\n")
i = 10 , j = 20;
sum = add(i,j);
printf("%d,%d=%d",i,j,sum);
}

/* 호출한 함수 */
int add(int x, int y){
int tot;
tot = x + y;
return tot;
}

소스코드

프로그램 안에 있는 명령어

목적파일

obj 확장자를 갖는 파일로 기계어들의 집합으로 이루어진 파일

링커

여러 목적파일과 라이브러리 파일을 연결해주는 도구

예약어

C언어에서 미리 정의되어 있는 단어

728x90

댓글