C언어 개발자 및 개발 목적
1972년 AT&T 의 벨 연구소에 근무중이던 데니스 리치가 개발하였으며,
시스템 PDP-11 에서 운용되는 운영체제인 유닉스(Unix) 개발을 위해 C언어를 개발했습니다.
앞서 나온 B언어(켄 톰슨, 1970년)의 영향을 받았습니다.
C언어의 특징
- 절차지향 언어
- 간결하고 효율적인 언어
- 이식성이 좋은 언어
- 다소 학습하기 어렵다
절차지향 언어
절차지향 언어(prodecural language)는 하나 이상의 절차를 가진 함수들로 구성되는 언어입니다.
예를 들어 자판기에서 음료를 뽑을수 있다고 하면, 절차는 아래와 같을 겁니다.
1. 돈을 자판기에 투입한다.
2. 자판기에 금액이 입력된다.
3. 뽑을 수 있는 음료를 선택할수 있다.
4. 음료를 선택한다.
5. 음료가 배출구로 나온다.
돈 - 금액 - 음료 - 배출구 는 각각 다른 데이터이고,
각 번호는 하나 이상의 절차를 가진 함수라고 볼 수 있습니다.
이 함수를 묶어 '자판기에서 음료를 뽑는다'는 기능을 하게됩니다.
이런 복잡한 문제를 여러개의 함수와 데이터로 나누어 구성하고 해결하는 것을 '구조적 프로그래밍'이라고 합니다.
위 각 절차는 중간에 고장나거나 순서가 바뀌면 전체가 잘못 동작하는 오류가 발생합니다.
자판기에 금액이 입력되지 않는다거나(2) 또는 음료를 선택(4)해도 음료가 나오지 않는 경우(5)에도 전체 수리가 필요합니다.
이를 보완하기 위해 객체지향 언어가 등장했습니다.
절차지향에서 자판기에서 음료를 뽑는다는 큰 주제에서 세부기능을 만드는 Top-down 형태로 기능 개발을 했다면,
객체지향에서는 먼저 돈, 자판기, 음료라는 객체를 만들고 "각 객체는 어떤 일을 할 것인지" 정하고 만들어 Bottom-Up 방식으로 설계됩니다.
즉, 먼저 객체에 대해 정의를 하고 객체끼리 상호작용을 합니다.
간결하고 효율적인 언어
C 언어는 저수준 언어에 가깝기 때문에 매우 빠르게 실행됩니다.
또한 포인터를 통하여 메모리를 직접 접근하여 최적화 할 수 있고, 하드웨어에도 접근할 수 있으므로 매우 효율적입니다.
이미 만들어진 다양한 라이브러리를 사용함으로서 효율적인 연산이 가능합니다.
#include <stdio.h> // 표준 입출력 라이브러리
#include <math.h> // 수학 함수 라이브러리
이식성이 좋은 언어
다양한 CPU와 플랫폼의 컴파일러를 지원합니다.
따라서 각 CPU마다 다른 기계어로 컴파일 할 수있으므로 하나의 소스코드로 이용이 가능합니다.
C언어의 학습 목적
자바, C++, C#, 파이썬 등 여러 프로그래밍 언어에 많은 영향을 미친 가장 기본이 되는 프로그래밍 언어
응용 프로그램, 임베디드 시스템, 시스템 소프트웨어 등 다양한 분야에서 활용 가능
저급 언어와 고급언어
저급언어
- 기계어
- 컴퓨터가 유일하게 인식할 수 있는 언어
전기가 흐르는 1과 전기과 흐르지 않는 0으로 표현되는 언어
- 컴퓨터가 유일하게 인식할 수 있는 언어
- 어셈블리어
- 기계어를 사람이 좀 더 이해하기 쉽게 기호 형태로 만든 프로그래밍 언어로 CPU마다 다름
명령어의 예: ex) LDA(LoaD Address),ADD, STA(STore Address) 등
명령어를 기호화한 것을 니모닉이라고 함.
- 기계어를 사람이 좀 더 이해하기 쉽게 기호 형태로 만든 프로그래밍 언어로 CPU마다 다름
고급언어
프로그래밍 언어: 사람이 쉽게 이해할 수 있도록 만들어진 언어
특정 CPU에 따라 달라지며 특정한 cpu를 기반으로 만들어진 언어
ex) C, C++ 포트란
컴파일러, 어셈블러
- 컴파일러: 고급언어인 프로그래밍 언어로 작성된 소스파일을 기계어로 작성된 목적파일로 만드는 프로그램
- 어셈블러: 어셈블리어로 작성된 프로그램을 기계어로 바꾸어주는 프로그램
비트와 바이트
- 비트: BInary digiT의 합성어로 진수인 1과 0으로 비트 표현이 가능
- 바이트: 비트가 연속적으로 8개 모인 정보 단위 256(2^8 = 256)가지의 조합으로 256가지 정보 저장 가능
기타
- 포트란: 1950중반 개발된 최초의 프로그래밍 언어. 수식변환기(FORmula TRANslator)라는 의미의 약자
- ANSI C: 표준 C를 지칭
- C++: C언어에 객체지향 프로그래밍 개념을 확장한 언어로, 파이썬에 영향을 미침
- 파이썬: 1991년 개발된 객체지향 프로그래밍 언어(인터프리터)
- 자바: 1995년 발표된 C++ 기반의 객체지향 프로그래밍 언어.
- 코틀린: 2011, JetBrains(인텔리제이 회사)사가 개발한 객체지향 프로그래밍 언어. 자바와 100% 호환됨.
'Language > C언어' 카테고리의 다른 글
프로그래밍 절차, 컴파일부터 디버깅까지 (0) | 2024.09.18 |
---|
남에게 설명할 때 비로소 자신의 지식이 된다.
포스팅이 도움되셨다면 하트❤️ 또는 구독👍🏻 부탁드립니다!! 잘못된 정보가 있다면 댓글로 알려주세요.