최근의 CACM 기사 [1]에서, 저자는 단계별 기능에 대한 구현을 제시합니다 . 그들은 잘 알려진 것처럼이 용어를 사용하며, 어떤 언급도 명백한 소개처럼 보이지 않습니다.
그들은 짧은 설명을 제공합니다 (강조 광산과 참조 번호가 변경되었습니다. 원래는 22입니다)
프로그램 생성과 관련하여 Taha and Sheard [2]에 의해 확립 된 다단계 프로그래밍 (MSP, 짧게 스테이징) 은 프로그래머가 프로그램 표현의 평가를 후기 단계로 명시 적으로 지연시킬 수있게한다 (따라서, 스테이징). 현재 단계는 효과적으로 다음 단계의 프로그램을 구성하고 실행하는 코드 생성기로서 작용한다.
그러나 Taha와 Sheard는 다음과 같이 씁니다.
다단계 프로그램은 모두 동일한 프로세스 내에서 코드 생성, 컴파일 및 실행과 관련된 프로그램입니다. 다단계 언어는 다단계 프로그램을 표현합니다. 스테이징 및 결과적으로 다단계 프로그래밍은 런타임 해석 오버 헤드를 지불하지 않는 범용 솔루션의 필요성을 해결합니다.
스테이징이 효과적이라는 것을 보여주는 오래된 작업에 대한 몇 가지 언급보다 개념이 더 오래되었다는 것을 암시합니다. 용어 자체에 대한 참조는 제공하지 않습니다.
이러한 진술은 모순되지 않으면 직교하는 것처럼 보인다. 아마도 Rompf와 Odersky가 쓴 것은 Taha와 Sheard가 제안한 것을 적용한 것일지도 모르지만, 똑같은 다른 관점 일 수도 있습니다. 그들은 중요한 점은 프로그램이 런타임에 자신의 일부를 다시 작성한다는 점에 동의하는 것 같지만, 그것이 필요한 능력인지 충분한 능력인지는 모르겠습니다.
그래서, 무엇을한다 준비 이러한 맥락에서 준비의 해석은 각각입니까? 이 용어는 어디에서 유래합니까?
- 경량 모듈 형 스테이징 : T. Rompf와 M. Odersky (2012)의 런타임 코드 생성 및 컴파일 된 DSL 에 대한 실용적인 접근 방식
- W. Taha와 T. Sheard (2000)의 명시 적 주석 을 이용한 MetaML 및 다단계 프로그래밍
@generated function
. julia.readthedocs.org/en/latest/manual/metaprogramming/…