• Home
  • About
    • 김연중 개발 블로그 🚀 photo

      김연중 개발 블로그 🚀

      개발과 나의 생각들

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
  • 개발일기
  • 나의 생각
  • C#
  • ASP.net
  • DataBase
  • CS지식
  • 성장일기
  • JavaScript

[CS지식] 컴파일 언어, 그리고 스크립트/인터프리터 언어

2022-12-11 19:43:00

Reading time ~1 minute

📌 컴파일 언어, 그리고 스크립트/인터프리터 언어




주제: 컴파일 언어, 그리고 스크립트/인터프리터 언어

컴파일 언어, 그리고 스크립트/인터프리터 언어에 알아보고자 한다.
먼저, 우리가 아는 대부분의 프로그래밍 언어 자체로는 컴퓨터가 이해할 수 없다.
컴퓨터는 오직 기계어만 이해할 수 있다. 간접적으로 비유하자면 0, 1만 이해할 수 있다.
이 부분을 인터프리터와 컴파일러로 해결할 수 있는데 그 차이에 대해 알아보자.


컴파일 언어

컴파일 언어: 소스코드를 컴파일러를 통해 기계어로 변환하는 과정을 거치는 프로그래밍 언어.

특징

  • 소스코드를 컴파일하는 과정을 통해 기계어로 번역한다.
  • 실행 파일이 만들어지고 그 파일을 실행한다.
  • 실행 속도가 빠르다
  • 컴파일 과정에서 오류가 발생하면 실행되지 않는다.
  • 소스코드가 컴파일된 후에는 소스코드를 변조하거나 유출하기 어렵다.

예시

  • 코볼
  • C
  • Go
  • Rust
  • Java, C#


※ 빌드랑 컴파일의 차이점은?
빌드는 소스코드 파일을 실행가능한 독립적인 소프트웨어로 변환하는 과정이다.
컴파일은 소스코드를 컴퓨터가 이해할 수 있는 언어로 변환하는 과정을 의미한다.
빌드 과정에 컴파일이 포함되어 있다.
즉, 컴파일된 코드를 실제 실행할 수 있는 독립된 상태로 만드는 것이 빌드.



인터프리터 언어와 스크립트 언어

인터프리터(해석기): 프로그래밍 언어의 소스 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경

인터프리터 언어: 실행 즉시 인터프리터를 거쳐서 실행되는 프로그래밍 언어

스크립트 언어: 응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어, 응용 프로그램과 독립하여 사용되고 일반적으로 응용 프로그램의 언어와 다른 언어로 사용되어 최종사용자가 응용 프로그램의 동작을 사용자의 요구에 맞게 수행할 수 있도록 함.

특징

  • 소스코드를 컴파일 과정없이 바로 직접 실행한다.
  • 한 줄 단위로 읽어들여서 번역, 실행된다.
  • 속도가 컴파일에 비해 느리다.
  • 문법적인 오류가 존재해도 실행된다.
  • 명확한 엔트리 포인트(진입점)가 없다.

예시

  • Javascript
  • Python
  • R
  • Ruby
  • Java, C#



Java와 C#은 인터프리터 언어? 컴파일언어?

둘 다 구현되어 있다.
보통은 컴파일 언어에 가깝지만, 일부 기능에 인터프리터를 사용한다.

예를 들어,

  • 가상 머신이 이해할 수 있는 바이트코드로 컴파일된 후, 가상 머신의 인터프리터가 이를 처리한다.
  • 인터프리터를 사용하여 코드를 먼저 컴파일하는 대신 한 줄씩 실행하여 더 많은 유연성과 오류가 발생할 때 오류를 catch할 수 있다.





출처

https://velog.io/@jkijki12/%EC%BB%B4%ED%8C%8C%EC%9D%BC-%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%84%B0-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8

https://choseongho93.tistory.com/296

https://nyangnyangworld.tistory.com/23

https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%96%B8%EC%96%B4
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8
%EC%96%B8%EC%96%B4
https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%ED%94%84%EB%A6%AC%ED%8A%B8_%EC%96%B8%EC%96%B4



Share Tweet +1