티스토리 뷰

컴파일 언어

  • 컴파일러를 통해 구현되며 소스 코드를 기계어로 바꾸는 과정을 사전에 처리하여 컴퓨터가 빠르게 구동하는 방법

 

인터프리터 언어

  • 대부분 소스코드를 기계어로 컴파일하지 않고 인터프리터를 통해 소스코드 실행시 각 소스코드 구문(스테이트먼트)를 하나 이상 서브루틴 순서로 변환 후, 기계어나 바이트코드, CIL 등 다른 언어로 변환하여 구현

 

  컴파일러 언어 인터프리터 언어
  소스코드를 직접 기계 코드로 변환 소스코드를 직접 기계 코드로 변환하지 않고, 인터프리터라는 프로그램에 의해 한 줄씩 실행
  미리 컴파일을 진행하여 오류를 사전예방 가능 동적 타이핑 지원(Dynamic Typing) 및 프로그램 크기가 대체로 더 작다.
  테스트를 위해 컴파일 과정이 필요하여 추가 시간 소요 수정사항을 바로 실행하여 확인가능
  프로그램 실행이 인터프리터보다 빠르지만 컴파일 과정이 길다. 프로그램을 컴파일하는 과정이 짧고 컴파일 언어보다 전형적으로 실행 속도가 느리다.
  명령어들을 모으고 한 번에 실행 한 줄 씩 명령을 확인 후 실행, 자체 속도는 컴파일러보다 느림
  소스코드를 기계어로 번역하는 과정 필요 (빌드)
고급언어 > 변환 > 기계어 > 실행파일 생성
고급 프로그램을 즉시 실행하고 프로그램 수정이 간단
  생성된 바이너리 코드가 플랫폼에 영향을 받는다. 인터프리터가 실행하여 코드가 플랫폼 영향을 받지 않는다.
  C, C++, C#, GO 등 JavaScript, Phyton, Ruby, SQL 등

 

종류

컴파일 언어 인터프리터 언어
  • Ada
  • ALGOL
  • Visual Basic
  • PureBasic
  • C
  • C++
  • C#(바이트코드)
  • CLEO
  • COBOL
  • Cobra
  • Crystal
  • D
  • eC
  • Eiffel
  • Sather
  • Ubercode
  • Erlang(바이트코드)
  • F#(바이트코드)
  • Factor(바이트코드)
  • Forth
  • Fortran
  • Go
  • Haskell
  • Haxe(바이트코드 또는 C++)
  • Java(바이트코드)
  • Scala
  • Kotlin
  • JOVIAL
  • Julia
  • LabVIEW, G
  • Lisp
  • Common Lisp
  • Lush
  • Mercury
  • ML
  • Standard ML
  • Alice
  • Python(바이트코드-CPython)
  • OCaml
  • Nim (C, C++,또는 Objective-C)
  • Open-URQ
  • Pascal
  • Object Pascal
  • Delphi
  • Free Pascal / Lazarus
  • Modula-2
  • Modula-3
  • Oberon
  • Objective-C
  • PL/I
  • RPG
  • Rust
  • Seed7
  • SPITBOL
  • Swift
  • Visual Foxpro
  • Visual Prolog
  • W
  • Zig
  • APL
  • BASIC(초창기 버전)
  • J
  • Euphoria
  • GameMaker Language
  • JavaScript
  • Forth
  • Lava
  • Lisp
  • MUMPS
  • PHP
  • PostScript
  • Python
  • Ruby
  • REXX
  • Seed7
  • Smalltalk
  • S
  • Tcl
  • Unix shell
  • XOTcl
  • VBScript

 

 

* 자바는 컴파일 언어와 인터프리터 언어를 같이 사용한다.

이를 설명하자면, 자바는 다른 컴파일 언어들 처럼 전체 코드를 한번에 번역하는 자바 컴파일러(Java Compiler)가 존재하고 이 자바 컴파일러는 우리가 작성한 Java 코드를 JVM이 실행시킬 수 있는 바이트 코드로 번역한다.

하지만 자바 바이트 코드는 JVM의 자바 인터프리터(Java Interpreter)를 이용해 한 줄씩 실행된다. 즉, 자바 컴파일러로 생성된 바이트 코드를 자바 인터프리터가 한 줄씩 읽으며 2진 코드로 번역 후 실행시킨다.

요약하면, 자바는 컴파일 언어를 사용하여 바이트 코드로 컴파일 후 JVM에 전달하고 JVM에서 인터프리터가 한 줄씩 읽으며 컴퓨터가 이해하도록 번역하여 실행한다.

 

 

 

 

 

 

Compiled VS Interpreted 언어 | 블로그 | 딩그르르

Compiled VS Interpreted 언어

dingrr.com

 

 

[JAVA] JAVA는 컴파일 언어일까, 인터프리터 언어일까?

앞의 글에서 우리가 코딩 시에 사용하는 언어들은 컴파일 언어와 인터프리터 언어로 구분할 수 있다는 사실을 알게 되었다. 다시 기술하자면, C, C++, Go 등의 언어는 컴파일 언어이고, Python, R, Java

jooona.tistory.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함