Computer Science

동적언어 (JAVA, C++, C#, Python)

가은파파 2021. 4. 5. 08:49

목표

  • 저수준 언어와 고수준 언어
  • 컴파일 언어와 동적 언어
  • JAVA 와 C++

#저수준 언어와 고수준 언어

 

인간과 가까운 언어를 고수준 언어 (High-level)라 하고 컴퓨터와 가까운 언어를 저수준 언어(Low-level)라고 합니다. 대표적인 저수준 언어는 어셈블리어라고 할 수 있습니다.

어셈블리어 코드

위 어셈블리어 코드는 컴퓨터와 가까운 저수준 언어로 기계어 0과 1의 이진수로 이루어진 언어 입니다. 고수준 언어는 우리가 쓰는 C, C++, JAVA 같은 컴파일 언어와 동적 언어들을 들 수 있습니다.

 

저수준 언어의 장단점

단점으로는 신경쓸게 많고 코드 작성과 관리가 어렵습니다. 그러나 컴퓨터 입장에서는 이해가 빠르므로 성능이 좋지 않은 컴퓨터도 빠른 업무 처리 속도를 보여줍니다. 기계 예를 들어 스마트 가전 같은 곳에서 빛을 발합니다. 제한적인 사용으로 최대한 실행 속도와 효율을 높일 수 있기 때문입니다.

 

고수준 언어의 장단점

장점은 프로그래머가 좀 더 필요한 기능과 논리에 집중할 수 있다는 것입니다. 코드를 이해하기도 쉽고 수정하기도 쉽습니다. 최근 유행하는 언어들은 추상화가 높은 편입니다. 그러나 고수준 언어는 컴퓨터에게 너무 많은 일을 맡기게 됩니다. 컴퓨터가 여러 가지 고민에 대해 처리하느라 과부하가 일어나거나 처리 속도가 느려집니다. 이를 방지하려면 컴퓨터의 성능이 아주 좋아야 합니다.

 

 


#컴파일 언어와 동적 언어

 

컴파일 언어는 실행하는 과정이 다음과 같습니다.

프로그래머가 코딩으로 작성한 문서를 컴파일러 과정의 빌드를 거쳐 바로 실행이 가능한 실행파일이 만들어집니다.

컴파일 언어 처리 과정

동적 언어의 처리 과정은 아래와 같습니다.

컴파일 언어와 차이점은 빌드과정을 거쳐 중간어(문서)과정에서 예를 들어 JAVA의 Jar파일 형태로 빌드 완료 상태가 중간어 상태로 마치게 됩니다. 그러므로 실행시에 중간어에서 실행파일이 진행되어야 한다.

동적 언어 처리 과정

두 언어 종류의 차이는 동적 언어의 탄생을 보면 알 수 있다.

컴파일 언어는 CPU와 OS 에 따라서 다르게 빌드해야 하는 단점이 있다.

 

그러나 동적언어는 플랫폼에 관계없이 실행할때 변환을 해서 실행을 해준다.

컴파일 언어는 실행언어를 플랫폼에 따라서 각각 한정해서 프로그래밍을 해야 했다. 그러나 동적언어는 실행하는 주체가 어떤 플랫폼인지 파악을 해서 변환을해서 실행을 할 수 있다.

ex.JAVA의 jar파일

 


#JAVA와 C++

 

각 언어별로 특징이 있지만 JAVA는 대표적인 동적언어로 볼 수 있고, C++은 대표적인 컴파일 언어로 볼 수 있다.

속도는 대체로 플랫폼변환하는 과정이 없으므로 컴파일 언어인 C++이 빠르지만, 각각 언어의 발전으로 인해 속도는 비슷하다고 볼 수 있다. 서비스를 설계할 때 엔진이나 속도가 중요한 언어는 컴파일 언어를 사용하고, 코딩 생산성이 중요한 대부분의 코딩은 자바로 코딩한다.