본문 바로가기
CS/Computer Basic

[CS/Basic] 컴퓨터와 개발자가 소통하는 방법, 프로그래밍 언어

by iosdevlime 2022. 12. 4.

프로그래밍이란 개념에 대해 간단하게 정리가 되셨다면,

아래와 같은 의문점이 생기기 마련입니다.

 

 

'아하, 프로그래밍은 개발자가 컴퓨터에게 지시를 하기 위한 방식이구나!

그런데, 어떻게 컴퓨터와 소통을 하고 명령을 내릴 수 있을까?'

 

 

이번 포스팅에서는, 

 

개발자가 프로그래밍을 위해 컴퓨터와 소통하는 방식인

프로그래밍 언어에 대하여 살펴보도록 하겠습니다.

 

 

 


 

 

프로그래밍 언어란?

프로그래밍 언어는 편의 대상에 따라 저 수준의 언어와 고 수준의 언어로 구분된다

 

지난 포스팅 내용 중 하나인

'땅콩잼 샌드위치 만들기' 영상을 기억하실까요?

 

여기서 아이들은 종이에 펜으로 꾹꾹 눌러가며

샌드위치를 만드는 방법, 즉 '레시피'를 건네게 됩니다.

 

비록, 땅콩잼 없는 땅콩샌드위치가 완성이 되었지만

여기서의 레시피는 특정 명령을 지시하는 일종의 '프로그램(Program)' 으로 볼 수 있습니다.

 

그런데 만약에,

미국인인 부모에게 한국어로 된 레시피를 적어 요청을 했다면 어땠을까요?

 

 

 

컴퓨터는 0과 1로 구성되어있다!?

  • 컴퓨터는 기계어인 이진수, 즉 0과 1로 구성된 언어를 사용합니다.
    • 위 예시에 이어서 대입해보자면, 미국인(컴퓨터)에게 한국어로 지시를 한다면?
    • 샌드위치를 만들 시도조차 못한 채, 실패로 돌아갈 것입니다.
  • 개발자는 컴퓨터에 지시를 하기 위해, 내가 이해하는 언어를 기계어(이진수)로 변환해야 합니다.

0과 1, Enter만 있다면 나도 프로그래머?
0과 1, Enter만 있다면 나도 프로그래머?

 

 

 

저 수준 언어

  • 마치 '수준이 낮은 언어'로 해석되지만, 이는 일종의 ROOT가 되는 언어로 볼 수 있습니다.
    • 기계어가 그 중 하나이며, 지극히 하드웨어에 가까운 언어입니다.
  • 저 수준 언어는 크게 2가지 종류로 구분됩니다.
    • 이진수로 구성된 기계어
    • 개발자가 최소한 해석할 수 있을 정도의 언어, 어셈블리어(Assembly Language)

기계어와 어셈블리어의 경우, 1 : 1로 대응됩니다.
기계어와 어셈블리어의 경우, 1 : 1로 대응됩니다.

 

 

 

고 수준 언어

  • 개발자, 즉 인간이 이해하고 사용할 수 있는 프로그래밍 언어입니다.
    • 한 가지 예시를 살펴보겠습니다.
    • 예시) 사람의 말을 강아지의 언어로 번역하는 기계가 있습니다.

사람의 말(영어)을 번역기를 활용하여 강아지 언어로 번역
사람의 말(영어)을 번역기를 활용하여 강아지 언어로 번역

 

  • 영어는, 사람이 활용할 수 있는 언어이며 다양한 작업과 명령을 지시할 수 있습니다.
    • 즉, 예시에서 영어는 '프로그래밍 언어' 이자, '고 수준' 언어입니다.
    • 다만, 강아지가 이해할 수 있도록 중간 단계에서의 '번역기(Complier)'가 필요합니다.
  • 즉, 고 수준언어를 활용한 프로그래밍 단계는 다음과 같습니다.
    • 프로그래밍 언어(고 수준) ➟ 프로그래밍(코딩) ➟ 컴파일러(Complier)  ➟ 기계어(저 수준) ➟ 동작

 


 

프로그래밍 언어의 개념, 그리고 

그 종류 중에서도 컴퓨터 혹은 개발자의 편의에 따라

고 수준 / 저 수준 언어로 구분하여 살펴보았습니다.

 

 

사실, 프로그래밍 언어의 종류 및 특징은 

  • 패러다임
  • 방법 혹은 목적
  • 빌드(Build)유무
  • 자료형 지정 유무

이렇게 다양한 기준에 따라 구분되고, 사용됩니다.

 

추후 포스팅에서는 조금 더 자세하고, 상세히 해당 개념을 다뤄보도록 하겠습니다. 

댓글