티스토리 뷰
안녕하세요, IT디자이너입니다.
첫 포스팅은 C언어의 문법이나 기술이 아닌 C언어의 역사에 대해서 포스팅하겠습니다.
모든 기술은 필요에 의해서 탄생한다고 생각합니다. C언어 또한 인간의 필요에 의해서 개발된 도구 중 하나입니다.
C언어의 탄생배경으로는 "UNIX"가 결코 빠질 수 없는 키워드이며, 탄생의 이유입니다.
켄 톰슨과 데니스 리치는 벨 연구소에서 "UNIX"운영 체제를 개발할 때 "어셈블리어"라는 "Low-Level 언어"를 사용하였습니다.
하지만, 어셈블리어는 특정 하드웨어에 종속적인 언어로서 이 언어로 작성된 프로그램은 다른 하드웨어로 이식할 수 없다는 단점이 있었습니다. 하나의 기능을 하는 프로그램을 CPU의 종류만큼 여러 번 작성해야한 하는 것입니다.
즉, 새롭고 쉽고 간편하고 어떠한 작업을 할 때 조금 더 효율적인 도구가 필요했던 것입니다. 그리하여 ALGOL 60부터 CPL, BCPL을 거쳐 개선되고 B언어를 개발 후 1972년에 벨 연구소에서 데니스리치와 켄톰슨이 B언어를 좀 더 개선하여 C언어가 탄생하였습니다.
C언어의 특징
1. C언어로 작성된 프로그램은 다양한 하드웨어로의 이식성이 좋습니다.
2. C언어는 절차 지향 프로그래밍 언어로, 코드가 복잡하지 않아 상대적으로 유지보수가 쉽습니다. // 객체지향보다는 유지보수성이 안좋다.
3. C언어는 저급 언어의 특징을 가지고 있으므로, 어셈블리어 수준으로 하드웨어를 제어할 수 있습니다.
4. C언어는 코드가 간결하여, 완성된 프로그램의 크기가 작고 실행 속도가 빠릅니다.
C언어의 단점
1. C언어는 저급 언어의 특징을 가지고 있으므로, 자바와 같은 다른 고급 언어보다 배우기가 쉽지 않습니다.
2. C언어는 다른 언어와 달리 시스템 자원을 쉽게 제어할 수 있으므로, 프래그래밍하는데 세심한 주의를 기울여야 합니다.
이렇게 기술의 역사를 알게되면, 그 기술의 탄생 이유에서 해당 기술의 이점과 사용방법을 조금 더 이해하기 쉽게 다가갈 수 있게됩니다.
'Language > C 언어' 카테고리의 다른 글
C언어의 함수 사용방법 (0) | 2020.02.08 |
---|---|
C언어의 리터럴(Literal) 상수와 심볼릭(Symbolic) 상수 (0) | 2020.02.08 |
C언어의 여러가지 데이터 타입의 연산 방식 (0) | 2020.02.07 |
printf(), scanf() (0) | 2020.02.05 |
C언어의 컴파일 단계 (0) | 2020.02.05 |
- Total
- Today
- Yesterday
- C언어 #C++ #파일 입출력 #텍스트파일 #IT디자이너
- 디버그 #Debug #Release #디버그와 릴리즈 차이 #C언어 #C++언어 #어셈블리어
- C언어 #IT디자이너
- C언어 #C++ #시간 함수 #타이밍 맞추기 #timer interrupt #IT디자이너
- 어셈블리어 #IT디자이너 #C언어 #C++언어 #어셈블리 #어셈블러
- QUEUE #큐 #자료구조 #원형 큐 #Circle Queue #IT디자이너 #큐 과제 #C언어 #C++언어
- IT디자이너 #C언어 #C++ #IT디자이너 #코딩테스트
- IT디자이너 #C언어 #C++ #속성지정자 #기억클래스 #IT #const #static #register #volatile #extern #auto #s
- C언어 #C++ #어셈블리어 #구조체 #구조체 특징 #IT디자이너
- C언어 #IT디자이너 #포인터 #배열 #포인터와 배열
- C언어 #C++ #IT디자이너 #함수 #재귀 함수 #스택 #자료구조 #페인팅
- 스택 #자료구조 #Stack #IT디자이너 #알고리즘 #C언어 #스택 과제 #C++
- C언어 #C++ #switch #if #어셈블리어 #switch문 사용 이유 #IT디자이너
- C언어 #C++ #어셈블리어 #재귀함수 #IT디자이너
- Debug #C언어 #C++ #비쥬얼스튜디오 #Release #IT
- C언어 #C++ #자료구조 #알고리즘 #IT디자이너 #버블 정렬 #BubbleSort
- C언어 #C++ #구조체 정렬 #pragma #IT디자이너
- C언어 #C++ #삼각함수 #IT디자이너 #문제풀이 #2진수 #16진수 #비트 #bit #비트연산자
- C언어 #포인터 #배열 포인터 #포인터 배열 #함수
- C언어 #C++ #IT디자이너
- C언어 #C++ #어셈블리어 #함수 호출 규약 #IT디자이너 #비쥬얼 스튜디오 #IT
- C언어 #자료구조 #C++ #연결리스트 #리스트 #알고리즘 #IT디자이너
- C언어 #포인터 #IT디자이너
- C언어 #C++ #어셈블리어 #열거형 데이터타입 #IT디자이너
- C언어 #C++ #IT디자이너 #C++ 함수
- C언어 #IT디자이너 #C++언어
- C언어 #C++ #어셈블리어 #IT디자이너 #비트연산자 #연산자 #C언어의 비트 연산자
- C언어 #C++ #캐시hit #캐시라인 #캐시무효화
- C언어 #스트림 #버퍼링 #표준 입출력 함수 #C++언어 #IT디자이너
- IT디자이너 #QuickSort #퀵정렬 #C언어 #C++ #자료구조 #알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |