About AI

인공지능과 C언어 – 3(최종)

miracleai 2024. 1. 18. 13:20
반응형

인공지능과 C언어 – 3(최종)

C언어와 인공지능, 이 둘은 공통을 찾을 수도 없고, C언어가 1972년에 나온 언어라 잘 사용하지 않을 것이라 생각은 한다. 게다가 C언어 자체로 인공지능을 구현할 수 없느니 전혀 관계가 없을 것이라 생각할 것이다. 물론 C언어와 인공지능은 직접적인 연관성이 없지만 연관성이 아예 없는 것은 아니다. 밀접하게 연관이 되어 있다.

우리가 인공지능을 활용할 때 쓰는 컴퓨터나 스마트 폰에는 필수적으로 들어가는 것이 있다. 여기에는 CPU나 AP 같은 하드웨어도 있지만 소프트웨어, 특히 운영체제(Operating System: OS)는 반드시 들어간다. 운영체제에는 UNIX, LINUX, Windows, Mac OS, iOS, 안드로이드 등 여러 가지가 있다. 이들의 공통점은 C언어 또는 C언어에서 파생된 C++로 만들어졌다는 것이다.

 

반응형


운영체제를 C언어나 C++로만 만들고 다른 프로그래밍 언어로는 만들 수 없는지 의아해할 사람이 있을 것이다. 여기에는 C언어만의 고유한 특성이 있다. C언어(C++도 마찬가지다.)는 고급언어의 특성과 저급언어의 특성 두 가지를 모두 가지고 있다. 그래서 중급언어라고 부르기도 한다. 이 중 중요한 것은 저급언어의 특성을 가지고 있다는 것이다. 저급언어의 특성은 기계인 하드웨어를 제어할 수 있다는 것인데 이것은 C언어나 C++은 가지고 있지만 JAVA나 다른 언어는 가지고 있지 않은 특징이다. 이런 부분은 운영체제, Windows의 제어판을 보면 바로 드러난다. 제어판에서 프린터, 스캐너 등의 하드웨어를 제어할 수 있는 기능이 있다.

또한 C언어는 탄생 배경이 다른 프로그래밍 언어와는 다른 것이 주된 이유이기도 하다. C언어는 운영체제를 만들기 위해서 나온 프로그래밍 언어다. 여기에 클래스와 객체지향(Object Oriented) 개념을 추가한 것이 C++이다. C언어가 나오기 전에는 운영체제를 만들 때 어셈블리어를 사용했다. 어셈블리어는 저급언어라 기계어와 1:1 매칭이 되는 장점이 있지만 하드웨어 특히 CPU의 종류에 따라 코딩을 해야 되는 치명적인 단점이 있다. 게다가 어셈블리어는 코딩의 양도 어마어마하다는 단점도 존재한다. 이런 단점을 보완하고자 만든 것이 바로 C언어인 것이다.

C언어는 CPU에 관계 없이 프로그램을 구동시킬 수 있다는 장점이 있다. 물론 32bit용 64bit용으로 나누긴 하지만 예를 들어 64bit CPU를 가지고 있으면 종류에 상관없이 구동이 가능하다. 이런 이유로 운영체제를 만들 때 많이 사용되는 것이 C언어인데, 지금 우리가 사용하는 인공지능 프로그램을 설치하는 운영체제는 예외 없이 C언어 혹은 C++로 만들어졌기 때문에 밀접한 관련을 가지고 있다. 아무리 좋은 프로그램이라고 할지라도 운영체제를 뛰어넘을 수는 없기 때문이다. 인공지능을 다룰 때 C언어를 논해야 하는 이유가 바로 여기에 있는 것이다.

반응형