2013-11-23 5 views
2

몇 가지 해석 된 프로그래밍 언어 (PHP, Python, Java, Smalltalk)는 코드 실행을위한 중간 단계로 바이트 코드를 사용합니다.다른 프로그래밍 언어의 바이트 코드 차이점

다른 언어의 인터프리터에서 생성 된 바이트 코드 형식과 다른 컴퓨터의 어셈블리 연산 코드의 차이점은 무엇입니까?

또한 바이트 코드는 해석 된 언어에서만 사용할 수 있습니다. 맞습니까?

답변

3

바이트 코드는 기계어가 실제 프로세서에서 실행되는 명령어의 일반적인 용어와 같은 방식으로 가상 컴퓨터에서 실행되는 명령어의 일반적인 단어입니다. 많은 다른 기계 명령어 세트가있는 것처럼, 많은 다른 바이트 코드 명령어 세트가있다. Java 바이트 코드와 같이 일부는 문서화 된 플랫폼 부분입니다. 모든 Java 가상 머신은 정의에 따라 정확히 동일한 바이트 코드를 실행합니다. 다른 것은 구현 세부 사항 일 뿐이며 버전마다 다릅니다.

마지막 질문에 대답하려면 다음과 같이하십시오. Java는 해석 된 언어가 아닙니다. 그것은 just-in-time 컴파일입니다. C#은 비슷합니다. 바이트 코드는 다양한 아키텍처의 일부일 수 있습니다.

+0

그래서 실용적인 대답은 '예'입니까? 자바 바이트 코드는 파이썬 바이트 코드와 다릅니다. 이러한 인기있는 언어 간의 차이점이 중요합니까? – Reflection

+1

예 그들은 완전히 다릅니다. 유사한 점이 거의 없습니다. –

1

Ernest가 언급 한 것처럼 다른 언어의 벤더 종속 바이트 코드 구현입니다. 이미 바이트 코드를 표준화하려는 시도가있다. 마이크로 소프트의 솔루션을 구경 해보십시오. CIL

주목할만한 것은 LLVM입니다. 컴파일러는 임의의 CPU 명령어 세트에 최적화 컴파일을 제공하는 서로 다른 바이트 코드를위한 접착제가되고 있습니다.

+1

CIL이 .NET 전용 바이트 코드가 아닌가? Java의 JIT 바이트 코드와 비교하여 표준화 시도는 무엇입니까? – Reflection

+0

네, 저수준 .NET입니다. 또한이 스레드를 살펴보십시오 http://stackoverflow.com/questions/95163/differences-between-msil-and-java-bytecode –