여씨의 개발이야기

java언어와 c언어의 차이점 본문

📕 Note

java언어와 c언어의 차이점

yeossi 2024. 1. 16. 16:13

- c언어는 컴파일된 파일을 바로 실행, java언어는 컴파일된 파일을 인터프리터라는 과정을 거쳐 실행(컴파일러에 의해서 Class라는 바이너리 코드가가 생성되면, 이것을 JVM(자바가상머신)에 의해서 인터프리트 된다)

- c언어로 개발된 프로그램은 완전히 컴파일되어 플랫폼에 종속적, java언어로 개발된 프로그램은 플랫폼에 맞게 인터프리터 과정으로 한 번 더 번역되므로 플랫폼에 자유롭다.
(ex. java 기반의 프로그램은 윈도우 외에 맥, 리눅스에서도 돌아감 - jvm이 플랫폼에 따라 맞게 변형해주기 때문)

- 인터프리터 vs 컴파일러
인터프리터 방식은 한블럭 단위로 읽어 해석한 다음 처리하므로, 그 결과를 즉시즉시 알 수 있고, 컴파일시간이 필요 없다. 그러나 동일한 프로그램이 반복되어도 매번 번역을 해서 실행하기 때문에 프로그램 전체의 실행 시간은 컴파일러 방식보다 느린 단점을 가지고 있다. 대포젹인 것으로 예전에 많이 사용하던 베이직언어가 대표적인 인터프리트 언어이고, 현재 자바스크립트, 비주얼 베이직 스크립트, php등도 일종의 인터프리트 방식으로 동작한다고 할 수 있다.
이에 비하여 컴파일러 방식은 프로그램 전체를 기계어로 바꾼 다음  실행순서대로 재 배치하여 실행 가능한 파일로 변환한다음 실행하는 방식을 말한다. 스크립트 언어에 비하여 컴파일과 컴파일된 오브젝트 코드를 재배치하는 과정인 링크가 필요하기 때문에 인터프리터 방식에 비해서 준비 시간이 많이 필요하나, 변환된 프로그램인 실행행가능 코드를 실행하는데는 인터프리터방식에 비하여 배우 빠른 특징을 가진다. 그리고 문법상의 오류를 컴파일 시점에서 잡아낼 수 있기 때문에 완성된 프로그램에서 문법상의 오류가 발생하질 않게 된다.
c, cpp, c# 등이 이에 해당하는 대표적 언어라 할 수 있다. 

Comments