공부해봅시당

[CS 기초] 스크립트 언어(Scripting Language) vs 컴파일 언어(Compile Language) 본문

STUDY/CS

[CS 기초] 스크립트 언어(Scripting Language) vs 컴파일 언어(Compile Language)

tngus 2023. 11. 1. 14:56

스크립트 언어(Scripting Language)


1. 정의

응용 소프트웨어를 제어하는 컴퓨터 프로그래밍 언어
스크립트 작성 기능을 지원하는 소프트웨어를 제어하는 역할
수정이 빈번하게 발생하는 부분에서는 소스코드를 한줄씩 읽어 바로 실행하는 인터프리터 방식이 효율적
따라서 스크립트 언어도 대부분 인터프리터 방식을 사용하는 인터프리터 언어라고도 할 수 있음
예) Javascript, jsp, php, python, ruby

 

2. 특징

- 컴파일 언어에 비해 단순하고 쉬운 문법 구조
- 컴파일러 없이 명령어를 한줄씩 읽으면서 실행 -> 번역속도는 빠르지만 프로그램 실행 시 매번 같은 코드를 번역해야 함. 따라서 프로그램의 실행속도는 컴파일 언어에 비해 느림
- CPU 사용시간 낭비가 큼 -> 복잡한 산술연산 혹은 복잡한 구조의 프로그램에서는 효율적이지 않을 수 있음
- 컴파일 과정이 없기 때문에 프로그램 실행 후 오류 발견 가능
- 컴파일 과정이 없기 때문에 소스코드가 그대로 실행파일이 되어 메모리에 적재 -> 이후 런타임시 메모리가 명령어를 실행하기 위해 내부적으로 기계어로 변환하는 과정 거침

 

컴파일 언어(Compile Language)

1. 정의

컴파일 언어는 소프트웨어 개발에 사용되는 프로그래밍 언어

개발된 소스 코드를 실행하기 전에 기계어로 전체를 번역하는 컴파일러를 통해 기계 코드로 변환하는 작업이 필요

소스코드(Source Code)를 컴파일 후 목적코드(Object Code or Executable File)로 옮기고, 목적코드(기계어)를 읽어 실행시키는 방식으로 동작

컴파일 과정을 거쳐 생성된 실행 파일은 컴퓨터의 운영 체제에서 직접 실행될 수 있음

이렇게 미리 컴파일된 프로그램은 인터프리터 방식에 비해 실행 속도가 빠르다는 장점이 있으며, 보안 측면에서 소스 코드가 직접 노출되지 않음

컴파일 언어는 특히 복잡하고 성능이 중요한 시스템이나 애플리케이션을 개발할 때 주로 사용됨

 

2. 특징

- 문법적 제약이 많아 스크립트 언어에 비해 사용이 어려움

- 컴파일을 하기 때문에 규모가 큰 프로그램일 경우, 컴파일 하는데에 오랜 시간이 소요됨

- 한 번 컴파일을 하면, 이후에는 기계어를 읽어들이기 때문에 실행속도가 빠름

- 컴파일 과정에서 발생할 수 있는 다양한 최적화를 통해 더 빠르고 효율적인 실행 파일을 생성할 수 있음

- 기계어를 통해 프로그램이 실행되기 때문에 프로그램의 소스코드가 유출되기 어려움

- OS마다 기계어가 상이하기 때문에 OS에 따라 작업을 다르게 해줘야 함

- 컴파일러가 소스코드를 기계어로 변환시켜줌. 이후 기계어가 메모리에 적재됨

 

비교

  인터프리터 방식의 스크립트 언어
(Script Language)
컴파일 언어
(Compile Language)
번역 단위 행(코드 한 문장) 전체
번역 속도 빠름 느림
실행 속도 느림 빠름
기계어 번역 시기 메모리 적재 이후 내부적으로 번역 메모리 적재 이전 컴파일 과정
OS 고려 X O
언어 예시 JavaScript, Python, JSP, jQuery 등 C, C++, Java, Go 등

 

 

 

https://well-made-codestory.tistory.com/30

 

[Programming Language] 스크립트 언어(Script Language) vs 컴파일 언어(Compile Language)

스크립트 언어(Script Language) vs 컴파일 언어(Compile Language) 개요 스크립트 언어와 컴파일언어를 이해하고 그 차이를 알아본다. 목차 스크립트 언어(Script Language)란? 컴파일 언어(Compile Language)란? 스

well-made-codestory.tistory.com