일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 데이터분석
- 판다스
- 원격저장소
- 아나콘다
- vscode
- 에러
- SQL
- 라이브러리
- 코랩
- 엑셀
- 가상환경
- 우분투
- 디버깅
- 단축키
- 운영체제
- 리눅스
- 데이터베이스
- matplotlib
- 파이썬
- 기초
- MySQL
- 디렉토리
- OpenCV
- 역할
- 깃허브
- 프로그래머스
- 예제
- 머신러닝
- visual studio code
- 플라스크
Archives
- Today
- Total
취미와 밥줄사이
스크립트 언어와 컴파일 언어의 차이 본문
컴파일 언어와 스크립트 언어의 차이
- C, C++, Java 같은 컴파일 언어는 코드를 작성한 후 컴파일을 하면, 컴파일러에 의해 기계어로 변환된 파일이 생성되고 컴퓨터는 그 파일을 실행합니다.
- Python과 JavaScript와 같은 스크립트 언어는 별도의 파일 생성 없이 소스 코드가 작성될 때마다 인터프리터가 해당 코드를 기계어로 번역하고 실행합니다.
- 컴파일 언어는 이미 기계어로 번역된 파일을 컴퓨터가 실행하므로 스크립트 언어에 비해 빠르고 소스코드에 문법적 오류가 있으면 컴파일 에러를 발생시켜 디버깅이 수월합니다.
- 하지만 일반적으로 문법적 제약이 많아 작성이 비교적 어렵고, 운영체제마다 사용하는 기계어가 다르기 때문에 운영체제에 따라 작업을 각각 다르게 해줘야 하는 단점이 있습니다.
- 스크립트 언어는 컴퓨터가 코드를 실행하는 과정에서 소스 코드를 기계어로 번역하는 과정이 포함되어 있으므로 컴파일 언어에 비해 느립니다.
- 문법적 오류가 있든 없든 일단 실행되기 떄문에 디버깅이 비교적 어렵습니다.
- 하지만 문법적 제약이 비교적 적어 작성이 비교적 쉽고, 운영체제를 신경 쓸 필요없이 한 번만 작성해 놓으면 된다는 장점이 있습니다.
- 실행단계의 차이
- 컴파일 언어는 '컴파일러' 단계가 필요하고
- 인터프리터 언어는 별도의 '컴파일러' 과정이 필요하지 않다.
- 생산 속도의 차이
- 컴파일 언어의 경우 '컴파일' 과정이 들어가기 때문에 인터프리터 언어보다 생산 속도가 느리다.
- 인터프리터 언어는 과정이 단순하기 때문에 생산 속도가 빠르다.
- 소스코드 작성 제약사항
- 컴파일형 언어에는 소스코드 작성을 위한 제약사항이 스크립트 언어보다 더 많다.
- 컴파일 언어는 사용해야 하는 변수의 자료에 대해서 명확하게 알아야 하며
- 각종 문법에 따른 제약 사항들도 명확히 이해해야 한다.
- 디버깅
- 인터프리터 언어는 간편한 만큼 잃는 것도 있다.
- 소스 코드가 실행되기 전까지는 소스코드의 버그를 인지하는 것이 어렵다.
- 컴파일 언어에 비해 오류 인지 시점이 늦다.
- 컴파일 언어가 디버깅 작업이 훨씬 수월한다.
- 실행 속도
- 생산 속도는 인터프리터 언어가 좋지만 실행 속도는 컴파일 언어가 훨씬 더 빠르다.
- 컴파일을 한 뒤에 생성된 파일에 의해 프로그램이 실행되기 때문에 번역기에 의해 번역이 되고 실행하는 인터프리터 언어에 비해 훨씬 빠르다.
- 실행 속도는 C, C++ -> Java -> Python 순으로 느려집니다.
- 연산 속도나 실행 속도에 민감한 프로그램은 인터프리터 언어로 개발하지 않습니다.
컴파일 언어
- 소스코드를 목적코드로 옮기는 것
- 목적코드는 컴파일러나 소스코드 파일을 컴파일 해서 생성하는 파일
- 번역과 실행이 따로 이루어진다.
- 컴파일러(compiler): 번역기라고 불리면 특정 프로그래밍 언어를 다른 언어로 옮기는 프로그램.
- 컴파일이란 컴파일 언어로 부터 작성된 코드에서 실행파일을 생성하는 것입니다.
- 컴파일을 하게 되면 실행가능한 피을(프로그램)이 생성된다.
인터프리터 언어
- 소스코드를 바로 실행하는 컴퓨터 프로그램 또는 환경
- 소스코드를 한줄 한줄씩 읽어들이면서 실행하는 프로그램을 뜻함
- 번역과 실행이 동시에 일어남
- 인터프리터는 별도의 실행파일이 존재하지 않느낟.
- 빌드 과정이란?
- 빌드란, 소스파일을 실행파일로 생성하는 과정
- 과정구조: [고급언어 --> 변환 -- > 기계어]
- 인터프리터 언어는 빌드과정 없이 고급언어에서 한 줄씩 읽어 실행하는 반면
- 컴파일러 언어의 경우 .class 파일 등과 같이 변환하여 실행을 한다.
REFERENCE
https://www.computerhope.com/jargon/c/compile.htm