나는 순간에 약간의 형식화 된 라켓을 배우고 그리고 난 다소 철학적 딜레마가 있습니다형식화 된 라켓 최적화
라켓는 언어 개발 프레임 워크라고 주장하고 형식화 된 라켓은 그 위에 구현 하나 개의 언어입니다. 설명서에 따르면 유형이 사용 되었기 때문에 컴파일러는 더 나은 최적화를 수행 할 수 있습니다.
구체적인 질문 :
이러한 최적화는 어디에서 발생합니까? 컴파일에서
1)/확장 언어 건물 워크의 일부로서 "프로그램"인 부분()
- 또는
2) 상기 (바이트 코드)에 최적화 선 아래 (이것은 C로 작성되고 프레임 워크를 통해 직접 수정할 수 없습니다).
2)가 참이면 형식 정보가 컴파일/확장 단계 후에 손실되고 나중에 옵티마이 저가 "다시 작성/추측"되거나 유형 정보를 수용하고 나중에 알리도록 중간 표현이 변경되었음을 의미합니까? 그들에 관한 무대?
내가이 특정 질문을하는 이유는 내가 Racket 언어 프레임 워크가 실제로 얼마나 일반적인 지에 대한 느낌을 받기를 원하기 때문입니다. 즉, 유형 시스템이 아닌 백엔드에서 수정하지 않고 정적으로 입력 된 언어에 대해서도 실행 가능합니다. 프론트 엔드의 일이지만, 런타임의 코드는 여전히 동적으로 타입이 지정됩니다 (물론 정적으로 검사됩니다).
감사합니다.
이것은 내가 알고 싶었던 모든 답변입니다! 고마워! – Lazarus535