[KOCW 한국산업기술대학교 박정민 교수님] C 프로그래밍 1강

MinWoo Park·2021년 8월 15일
0

KOCW

목록 보기
1/19
post-thumbnail

Part1 C 언어 소개와 프로그램 작성 방법


1.1 C언어의 탄생

누가 만들었나?

  • 미국 AT&T사의 벨(Bell) 연구소의 연구원들이 만듦
  • 켄톰슨(Kenneth Lane Thompson), 데니스리치(Dennis Ritchie)

왜 만들었나?

  • 프로그램의 이식성을 높이기 위해.
    SW는 비용은 적게 들고, 효과는 높이자는 철학을 갖고 있음.
    즉, 재사용을 말한다.
    그러나 이전에는 소프트웨어를 만들면 A 컴퓨터에서는 작동이 되나 B 컴퓨터에서는 작동하지 않는 이식성 문제가 있었음.
    이를 해결하기 위해 켄톰슨이 만든 B 언어를 기반으로 데니스리치가 C 언어를 개발.

1.2 컴파일러란 무엇인가?

컴파일러란?

  • 인간이 만든 프로그램을 기계가 이해하도록 기계어로 변환하는 변환기, 해석기의 역할
  • pile: 포개 놓은 것, 더미
  • compile: 엮다, 편집하다, 명령어를 번역하다.

기계어란?

  • 기계가 이해하는 2진 숫자(0과 1)로 작성된 언어

1.3 프로그램 작성 4단계

프로그램 작성 방법 4단계 - 이론

  • Step1: 프로그램 작성 시 컴파일되지 않은 코드 그대로의 파일을 소스파일 이라고 함. => .c 파일
  • Step2: .c 파일을 가져다 컴파일러가 컴파일하여 기계가 이해할 수 있는 언어로 오브젝트 파일(기계어 파일)을 생성 => .obj 파일
  • Step3: .obj 파일을 가져다 링커가 링크(연결)하여 .exe 파일(실행 파일) 을 생성 => .exe
  • Step4: .exe파일을 실행 시 로더가 로딩(읽어들임, 파일을 메모리에 올림)함. 그럼 CPU가 실행. => 로더가 메모리에 로딩하여 CPU가 실행

프로그램 작성 방법 4단계 - 실습

우리가 관심있는 건 프로그램 작성과 실행
컴파일, 링크 단계는 우리 눈에 보이지 않고 신경쓰기에 복잡함.
그래서 1~4 단계까지 작업을 도와주는 소프트웨어를 '통합 개발 소프트웨어'라고 함.

  • step1: 코드 작성

  • step2~3: 컴파일 및 링크
    GNU 컴파일러 모음(GNU Compiler Collection,GCC), 유닉스/리눅스의 컴파일러를 사용하여 컴파일한다.
    터미널에 $ gcc Hello.c 입력 시 a.out(macOS 기준이고, 윈도우는 a.exe) 파일이 생성됨.

  • step4: 로더 및 실행
    로딩은 우리 눈에 보이지 않기에 로딩과 실행은 동시에 일어남.
    터미널에서 $ ./a.out 입력 시 printf 함수에 작성한 "Hello C world"가 출력됨을 확인할 수 있음.

1.4 C 언어의 특징

  • 이식성과 효율성이 좋음
  • 다른 프로그래밍 언어를 배우기에 좋음, 기초가 되는 언어이기 때문에
  • 지능형 서비스 로봇 제어
  • 절차지향 언어

1.5 C 언어의 학습 방식

  • 1단계: 교재에 있는 코드 분석
  • 2단계: 분석된 내용을 통해 교재를 참고하지 않고 코드 작성
  • 3단계: 나만의 코드 작성 후 , 코재의 코드와 비교

이러한 학습 단게는 어떤 공부를 할 때에도 적용이 될 만해서 기록


Reference

  • 강의: 박정민, 『C 프로그래밍』, KOCW 한국산업기술대학교, 1강
  • 교재: 박정민, 『열혈강의 C 언어 본색 명강의가 일으키는 C 언어 기적』, 프리렉 (2011), p5-23.
profile
물음표를 느낌표로 바꾸는 순간을 사랑하는 개발자입니다.

0개의 댓글