저는 제 자신의 장난감 프로그래밍 언어를 연구하고 있습니다. 지금은 AST에서 소스 언어를 해석 중이며 바이트 코드로 컴파일 할 때 어떤 이점이 있는지 궁금해하며이를 해석하면 나에게 도움이 될 수 있습니다. 배열에서 지침을 실행하는 것보다 속도가 느려질 수 있습니다 시간의 구문 트리 수백 순회바이트 코드로 컴파일하는 동기는 무엇입니까?
- 특히 배열 지원 O (1) 랜덤 액세스의 경우 (예 : 들어
지금 나는 3 마음에 일이있다. 10 개의 명령을 위아래로 움직이면서).
- 입력 된 실행 환경에서 내 대서 문자를 입력했기 때문에 실행 시간이 얼마 남았고 끊임없이 탐색하고 있습니다 (예 : 10 가지 유형의 노드가 있으며 지금 어떤 형식인지 확인해야합니다. 실행). 형식이 지정되지 않은 바이트 코드로 컴파일하면 형식을 검사하고 컴파일 한 후에 유형이 지정되지 않은 값과 코드가 있기 때문에이를 향상시키는 데 도움이 될 수 있습니다.
- 바이트 코드로 컴파일하면 더 나은 이식성을 제공 할 수 있습니다.
요점은 올바른가요? 바이트 코드로 컴파일하는 다른 동기는 무엇입니까?
해석자에서 실행하면 코드의 이식성이 향상됩니다. – Luis
@ 루이스 (Luis, 예, 내 마음에 이미 있습니다.) 추가하는 것을 잊었습니다. – sinan
@Luis : 그건 가짜입니다. 직렬화 된 AST는 동등하게 이식 가능합니다. 실제로 바이트 코드는 이식 가능하지 않을 수 있습니다. 파이썬 바이트 코드는 각 버전의 인터프리터에 따라 다릅니다. –