농담곰담곰이의곰담농

C 프로그래밍 : 현대적 접근 01 | C 입문

by 브이담곰

C의 역사

유래

1. UNIX 운영체제의 산물. UNIX 또한 어셈블리어로 제작되었다.

2. 어셈블리어로 제작된 언어들은 주로 디버깅을 하거나 성능을 업그레이드할 때 매우 힘들다는 특징을 갖고 있었다.

3. 켄 톰슨씨는 어셈블리어보다 좀 더 고급언어가 필요하다고 생각해 B언어를 만든다.

4. UNIX 프로젝트를 진행하다가 새로운 컴퓨터에 B언어가 잘 맞지 않는다고 생각해 B언어를 좀 더 개선한 New B 언어, NB를 만들었다. 그 후 B언어가 발전해서 많이 다른 형태가 되었는데 이를 C라고 이름을 지었다.

5. 1973년이 되자 UNIX 전체를 C로 프로그래밍 할 수 있을 만큼 C는 발전하고 안정되었다.

6. C로 전환되면서 확장성이 좋아졌다.

7. 다양한 C컴파일러를 제작하고 나서 UNIX를 다양한 기기에서 사용할 수 있게 되었다.

 

 

 표준화

언어가 제공하는 일부 기능에 대한 설명이 구체적이지 않아, C 컴파일러마다 해석이 제각각이었고, 계속해서 새로운 특징은 추가되고 삭제되면서 발전해아가고 있었다. 결국 여러 C언어에 대한 여러가지 방언이 생기며 원래 C가 갖고 있었던 확장성이라는 장점이 무색하게 되었다.

1983년 미국규격협회(ANSI)를 중심으로 C의 표준화 작업이 시작되었다.

1995년 C언어는 수정 제1조라는 이름으로 몇개의 변화를 맞이했다. 대대적인 변화는 99년도에 이루어졌고 이때 나온 C언어를 보통 C99라고한다.

C99에 새로 추가된 특징은 보통 [C99]라고 언급한다.

 

C기반 언어들

● C++은 C의 모든 특징을 갖고 있으나, 클래스와 다른 특징들이 추가되어 객체지향 프로그래밍이 가능하다.

● Java는 C++에 기반하고 있는데, 그렇기에 C의 여러 특징을 공유하고 있다.

● C#은 비교적 최근 언어로, C++과 Java의 영향을 받아 만들어졌다.

● Perl은 비교적 쉬운 프로그래밍 언어였지만 시간이 지나고 C와 많은 특징을 공유하기 시작했다.

 

2. 장점과 단점

1. 본 용도는 운영체제나 시스템 소프트웨어를 제작하는것

2. 저급언어 → 바이트 단위와 메모리 주소 값 등의 기계 수준의 개념까지 다룰 수 있어야 한다.

3. 컴퓨터 자체에 내장된 지시들과 밀접하게 일치하는 연산을 제공 → 프로그램이 매우 빨라질 수 있다.

 

장점

● 효울성 : 어셈블리어를 대체하기 위해 만들어졌기 때문에, C언어로 짜인 프로그램들은 한정된 메모리 내에서 최대한 빨라야했다.

● 확장성 : C 컴파일러들은 상대적으로 규모가 작았고 프로그래밍하기도 쉬웠다. 또한 C가 초창기에 UNIX와 관련이 있었고 ANSI와 ISO에 의해 규격화 되었기 때문이다.

● 강력함 : C의 다양한 자료형들과 연산자들은 C를 강력한 언어로 만들어 주었다.

● 유연성 : 적은 제한을 두기 때문에 자유롭게 프로그래밍 할 수 있다.

● 표준 라이브러리 : input, output, 문자열 처리, 메모리 할당 등 여러가지 유용한 함수들 수백 가지를 가진 저장고를 갖고 있다.

●  UNIX와 통합 : C는 UNIX, 특히 UNIX의 변종인 Linux와 만났을 때 최고의 호흡을 보인다.

 

단점

● 에러가 나기 쉬울 수 있다.

● 이해하기 어려울 수 있다.

● 수정하기 어려울 수 있다.

 

C를 효과적으로 사용하는 법

● 실수를 줄이는 방법을 익힌다

● 소프트웨어 도구를 사용

● 코드 라이브러리들을 활용하여 코드 안정화

● 실용적인 코딩 버릇을 들임

● 코드는 간결

블로그의 정보

농담곰담곰이의곰담농

브이담곰

활동하기