java

컴파일러(compiler)와 data, type

다름임 2024. 12. 23. 10:57

 

값에 타입이 지정되면 시스템에서 유의미한 데이터가 될 수 있다고 했다. 

그럼 이 데이터를 담을 저장 공간이 필요해지는데, 이것을 변수 라고 한다. 

 

(변수란? 1개 값의 저장공간이다. )

 

자바의 컴파일러 : javac 

 

컴파일러는 if문으로 구성되어 있다. 

소스코드가 컴파일러를 통해서 클래스 파일로 변환되는데 

컴파일러는 두가지 역할을 한다. 

1. if문을 통한 타입 체크

2. 번역 

 

 

우리가 소스코드를 작성할 때 값을 data로 사용하기 위해서는 type을 붙여준다. 그런데 type이 값과 잘 매칭되는지 확인하는 과정이 필요하게 된다. 직접 확인하는 방법은 소스코드 내에 추가적으로 if문을 작성하여 조건과 일치하는지 확인하는 것이다.  그래야 프로그램이 원하는 목적을 달성할 수 있는데, 

컴파일러는 우리가 타입이 적절하게 붙여졌는지 확인하는 과정을 대신 해준다. 

반대로 생각하면, type을 값에 붙이게 되면 우리가 직접 작성해야 하는 if문이 줄어들게 되고, 이는 코드의 간결화를 달성하고 이는 코드의 에러 가능성을 낮추고 프로그램의 질을 높인다. 

컴파일러는 type이 없으면 체크 불가능하다. 

 

컴파일러는 타입 체크를 왜 할까?
--> 원하는 목적의 값이 잘 들어가게 해야 하기 때문에 다른 값이 들어가지 못하도록 한다. 

 

 

그럼 타입은 값에 대한 조건이며 필터라고 정리할 수 있다. 

 

 

컴파일러는 정확히 말하면 소스코드를 체크하여 바이너리 코드 (실행파일)을 생성하며, 이것을 cpu에 전달한다. 

 

 

 

(참고)

* 소프트웨어는 하드웨어의 가상화 버전이다. 

사용 이유? --> 변경을 용이하게 하기 위해서 

* 하드웨어는 단순화하고, 컴파일러의 성능 극대화, 최적화로 소프트웨어를 변경하는 방법이 제일 적절하다. 

* 에뮬레이터 : 하드웨어를 소프트웨어로 가상화한것 

ex) java의 에뮬레이터 : JVM(java virtual machine) 

책을 emulator를 통해 pc에서 ebook으로 볼 수 있다. 

 

 

 

'java' 카테고리의 다른 글

VisualVM 테스트 1 : 쓰레드 부하, Cpu 부하 확인  (1) 2025.05.02
연산자와 식, 문장  (0) 2024.12.23
값(value)과 타입의 관계  (0) 2024.12.23
프로그램과 객체지향형설계  (0) 2024.12.23