과제의 목적은 C 언어의 하위 집합에서 작동하는 컴파일러를 작성하는 것이라고 가정합니다 (어떤 언어의 하위 집합이라도 가정 할 수 있습니다. 객체로 복잡한 것을 사용하지 않고 기본적인 스크립팅 표현력 만 지원합니다).어떤 것이 좋고 간단한 중간 코드입니까?
컴파일러의 정확성을 확인하기 위해 어떤 종류의 중간 코드를 사용할 수 있습니까? 저는 교수와 이야기를하고있었습니다. 그는 VM이 "컴파일 된 코드"로 사용되도록 학생들에게 무엇을 줄지 몰랐다는 사실에 대해 이야기 했으므로 어떤 것이 좋은 해결책이 될 수 있는지 궁금합니다.
Subset of C -> Compiler -> Code? -> VM
코드는 바이너리 형식이거나 ASCII 형식 (pseudo-asm과 같은 형식)으로되어있을 수 있습니다.
이미 대한로 컴파일하는 방법이 중간 코드와 VM, 그냥 .. 간단하고 일부 컴파일 된 프로그램을 테스트 할 준비가 간단한
목적은 같은 낮은 일에 이미 자바 스크립트의 복잡성에 언어를위한 컴파일러를 작성하는 것입니다 고전적인 스택/힙 관리 기능을 갖춘 더미 VM이지만 실제 하드웨어처럼 복잡하지는 않습니다 – Jack
간단하게 컴파일 할 수 있습니다 자바 스크립트의 하위 집합. – Amnon
중간 코드가 얼마나 복잡해 지는지를 결정하는 데있어 가장 큰 요소가 내 컴파일러 인 것 같습니다.최적화가 이루어지면 모든 것을 기반으로하는 기계를 활용할 수 있고 중간 코드는 더 많은 기능을 사용합니다. 반면 간단하게 유지하려면 컴파일러가 기본적으로 단순한 LOAD, STORE, ADD 등을 생성 할 수 있습니다. 기본 (가상) 머신에 대한 코드 명령어. – JeSuisse