-
[Java] 기계어(바이너리코드)와 바이트코드Programming/Java 2021. 4. 5. 12:53
기계어(바이너리코드)와 바이트코드를 알아보자
컴퓨터(CPU)는 일종의 계산기이다.
0과 1로 이루어진 바이너리 코드(binary code)를 해석하여 프로그램을 실행한다.사람이 이해할 수 있는 high-level language
x = 10 + 2 y = x + 4
기계가 이해할 수 있는 low-level language (binary/machine code)
001001 11101 11101 1111111111111000 001000 00001 00000 0000000000001010 001000 00001 00001 0000000000000010 101011 11101 00001 0000000000000000 001000 00010 00001 0000000000000100 101011 11101 00010 0000000000000100 001001 11101 11101 0000000000001000
컴퓨터에게 일을 시키기 위해서는, 기계가 이해할 수 있는 기계어로 명령을 내려야 한다.
하지만 위에서 본 것 처럼, 기계어는 실제 인간이 사용하는 언어와 거리가 멀기 때문에 기계어(저급언어)로 프로그래밍을 하는 것은 매우 비효율적이다.이러한 문제를 해결하기 위해 등장한 것이 고급언어이다. 컴퓨터가 이해하기 쉽도록 쓰여진 저급언어와 달리 고급언어는 사용자가 이해하기 쉽도록 쓰여져있다. 따라서 인간의 입장에서 볼 때 보다 가독성 높고 다루기 편하다는 장점이 있다.
저급언어와 고급언어의 종류
source : www.tutorialandexample.com
고급언어로 작성된 프로그램은 기계어가 아니기 때문에 컴퓨터가 이해할 수 없다. 따라서 기계어로 번역하는 과정을 거쳐야하는데 이 과정을 Compile이라 한다.자바파일 컴파일 과정
즉, 사용자가 작성한 고급언어가 컴파일러를 통해서 기계어로 번역되고, 번역된 코드를 컴퓨터가 이해하여 프로그램을 실행시키는 것이다.
참고자료
'Programming > Java' 카테고리의 다른 글
[Java] GitHub API를 사용해서 대시보드 만들기 (0) 2021.04.05 [Java] 자바파일 컴파일(javac)과 실행(java) (0) 2021.04.05 [Java] JVM의 구조 (0) 2021.04.05 [Java] JDK(개발도구), JRE(실행환경), JVM(가상머신) (0) 2021.04.05 [Java] JVM과 GC 메모리 관리 (0) 2021.04.05 댓글