Software Develop

1. 구조 (1)

토픽 Software Develop > 텍스트 언어 > C언어

지금부터 다루어 볼 언어는 C언어이다.

C언어는 1972년 개발되었다. 지금까지 쓰이는 언어 중에는 가장 오래된 언어이다. 데니스 리치가 개발하였다.

왜 C언어일까? 데니스 리치는 우리 생활에 Windows, Mac이라고 할 수 있는 UNIX 운영체제를 만들었다. UNIX 운영체제에 이식할 만한 언어를 찾다가 B언어를 찾게 되었고, 그 언어보다 더 성능 등의 면에서 뛰어난 언어를 만들자 생각하여서 C언어를 만들게 되었다.

C언어는 운영체제에 쓰이는 언어이다. 안드로이드, 윈도우스, 맥, 아이폰 등의 체제가 모두 C언어로 만들어졌다.

C언어의 장점은

1. 가볍다: C언어는 어느 언어보다도 적은 함수를 지원한다. 기본적으로 지원하는 함수를 보고 라이브러리 함수라고 부른다. 하지만 Java, Python 등의 언어는 C언어보다 몇십배의 큰 라이브러리를 지원한다. C언어의 단점이자 장점이다. 장점인 이유는 이로 인해 코드가 용량이 적게 든다. 그리고 따라서 실행 속도가 빠르다.

2. 기계와 연관되어있다: C언어는 어셈블리 언어 다음으로 가장 기계적인 언어이다.

3. 알고리즘과 관련되어 있다: 왜 한국정보올림피아드는 C/C++로 할까? 왜냐하면 알고리즘에 특성화되어 있기 때문이다. C언어는 라이브러리가 매우 작아서 우리가 함수를 만들어야 한다. C++은 함수 수는 C보다 많지만 여전히 작고 함수가 상세한 기능보다는 STL이라는 것에 집중되어 있고, 나머지는 C언어 라이브러리 개선한 것이다. 어쨌든, 우리가 함수를 만들어야 하기 때문에, 실제 개발에는 적합하지 않으며, 알고리즘에 적합하다. 안드로이드 스튜디오라고 해서 안드로이드 앱 개발은 Java 언어로 한다. 그런데 개발을 더 하려면 C/C++로 한다. 왜냐하면 C언어는 정말로 많은 부분을 감당할 수 있다. 함수 수는 적지만, 편리성도 밑바닥이지만 저수준 언어이기 때문에 많은 부분을 컨트롤할 수 있다.


#include <stdio.h>
int main(){
    printf("Hello World");
    return 0;
}
print("Hello World")
class HelloWorld{
    public static void main(String args[]){
        System.out.println("Hello World");
    }
}

각각 C, Python, Java이다. 코드를 비교하길 바란다.

그럼 이제 작업환경에 대하여 얘기하여 보자. 이 강좌는 Dev C++라는 컴파일러를 사용하여서 진행할 것이다. C/C++ 전용 컴파일러이다. 하지만 비주얼 스튜디오, 또는 설치하는 게 부담된다면 온라인 상에 repl.it이라는 인터넷 컴파일러도 있다.

댓글

댓글 본문