본문 바로가기

잘 몰라서 하는 공부/분류하기 애매해서

헷갈리는스크립트 언어/인터프리터 언어/컴파일 언어

728x90
728x90


상사 : ㅎㅅㅎ씨 이거 컴파일해서 공유폴더에 업로드해줘요~
ㅎㅅㅎ : 컴파일...? 빌드말고 컴파일...?😵😵😵😵😵

'어...? 이게 맞나...?' 듣고 말하다보면 헷갈리는 개념들이 있다 🙄
특히 개발 언어들은 비슷한 뜻을 다른 단어로 표현하거나, 사람들이 너무 많이 써서 틀린 표기인데도 그냥 사용하는 등
신조어나 외래어가 자주 등장한다.
헷갈리면 정리를 해야지! 머리 속에 둥둥~ 떠다니는 것들을 한 곳에 정리하도록 한다! 😎


사람이 보기에 편하게 만든 코드를 ✨컴퓨터가 알아들을 수 있도록 프로그래밍 언어(기계어)로 만들어주는 번역 과정이 필요하다.
그때, 필요한 통역사가 바로 인터프리터컴파일러이다.

인터프리터 언어 

✨컴파일러를 거쳐서 기계어로 변환되지 않고 바로 실행되는 프로그래밍 언어
똑똑하긴한데 스트릿 감성이 물씬 풍기면서 사소한 건 넘겨버리는 털털한 친구들이 있었는데 그런 통역사랄까?

목적 파일이 없기 때문에 빌드시간이 없고, 코드가 작성될 때마다 인터프리터가 한 줄씩 해석해서 바로 명령어를 실행
문법적인 오류가 있어도 실행은 시작된다.

컴파일 언어

✨반드시 기계어로 컴파일되어야만 실행시킬 수 있는 프로그래밍 언어
칼같은 머리 스타일과 정장을 입고 뿔테 안경까지 쓴 똑똑하고 꼼꼼한 범생이 스타일의 비서같은 통역사 느낌

코드를 기계어로 번역해 (컴파일) 목적 파일을 만드는 시간이 필요하다. 
컴파일할 때 오류가 있다면, 기계어 번역을 통해 빌드되지 않아 실행도 되지 않는다.

스크립트 언어

✨응용 소프트웨어를 제어하기 위해 사용하는 프로그래밍 언어
인터프리터 방식에 사용하기 위해 나온 것으로 최종 사용자가 응용 프로그램을 수정할 수 있도록 한다.
예를 들어, JavaScript를 통해 웹 브라우저(응용 프로그램)를 어떻게 실행할지 정한다.

  인터프리터 컴퍼일러
실행 한 줄씩 번역 전체를 번역
메모리 할당 사용 X
즉시 실행
사용 O
목적 프로그램 생성
번역 속도 빠름 느림
실행 속도 느림 빠름
프로그램 저장 위치 ROM Disk
대표 언어 JavaScript / Python / R / Ruby 등 Java / C# / C++ 등

 

빌드  

소스 코드 파일을 컴퓨터나 휴대폰에서 실행할 수 있는 독립(standalone) 소프트웨어가공물로 변환하는 과정
사람이 해석할 수 있는 언어(고급 언어, 어셈블리어)를 컴퓨터가 이해할 수 있는 언어(저급 언어, 기계어)로 변환

컴파일  

소스 코드 파일을 실행 파일, 라이브러리 등의 Object 파일로 바꾸는 작업 
빌드 단계 속에 컴파일이 함께 진행된다!
자바는 클래스 파일들이 생성되고, C#은 솔루션이 생성된다.

기계어

✨컴퓨터가 이해하고 사용하는 언어 (CPU가 해독할 수 있는 유일한 언어)
전기적 신호인 0과 1로만 표현하고, 비트 단위를 사용한다.
숫자나 데이터는 아니고 있음/없음 낮음/높음 역방향/정방향 과 같은 이분법적인 상태를 표현한다.

728x90
728x90