본문 바로가기
  • 안아주는 다람쥐
seKUrity_Study : System & Reversing

[system] 고급언어, 저급언어, 기계어란 무엇인가

by Sapphire. 2023. 3. 9.

이번시간에는 고급언어, 저급언어와 기계어에 대해서 알아보겠습니다.

 

일단 시작하기에 앞서 이 고급언어와 저급언어 그리고 기계어는 프로그래밍 언어의 한 종류를 나타냅니다!

흔히 프로그래밍 언어라고 하면 c나 파이썬 등 코드를 생각하곤 하죠...

프로그래밍 언어란?

프로그래밍 언어는 컴퓨터에게 명령을 전달하여 작업을 수행하는 데 사용되는 형식 언어를 뜻합니다.

쉽게 정리하자면,  개발자가 컴퓨터에게 명령을 내리기 위해 컴퓨터가 이해할 수 있는 명령어를 작성하고, 컴퓨터는 이를 실행하여 원하는 작업을 할 수 있게끔 하는것이 프로그래밍 언어입니다.

 

한마디로 정리하자면 컴퓨터와 개발자사이의 대화 수단 (언어)! 라고 생각하시면 편할것 같습니다.

아까 말했듯이 고급언어와 저급언어 기계어는 모두 프로그래밍 언어의 한 종류입니다.

 

그럼 이어서 고급언어에 대해서 알아보도록 하겠습니다!

 

고급 언어란 ?

고급언어는 사람이 쉽게 이해하고 작성할 수 있는 프로그래밍 언어입니다. 일반적으로 고급언어는 인간 중심적인 문법과 구문을 가지며, 프로그래머가 추상화된 개념을 쉽게 표현할 수 있습니다. 고급언어로 작성된 코드는 컴파일러나 인터프리터를 통해 기계어로 변환됩니다. 예를 들어, C, C++, Java, Python, Ruby, PHP, Swift 등이 대표적인 고급언어입니다.

이런 것들이 고급언어! (모두는 아님.. 특히 어셈블리어)

즉 한마디로 정리하자면, 우리가 흔히 사용하는, c나 python, Java 등이 이에 해당하며 조금 더 인간 중심적인 프로그래밍 언어이고, 컴파일러와 인터프리터를 통해 컴퓨터가 알아들을 수 있는 기계어로 변환됩니다.

 

저급 언어란?

리버싱을 할때도 매우 유용하게 사용!

저급언어는 고급언어보다 더 기계 중심적인 언어로, 컴퓨터가 직접 이해할 수 있는 언어입니다.

저급언어는 고급언어보다 더 세밀하고 빠른 처리가 가능하며, 하드웨어와 밀접한 관련이 있는 경우가 많습니다. 저급언어로 작성된 코드는 어셈블러를 통해 기계어로 변환됩니다. 예를 들어, 어셈블리어와 기계어가 대표적인 저급언어입니다.

 

기계어란?

01010000100101...

 

기계어는 컴퓨터가 이해할 수 있는 2진수 코드로, 가장 저급한(컴퓨터 중심적인) 프로그래밍 언어입니다.

기계어는 하드웨어의 명령어와 일치하며, 직접 기계어로 프로그래밍하는 것은 매우 어려우므로 일반적으로 고급언어나 어셈블리어를 사용합니다.