CS/Computer Basic

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

iosdevlime 2022. 12. 4. 18:28

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

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

 

 

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

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

 

 

이번 포스팅에서는, 

 

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

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

 

 

 


 

 

프로그래밍 언어란?

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

 

지난 포스팅 내용 중 하나인

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

 

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

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

 

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

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

 

그런데 만약에,

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

 

 

 

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

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

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

 

 

 

저 수준 언어

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

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

 

 

 

고 수준 언어

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

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

 

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

 


 

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

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

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

 

 

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

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

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

 

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