ch@e

 

프로그래밍 언어 

컴퓨터에게 일을 시키기 위한 언어, 컴퓨터에게 명령이나 연산과 같은 작업을 시키려면 사람과 컴퓨터가 의사소통(지시) 이 가능해야하므로 프로그래밍 언어로 처리 할 수 있도록 한다. 정해진 규칙에 따라 작업을 처리하고, 복잡한 구조를 구현할 수 있다. 

 

 

프로그래밍 언어의 분류 기준

컴퓨터와 인간의 언어 중 어디에 근접한가를 기준으로 고급 언어, 저급 언어로 분류한다.               

컴퓨터(기계어)에 가까울 수록 저급 언어, 사람이 쓰는 자연어에  가까울 수록 고급 언어이다.

컴퓨터(기계)                                         <•••••>                                                           인간
  저급 언어                                                                                                              고급언어

 

 

고급 언어(high-level language)

사람이 이해하기 쉽게 작성된 프로그래밍 언어로 사람 중심의 언어이다.

•하드웨어 관련된 지식 없이도 프로그램 작성이 가능하다.

가독성이 높고 다루기 간단하며 실행을 위해서는 번역하는 과정이 필요하다.

일상적인 언어(영어 등), 기호 등 그대로 이용하기 때문에 수정이 쉽고 코드 작성이 빠르다.

컴파일러나 인터프리터에 의해 저급 언어로 번역되어 실행된다.

  그래서 기계어로 변환하기 위해 인터프리터나 컴파일러가 필수적인 요소이다.

  컴파일러 - 고급 언어 -> 기계어(0,1)로 번역해주는 도구

                     즉 사람이 고급언어로 프로그래밍한 코드를 cpu가 이해할 수 있게 변환해주는 것

  인터프리터-소스코드를 한 줄씩 번역하여 실행하는 방식

                        python 등이 속하고 실시간 실행 및 분석이 가능한 특징

 

c언어, Python, Ruby, JavaScript, Java, C++, 자바 등등

 

 

저급 언어(low-level language)

기계 중심의 언어로 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어이다.

실행 속도가 빠르지만 유지 보수가 힘들다.

•하드웨어에 관련된 직접제어가 가능하다.

•실행 환경에 따라 프로그램을 다르게 해야한다. 

 

기계어와 어셈블리 언어를 의미한다.

 

기계어(machine language)

컴퓨터가 직접 이해할 수 있는 언어로 0과 1의 2진수 형태로 표현된다. 이진수로만 표현되어 있어서 인간이 해석하기 어렵고 사용하기에 어렵다.

cpu가 직접 해독하고 실행할 수 있는 컴퓨터 언어를 통틀어 일컫으며 대부분 어셈블리어를 거쳐 짜여지게 된다. 

 

 

어셈블리어(assembly language)

기계어를 사람이 이해하기 쉬운 기호와 1:1로 대응시켜 기호화한 프로그램 언어 

저급 언어 중에서도 밑바닥 언어이다.

기계와 바로 통신이 가능해 빠르게 기계를 제어할 수 있다.

최소한의 명령을 사용하기 때문에 프로그램의 크키가 작다.

•어셈블리어는 그 자체로 컴퓨터가 실행할 수 없기 때문에 기계어로 변역해주는 과정이 필요한데 이 과정을 어셈블 이라고 하고 이 과정을 수행하는 번역기를 어셈블러라고 한다.

 

 

고급 언어 vs 저급 언어 

  고급 언어 저급 언어
실행 속도 상대적으로 느리다 상대적으로 빠르다
가독성 높다 낮다
호환성 편리 불편리
사용 언어  c언어, 파이썬, 자바 기계어, 어셈블리어

 

 

 

'System & Reversing 필기' 카테고리의 다른 글

DLL  (0) 2023.03.12
어셈블리 핸드레이, 함수 프롤로그와 에필로그  (0) 2023.03.11
컴퓨터 메모리 구조  (0) 2023.03.11
어셈블리어  (0) 2023.03.11
아키텍쳐  (0) 2023.03.10
profile

ch@e

@ch@e

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그