2012-06-14 3 views
3

IMHO opcode가 PHP 컨텍스트에서 주로 언급되므로이 질문은 대부분 PHP와 관련이 있습니다.기계 코드와 연산 코드의 차이점은 무엇입니까?

몇 가지 질문> 여기에 컴파일> 결과 = 옵 코드> 검사/분석 - - -> 결과 = 토큰

PHP는 텍스트 :

description에 따르면, 여기 오피 코드에 PHP 코드의 변환 과정이다 1) opcode는 기계 코드의 일부분입니까, 기계 코드는 opcode로 구성되어 있습니까? 2) Wamp 서버의 컨텍스트에서 생각하면 PHP 모듈은 어떤 책임이 있습니까? 이 모듈은 PHP 코드를 토큰으로 변환하는 PHP 인터프리터인가, 아니면 하드웨어 (프로세서)에서 실행되는 opcode로 토큰을 컴파일하는 컴파일러인가?

답변

3

IMHO opcode는 PHP 컨텍스트에서 주로 언급되므로이 질문은 대부분 PHP와 관련이 있습니다. 오피 코드는 기계 코드는 옵 코드로 구성 않습니다, 기계 코드의 일부만 사실

는 자바 오피

1) /이 바이트 동작의 더 인기가 있습니까?

예. 그러나이 opcode는 기계에 따라 다릅니다. javas 또는 phps 바이트 코드에서 흥미로운 점은 머신에 독립적이며 플랫폼 특정 가상 머신에서 실행된다는 것입니다.

2) Wamp 서버의 컨텍스트에서 생각해 보면, PHP 모듈은 어떤 책임이 있습니까?

모듈이 없으므로 핵심 부분입니다.

Lexer => Tokenizer => Compiler 

는 토큰 모듈로 PHP 코드를 변환하거나 또한 하드웨어 (프로세서)에서 실행되는 연산 코드로 컴파일 토큰 컴파일러 단지 PHP 인터프리터는?

정확하게는 아닙니다. 결과 바이트 코드는 기계에 독립적이며 ("Zend-opcode"라고 함) 하드웨어에서 직접 실행할 수 없습니다. 마지막 단계는이 바이트 코드를 기계 종속적 인 opcode로 변환하는 것입니다.

  • 오피 기계 프로세서에 의해 실행 할 준비가 코드 - -

  • +2

    난 바이트 코드는 머신 - 의존성 연산 코드로 변환된다 언급하지 않았다 다음번가 상기 프로세서에 의해 수행 될 수 있도록 바이트 코드를 컴파일를 캐시 모듈 PHP Accelerator있을 것이다. 오히려 그것은 기계 자체의 상단에서 실행되는 가상 시스템에 의해 해석됩니다. – Ben

    2
    • 기계 코드 코드가

    연산 코드는 PHP 코어에 의해 실행되는 인터프리터에 의해 실행되는, 그것은 내부 기능입니다. 은 PHP 스크립트를 고속화 직접

    관련 문제