Programming Language/C언어 기본문법

[C언어] Ch01) C언어 개론, Program

lxvxxu 2024. 6. 15. 21:52

 

 

프로그래밍 언어란?

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

 

기계어란?

컴퓨터가 이해할 수 있는 0과 1로 구성된 언어체계를 뜻한다.

 

컴파일러의 역할은?

Complier는 통역가 역할을 한다.

프로그래밍 언어로 작성한 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역하는 역할을 한다.

 

C언어의 역사

1971년, UNIX라는 운영체제의 개발을 위해 설계한 범용적인 고급 언어(High-level Language)

기존의 UNIX라는 운영체제는 어셈블리어(assembly)라는 저급(low-level)로 만들어졌기 때문에 하드웨어의 의존도가 높았다.(이를 '이식성이 낮다'고 표현함.)

 

하드웨어 의존도가 높다 = 의식성이 낮다.

CPU의 종류가 바뀌면 프로그램을 다시 작성해야 했던 것임.

 

어셈블리어의 저급 언어적 특징을 지니면서도 이식성이 좋고(하드웨어 의존도가 낮고 = 하드웨어의 종류가 바뀌어도 프로그램이 정상적으로 작동하고), 더불어 익히기도 쉬운 언어가 필요했는데 C언어가 이러한 요구조건을 모두 만족함.

 

아무튼 이렇게 C언어가 개발되고 UNIX의 90% 이상은 C언어로 대체되었다.

 

 

언어의 수준

High-level일수록 사람이 이해하기 쉬운 언어이며

Low-level로 갈수록 컴퓨터가 이해하기 쉬운 언어이다.

 

 

C언어는 객체지향과는 거리가 멀다.

 

C언어의 장점

1) C언어는 절차지향적 특징을 지닌다. 때문에 익숙해지기 쉽다. (적은 시간이 소모됨)

절차지향적이라는 키워드의 의미

정해진 순서의 실행흐름을 중시한다는 뜻

=> 인간의 일반적인 생각방식은 절차지향에 가깝기 때문에 익히기가 쉬운 것

 

2) C언어로 작성된 프로그램은 이식성이 좋다.

 

3) C언어로 구현된 프로그램은 좋은 성능을 보인다.

C언어는 기본적으로 성능에 민감한 소프트웨어의 개발에 주로 사용된다.

사용하는 메모리의 양이 상대적으로 적고, 속도를 저하시키는 요소들을 최소화한 언어이기 때문이다.

 

 

C 프로그램의 완성 과정

 

 

(출처: <열혈 C 프로그래밍>

 

 

세 번째 단계인 Link는 보통 컴파일의 과정에서 함께 진행되기 때문에

프로그램의 완성 과정을 위의 4단계가 아니라

'프로그램의 작성'과 '컴파일' 두 단계로 줄여서 이야기하기도 한다.

※ 링크가 뭔지는 아직 이해 못 해도 된다.

 

 

 

- 프로젝트 생성 시 [응용 프로그램의 종류]를 '콘솔 응용 프로그램'으로 설정해야 한다.

- C 프로그램을 이루는 파일의 종류는 크게 '소스파일'과 '헤더파일'로 나뉜다.

- VC++은 소스파일의 확장자를 참조하여 어떤 언어의 문법을 기준으로 컴파일할지 결정하므로

  소스파일 생성 시 '.c'를 명시할 것.

- 소스코드를 입력한 후 컴파일과 링크의 과정을 거쳐서 실행파일을 생성해야 하는데 

   VC++에서는 [솔루션 빌드]라는 메뉴를 통해서 컴파일과 링크를 동시에 처리한다.

- 단축키

   [F7] : 빌드

   [Ctrl] + [F5] : Program 실행