POJ(JVM의 Pascal)를 따르지 않는 사람들을 위해 JVM을 실행 환경으로 사용할 수 있도록subset을 Pascal에서 JASM(Java Assembly)으로 변환하는 컴파일러입니다.
지난 포스트에서는Pascal의read/readln지원이 구현되었는데, 이는 표준 입력(stdin)에서 데이터를 읽을 수 있게 해주는 기능입니다. 이 간행물에서는 POJ의 목표 중 하나인 표준 입력에서 숫자를 읽고 계승을 재귀적으로 계산하는 작업을 완료합니다.
JVM용으로 컴파일하는 동안 이 놀라운 가상 머신의 다양한 지점의 기능을 자세히 설명할 필요가 있습니다. 따라서 JVM의 내부 작동 방식과 일부 지침(opcodes)을 여러 번 자세히 설명합니다.
프로젝트 초반에 언급했듯이 목표 중 하나는 표준 입력에서 계산할 숫자를 읽어서 계승을 재귀적으로 계산할 수 있도록 하는 것이었습니다. 현재까지 POJ의 구현을 통해 다음과 같은 목표가 가능해졌습니다.
이제 지금까지 개발된 내용을 검증할 시간이 왔습니다. 아래 Pascal 프로그램에서는 다음과 같이 설명합니다.
POJ는 다음어셈블리를 올바르게 생성합니다.
이제 이 프로젝트로 학습 여정이 끝났습니다.
이 프로젝트를 통해 컴파일러 영역의 몇 가지 흥미로운 사항(예: 생성된 코드 최적화)을 탐색할 수 있습니다. 누가 알겠습니까? 가까운 시일 내에 최적화를 통해 새로운 시리즈를 시작할 것입니다 :-)
프로젝트의 전체 코드와 문서가 포함된 저장소가 여기에 있습니다.
위 내용은 화재 테스트: 재귀 계승의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!