C언어를 제대로 배우는 방법
C언어를 공부하는 이유
- 이후에 배우는 프로그래밍 강의에 이해를 위해
- 뛰어난 프로그래머의 기초
제대로 배우는 방법
따라하며 배우기 - 사고과정 하는 방법까지 배울 수 있다.
나선형 교육과정 - 핵심이 되는 지식을 공부하면서 주변 중요 개념들 함께 익히기.
처음부터 차근히 예제를 따라해보자! - 그래도 타이핑은 할 수 있어야 한다!
C언어의 탄생
노키아 벨 연구소에서 하는 일
Alexander Graham Bell(최초의 실용적인 전화기의 발명가)
↓ ↓ ↓
노키아 벨 연구소
- 트렌지스터 발명
- 인공지능, 딥러닝, 빅데이터 정보이론
- C언어
* Dennis Ritchie(1941-2011) & Ken Thompson(1943-) 유닉스 개발팀
C언어 개발 (Born in 1972)
* 유닉스를 어셈블리어로 만드는 중 C를 개발 → 유닉스 C언어로 개발
* C언어 개발 당시에도 BASIC / Fortram 같은 언어가 있었음
* Brian Wilson Kernighan(1942-) 유닉스 개발팀
1978 K&R C / 1988 ANSI C 출간
C언어의 듀토리얼서
C언어의 특징
- C++ 장단점과 매우 비슷
- 장점
* 프로그램의 효울성을 높일 수 있다.
* 강력하면서도 유연하다.(못하는게 X. 모든 곳 다 사용하기엔 개발자 효율성 ↓)
* 프로그래머 중심이다.(많은 권한 / 많은 책임)
* 다른 시스템으로 이식하기 좋다.(원도우즈에서 개발 한 프로그램 다른 OX로 옮기기 쉬움)
- 단점
* 주의를 기울려야 한다. 프로그래머에게 많은 책임이 따른다.
- C언어가 쓰이는 곳
* Unix 운영 체제
* 컴퓨터게임
* 임베디드 시스템
* 자동화 공장
* 루카스 필름(스타워즈 VFX)
* 등 아주 쓰이는 곳 많아
- C언어는 어디로 가는가?
* 매년 1순위 언어는 아니지만 늘 순위권에서 사라지지 않아.
* C(C++) 주언어는 아니라도 꼭 사용
C언어의 표준
→ 추가만 없을 뿐 꾸준히 관리 하는 중
- K&R C (classic C) 1978.02.22
* 유닉스와 함께 제공 된 라이브러리가 사실상의 표준
- ANSI C89 / IOS C90
* 프로그래머를 믿어라
* 프로그래머가 필요한 일을 하는 것을 방해하지 마라
* 언어를 작고 단순하게 유지해라
* 한 연산을 할 때 단 한 가지 방법만 제공해라
* 호환을 보장 할 수 없다 하더라도 속도를 빠르게 해라
- ANSI/IOS C9X Committee (C99)
* 국제적인 문자 집합 추가
* 64비트 프로세서 대응
* 과학 공학 수치 계산 적합도 개선(Fortran 대체)
* 언어를 단순하게 유지
"커미티는 C가 아니라 C++이 크고 야심찬 언어가 되는 것을 허용하는 것에 동의했다" - C는 표준을 거의 추가 X / C++은 지금도 표준 추가 중
- The C11 Standard
* C99의 일부를 선택적인 기능으로 변경
* 멀티 프로세서 대응 concurrent programming
CPU1개의 코어에서 최대치 뽑아내는 것에서 여러개의 코어를 호환해서 CPU를 빠르게 하자로 바뀜
- The C18 Standard
* C11의 기능적 결함 수정
* 다른 기능 추가 X
소프트웨어 개발의 7가지 7단계
1. 목적을 정의한다.(필요한 기능을 세세하게)
2. 프로그램을 설계한다.
3. 코드를 작성한다.
4. 컴파일 한다.(프로그래밍 언어를 컴퓨터 언어로 변환)
5. 실행시켜 본다.(=Run)
6. 시험 해보고 오류가 있다면 수정한다.(=디버깅)
7. 프로그램을 유지하고 개선해 나간다.
'프로그래밍언어 > C언어' 카테고리의 다른 글
[C language] C의 해부학 (0) | 2020.11.14 |
---|---|
[C language] 비주얼 스튜디오 코드로 C언어하기(+ C++맛보기) (0) | 2020.11.14 |
[C language] 컴파일러와 링커 (0) | 2020.11.13 |
[C language] C언어와 함수 (0) | 2020.11.05 |
[C language] 비주얼 스튜디오 2019로 C언어하기 (0) | 2020.11.05 |