컴퓨터 프로그래밍 언어는 크게 저수준 언어와 고수준 언어로 분류할 수 있다. 이는 공식적인 분류법이라기 보다는, 자연스럽게 사람들이 이렇게 부르기 시작한 것이다. 단어 때문에 오해할 수도 있으나, 고수준이 더 좋거나 낫다는 의미는 아니다. 그렇다면 그 의미에 대해서 알아보자.
저수준 언어란 무엇일까? 이것은 컴퓨터가 이해하기 쉬운 언어를 뜻한다. 0과 1로만 이루어져 있는 언어이다. 컴퓨터는 기본적으로 이진법을 통해서 작동된다. 저수준 언어는 컴퓨터에 친화적인 언어를 가지고 있기 때문에, 컴퓨터에게 의사를 전달할 때, 변환을 하는 과정이 따로 필요하지 않다.
고수준 언어란 무엇일까? 이것은 사람들이 이해하기 쉬운 언어를 말한다. 인간이 사용하는 언어들로 이루어져 있는 것이다. 예를 들자면, print,if,while 등등의 문법이 있겠다. 대표적인 언어들로는 어셈블리어, C언어 ,C++,JAVA,PYTHON등등의 언어들을 말하는 것이다. 이 언어들은 인간에게 친화적인 언어를 사용하고 있기 때문에, 컴퓨터에게 이 언어를 전달하기 위해서는 중간에 기계어로 변환하는 과정이 필요하다. 그렇게 해야만 컴퓨터가 이해할 수 있기 때문이다.
컴퓨터가 이해하기 쉬울수록 저수준언어, 인간이 이해하기 쉬울수록 고수준 언어라고 부를 수 있다.
그렇다면, 다시 저수준 언어로 돌아와서, 컴퓨터가 이해하는 언어인 기계어에 대해서 알아보자. 컴퓨터는 오로지 0과 1로만 이루어진 이진수를 통해서 이해한다. 모든 컴퓨터 언어는 반드시 이 기계어로 번역되어야 하는 것이다. 예를 들어서 사람이 4를 말하면, 컴퓨터는 101로 받아들이고, 12를 말하면 1100으로 받아들인다. 그런데 이런식으로 계속 소통을 하다보면, 인간은 컴퓨터와 소통을 하는 것이 어려워진다. 그래서 탄생한 것이 어셈블리어이다.
어셈블리어란 무엇일까? 인간이 기계어를 바로 이해하기가 어려우니 일대일로 대응하여 인간이 이해할 수 있도록 풀어낸 언어라고 할 수 있다. 여전히 현재 나와있는 고수준 언어에 비해서는 이해하기가 어렵지만, 이진법으로만 이루어져있는 기계어보다는 더 인간친화적인 언어라고 할 수 있다. 어셈블리어의 특징으로는 기계어와 가깝기 때문에 실행속도가 빠르다는것, 하드웨어을 직접적으로 컨트롤할 수 있는 언어이기 때문에 어떤 명령이라도 수행이 가능하다는 점이 있다. 그런데 여전히 대부분의 사람이 배우기에는 어렵고, 인간의 언어와는 덜 친화적이기에, 탄생한 언어가 고수준 언어이다.
고수준 언어에는 흔히 우리들이 많이들어왔던 언어들이 있다. C언어, C#,Python, Javascipt 등등. 이런 언어들은 result, class, print 처럼 인간의 언어로 구성되어 있기 때문에 이해하기에 편하다. 사람의 언어와 매우 가까워진 것이다. 그렇지만 어셈블리어처럼 기계와의 일대일 대응은 불가능하다. 때문에 더 깊고 훌륭한 프로그래머가 되기 위해서는 저수준 언어인 어셈블리어를 어느정도 공부하는 것이 도움이 될 수 있다. 어셈블리어를 배우면 컴퓨터에 대한 근본적인 이해를 가질 수 있기 때문이다.
오늘은 프로그래밍 언어를 크게 두 가지로 분류하는 고수준 언어와 저수준 언어에 대해서 알아봤다. 이러한 지식들이 컴퓨터 전반에 대한 이해를 높이는 데에 도움이 되기를 바란다.
'컴퓨터공학 기초' 카테고리의 다른 글
식별자와 변수의 차이 (0) | 2021.10.30 |
---|---|
컴파일이란 무엇인가 (0) | 2021.04.12 |