1.1 C언어의 탄생
- 트랜지스터를 개발한 벨 연구소에서 C언어가 개발됨 (C++도 벨 연구소에서 개발)
- 1969년부터 Unix를 만들다가 어셈블리어로의 개발에 한계를 느끼고 1972년에 C언어가 개발됨 (데니스 리치, 캠 톤슨)
1.2 C언어의 특징
- C언어는 운영체제(Unix)를 만들던 언어이므로, 효율성이 높고, 운영체제의 중요한 역할이 하드웨어 제어이므로 C언어는 하드웨어 제어에 강력하다
* 우리가 작성하는 모든 프로그램은 하드웨어를 사용하려고 작성하는 것 이다
1.3 C언어의 표준(Standard)
- 1978년 The C Programming Language 라는 책의 초판을 출간. 커니핸과 리치의 앞 글자만 따서 C 프로그래머들에게는 "K&R"로 불리는 이 책은, 비공식적이지만 오랫동안 C의 규격과 같은 역할을 함(K&R C or Classic C). Unix와 함께 배포되며 제공된 라이브러리가 사실상의 표준
- 이후 C언어가 발전하고 널리 쓰이며 다양한 종류의 컴파일러가 등장하고 서로 다른 문법을 지원하게 되자, C언어 국제 표준의 필요성이 대두됨
- ANSI C 89
- American National Standards Institute에서 설립한 최초의 C언어 표준. 이때 C언어의 정신이 정해짐
- ISO C 90 : International Organization for Standardization(국제 표준화 기구)가 ANSI C 내용을 채택. ANSI C와 내용은 같음.
- C 99 : 국제화 추가. 현재 가장 많이 쓰이는 표준안.
C는 단순하게 유지하여 최소화하고 강력하게 유지. 대신 C++에 여러가지 기능을 추가함 (C는 가볍고, C++은 무겁다)
- C 11 Standard : C언어는 여러 시스템 (Windows, Linux등)에서 사용하는데, 이 때 표준을 더 줄이면 각각의 시스템에서 최적화가 가능하므로 C99의 일부를 선택적 기능으로 변경
- C 18 Standard : C11의 결함 수정. 현재 기본 컴파일러 사용시 C 18 사용
* C언어는 꾸준히 관리가 되고 있다
1.4 소프트웨어 개발의 7가지 단계
- 목적을 정의 : 왜 필요한가? 목적 달성을 위해 필요한 기능 정리 필요
- 프로그램을 설계한다 : 목적 달성을 어떻게 할 것인지 계획 수립
- 코드를 작성한다 : 설계한 내용들을 실제 프로그래밍 언어로 옮김
- 컴파일 한다 : 컴파일 = 컴파일러가 내 코드를 기계어로 변환시켜줌
- 실행시켜본다 (Run)
- 시험해보고 오류가 있다면 수정한다 (Debugging)
- 프로그램을 유지하고 개선해 나간다
* 버그라는 용어의 유래
펀치 카드에 벌레가 껴 오류 발생 (Bug) -> 그 벌레를 제거함으로써 오류 해결 (Debugging)
강의 출처 : https://www.inflearn.com/course/following-c/dashboard
'Study_C, C++ > 홍정모의 따라하며 배우는 C언어' 카테고리의 다른 글
[홍정모의 따라하며 배우는 C언어] 1.8 C언어와 함수 (0) | 2021.07.06 |
---|---|
[홍정모의 따라하며 배우는 C언어] 1.5 통합개발환경 소개 ~ 1.7 비주얼 스튜디오 2019의 기본적인 사용법 (0) | 2021.07.02 |
[홍정모의 따라하며 배우는 C언어] 0.9 정보의 단위 ~ 1.0 C언어를 제대로 배우는 방법 (0) | 2021.06.30 |
[홍정모의 따라하며 배우는 C언어] 0.7 CPU의 기본 구조 ~ 0.8 CPU가 일하는 방법 (0) | 2021.06.29 |
[홍정모의 따라하며 배우는 C언어] 0.4-컴퓨터는 왜 2진수를 사용할까? ~ 0.6-컴퓨터 메모리의 기본 구조 (0) | 2021.06.29 |