-
<Java용어>컴파일 언어와 인터프리트 언어(Compile Language vs Interpreted Language)코딩Coding/Java&Kotlin용어 2020. 6. 11. 09:29728x90
컴파일 언어와 인터프리트 언어
프로그래밍 언어는 실행 방식에 따라 크게 두 가지로 나눌 수 있다. 하나는 실행하기 전에 실행에 대한 모든 것들을 결정해 놓는 언어이며, 다른 하나는 실행 시점에 결정하는 언어이다. 알다시피 앞엣 것을 컴파일 언어라고 부르고 뒤엣 것을 인터프리트 언어라고 부른다. 컴파일 언어에서의 '컴파일'이란 원시코드를 목적코드로 변환하는 일련의 작업을 일컫는다. 컴파일 과정을 순서대로 나열하면 다음과 같다.
1)원시코드 : 프로그래머들이 에디팅한 코드
2)어휘분석 : 사용 가능한 낱말들로 이루어졌는지 점검
3)구분분석 : 낱말들의 연결이 타당한지 점검
4)의미분석 : 연결된 문장의 의미가 옿은지 점검. 가령 함수의 리턴 타입대로 반환되는지 여부
5)목적코드 : 머신코드로 변환
쉽게 말해 소스코드의 유효성을 점검하고 이상이 없으면 기계어로 변환하는 일을 두고 컴파일 작업이라고 말한다. C와 같은 컴파일 언어에서는 컴파일(목적코드 생성) 작업 후, 링크 편집 과정을 거친다. 링크 편집이란 목적코드 내의 한 모듈에서, 참조하고 있는 다른 모듈의 상대적 위치를 결정하는 작업을 말한다. 링크 편집이 완료되면 로드모듈이라는 결과물이 만들어지는데, 로드모듈이 작성되었다는 것은 실행에 대한 모든 지침이 마련되었다는 것을 뜻한다. 그러니까, 변수 a의 데이터 타입이 런타임 이전에 이미 파일 내에 기록되어 있는 셈이다.
컴파일 언어가 프로그램 전체를 번역한 후 실행된다면, 인터프리트 언어는 명령 줄 단위로 번역한 후 그 결과를 머신에 전달하는 방식을 취한다. 다음은 JVM 인터프리터와 관련한 예제이다.
https://m.blog.naver.com/PostView.nhn?blogId=bigblogger&logNo=150002703509&proxyReferer=&proxyReferer=http:%2F%2Fblog.naver.com%2Fbigblogger%3FRedirect%3DLog%26logNo%3D150002703509
https://www.google.com/search?q=compile%20language
https://www.geeksforgeeks.org/difference-between-compiled-and-interpreted-language/
https://www.programiz.com/article/difference-compiler-interpreter반응형'코딩Coding > Java&Kotlin용어' 카테고리의 다른 글
Spring세팅❤Develop your Spring Boot application with Visual Studio Code (0) 2023.04.11 Java❤️오버로딩(Overloading)과 오버라이딩(Overriding)의 차이점 (0) 2022.11.19 정적 메소드(Static Method) (0) 2021.05.09 JAVA논리합, 논리곱 (0) 2020.06.20 자바가상기계(JVM, Java Virtual Machine) (0) 2020.06.14