C언어에 대해

김주형·2022년 8월 12일
0

TIL

목록 보기
8/37
post-thumbnail

Reference


C의 탄생 배경

=> UNIX 운영체제에서 사용하기 위해 만들어진 어셈블리어 BCPL

=> 하지만 어셈블리어로 만들어진 프로그램은 디버깅이 힘들고, 사용하기 어려웠음

=> 톰슨 : BCPL -> B (B는 PDP-11과 같은 컴퓨터에 적절하지 않은 문제점이 있었음)

=> 데니스 리치 : B -> NB -> C(NB)
  • 표준화

    => 'The C Programming Language' (K&R) : 최초의 C 언어 책으로, C의 바이블

    => C 프로그래머가 점차 늘어나기 시작

    => 1980년대 이후 C는 다른 OS에서도 사용되기 시작 (특히, 당시 빠르게 성장하던 IBM PC 플랫폼)

    => 문제점 : K&R은 몇 가지 기능에 불분명한 내용을 포함하여, 컴파일러가 다르게 처리

    => 많은 수정을 거쳐, 국제 표준화기구에서 1990년에 표준 승인을 받음 (C90) -> (1999년 : C99)

  • C 기반 언어

    => C++ : C의 모든 기능 + 객체지향

    => Java : C++ 기반

    => C# : C++과 Java에서 파생된 더 최근의 언어

    => Perl : 간단한 스크립팅 언어였으나, 시간이 지나면서 C의 많은 기능 채택


C의 장단점

C의 철학

1. C는 low-level language이다.

    => 시스템 프로그래밍에 적합한 언어 : 기계수준(바이트, 주소 등)으로의 접근을 제공

    => 컴퓨터의 내장기기와 근접한 방식으로 연산, 명령 수행 : 빠른 프로그램 동작

2. C는 small language이다.

    => 다른 언어에 비해 매우 제한적인 기능만을 제공 : 이를 위해 표준 라이브러리에 크게 의존

3. C는 관대한 언어이다.

    => 프로그래머에게 관대함 : 다른 언어에 비해 오류 체크가 정밀하지 않음

C 언어의 장단점?

  • C의 장점
1. 효율성

    => C는 제한된 메모리에서 빠르게 구동될 수 있음

2. 이식성

    => UNIX와의 연계성, 국제 표준의 존재 : 언어의 분화를 막음

    => C 컴파일러는 가볍고 쉽게 쓰여짐 : 언어가 폭넓게 활용될 수 있음

3. 강력함

    => 방대한 종류의 데이터 타입, 연산자 : 짧은 코드로도 다양한 명령 수행

4. 유연성

    => 시스템 프로그래밍 뿐만 아니라 모든 분야의 프로그래밍에서 사용됨

    => 관대함 : 다른 언어에서는 오류로 발생되지만 C에서는 그렇지 않음

5. 표준 라이브러리의 존재

6. UNIX와의 관계
- C의 단점

1. 오류

    => 유연성, 관대함 : 오류를 감지하지 못하는 경우가 자주 발생

    => 오유를 찾기 쉽지 않음 : 세미콜론, 연산자 기호 등

2. 이해의 어려움

    => 유연성 : 코드를 이해하기 어렵게 함

    => 너무 간결하게 짜여진 코드를 이해하는 데 어려움이 있음

3. 수정의 어려움

    => C는 큰 덩어리로 구성되어 있음 : 유지보수가 어려움
profile
근면성실

0개의 댓글