아무도 실제로 콘트롤러 반전을 사용하지 않았습니까 컴파일러 구현 내에서 아직? 설계 상으로는 컴파일러가 매우 빠를 필요가 있습니다. 그러나 IoC/DI가 프로그래밍 언어의 구성에 어떻게 영향을 미칠 수 있는지 궁금해했습니다. 핫스왑 가능한 구문, 누구입니까?컴파일러에서 반전 제어
1
A
답변
0
LR (k) 문법은 일반적으로 테이블 (action-goto/shift-reduce 테이블)에 의해 구동되는 일반 파서 시스템을 사용하므로이 테이블을 생성하는 테이블 생성기 도구를 사용하여 일반 구문 분석기 시스템에 공급합니다 테이블을 사용하여 입력 내용을 분석 할 수 있습니다. 일반적으로 이러한 파서 시스템은 비 터미널이 감소되었다는 신호를 보냅니다. 예를 들어 무료 인 GoldParser 시스템을보십시오.
-3
컴파일러는 자연스럽지 않으므로 컨트롤의 반전을 반대로 이라고 부릅니다. 일반적으로 입력 언어의 코드를 출력 언어의 코드로 변환하는 일련의 패스입니다. 물론 다른 패스로 교환 할 수 있습니다 (예 : gcc가 다른 프론트 엔드를 사용하여 여러 언어를 컴파일).
1
종종 Lisp 스타일의 언어가이를 수행합니다. Reader macros은 언어의 독자 (따라서 문법)를 확장하는 사용자 작성 코드 조각입니다. Plain-old 매크로는 언어를 확장하는 사용자 작성 코드 조각입니다.
전체 구문은 핫 스왑이 가능하지 않지만 특정 부분은 다양한 방법으로 확장 가능합니다.
이 모든 것이 새로운 아이디어는 아닙니다. 세 글자로 된 두문자어로 볼 때, IoC는 "늦은 구속력"으로 알려져 있었고, 꽤 좋은 생각으로 동의했습니다.
실제로 Frans, 필자는 파서 프론트 엔드가 아닌 전체적으로 컴파일러 디자인을 언급했습니다. 즉석에서 구문을 바꿀 수있는 컴파일러가 있거나 IL에서 JVM 바이트 코드로 코드 생성 백엔드를 변경하는 것과 같은 다른 흥미로운 작업을 수행하는 것이 좋습니다. – plaureano