앞선 포스트에서 프로그래밍 언어의 객체 지향 지원 여부, 코드의 자료형 선언 여부로 언어를 분류하였다.
프로그래밍 언어의 스팩트럼은 앞선 분류처럼 이분법적으로 나눠지는 것이 아니라 컴퓨터와 가까운 언어인지, 사람과 가까운 언어인지에 따라 언어의 종류가 스펙트럼처럼 분포하는 것이다.
프로그래밍 언어에도 수준이? 프로그래밍 언어의 스팩트럼
컴퓨터에 가까운 언어를 Low level, 사람에 가까운 언어를 High level 언어라고 한다. 가깝다는 것은 이해하기 쉽다는 것이다. 예를들어 Static typing 언어인 C나 JAVA는 컴퓨터가 이해하기 좋은 컴퓨터 가까운 언어라면, Dynamic typing인 파이썬이나 루비는 사람이 이해하기 좋은 사람에 가까운 언어인 것이다. 컴퓨터에 가까운지/사람에 가까운지는 상대적이기 때문에 스펙트럼처럼 분포하는 것이다.
큰 관점에서 C, JAVA, Python, 루비 모두 비교적 사람에게 가까운 High level 언어이다. 0과 1로 구성된 기계어, 사람이 읽기가 아주 어려운 머신코드는 컴퓨터와 아주 가까운 Low level 언어라고 할 수 있다.
앞서 다른 포스트에서 프로그래밍의 추상화에 대해서 올렸었다. 추상화가 많이 된 언어가 High level, 추상화가 적게 된 언어가 Low level 언어라고 할 수 있다.
High level 고수준 언어와 Low level 저수준 언어의 장단점 정리
High level 고수준 언어 |
Low level 저수준 언어 |
|
장점 | 프로그래머가 필요한 기능과 논리에 집중 코드 작성 속도가 빠르다 |
실행이 빠르다. 컴퓨터의 동작이 효율적이다. 고성능 컴퓨터가 필요하지 않다. |
단점 | 컴퓨터의 성능이 좋아야 한다. 실행이 느리다. |
이해하기 어렵고 코드가 길다. 작성 시간이 오래 걸린다. 수정/관리가 어렵다. |
최근 인기 있는 언어는 배우기 쉽고 사용하기 좋은 고수준 언어이다.
하지만 저수준 언어가 계속해서 시장에서 살아남는 것은 저수준 언어가 필요한 곳이 있기 때문이다.
컴퓨터, 스마트폰이 아닌 냉장고, 에어컨 등에도 프로그램이 들어간다. 이런 기계들은 성능을 높이기 어렵기 때문에 저성능으로도 필요한 기능을 수행할 수 있는 Low level 언어가 사용된다.
프로그래밍 언어에도 수준이? 프로그래밍 언어의 스팩트럼
※ 이 포스트는 내돈내산 코드잇 강의 내용을 기반으로 작성되었습니다.
'IT&Computer' 카테고리의 다른 글
프로그래밍의 유용한 도구, 라이브러리와 프레임워크 (4) | 2023.08.09 |
---|---|
좋은 코드 나쁜 코드가 따로 있을까? 좋은 코드 작성 방법 (4) | 2023.07.28 |
Dynamic typing? Static typing? 변수의 데이터 타입별 프로그래밍 언어의 분류 (0) | 2023.07.26 |
객체 지향 프로그램이란 무엇일까? 객체지향 프로그래밍 언어의 이해 (2) | 2023.07.25 |
초보자가 프로그래밍을 배우기 힘든 이유! 프로그래밍도 알고 시작해야 한다! (2) | 2023.07.24 |