나는 반사 에 대한 추론 , 즉 실행중인 프로그램의 내성 및 조작에 대한 추론을 지원하는 간단한 미적분학을 찾고 있습니다.
지정되지 않은 거기에 변환을 가능하게 -calculus 확장 구문 적으로 조작 한 후 연속적으로 평가 될 수있는 형태로 -terms은?λ
미적분학에는 두 가지 주요 추가 항이 있다고 생각합니다.
- v v : 소요 과 표현 생산 구문 조작에 수정할 수있는합니다.
- : 용어의 구문 표현을 사용하여 평가합니다.
반영을 지원하기 위해서는 용어의 구문 표현이 필요합니다. 다음과 같이 보일 것입니다 :
- ( L M R ( E ) ) R ( E ) E 용어로 표현된다 , 의 반사 버전 ,
- ( A P P R ( e ) R ( e ' ) ) 는 용어 로 표시되며
- ( V A R x ) 는 됩니다.
이 표현으로 패턴 일치를 사용하여 용어를 조작 할 수 있습니다.
그러나 우리는 문제에 부딪쳤다. 및 은 패턴 일치와 마찬가지로 용어로 인코딩해야합니다. 이 문제를 다루는 것은 , 및 를 추가하는 것이 간단 해 보이지만 이러한 조작을 지원하기 위해 다른 용어를 추가해야합니까?e v a l R E F L E C T E V A L M A T C H
디자인 선택이 필요합니다. 위에서 언급 한 함수는 및 의 본문과 어떤 관계가 있습니까? 이 본문을 변환 해야합니까 ?r e f l e c t e v a l R ( - )
반사 자체를 연구하는 데별로 관심이 없기 때문에 미적분은 다른 연구의 수단이 될 것입니다. 바퀴를 재발 명하고 싶지 않습니다.
방금 설명한 것과 일치하는 기존 미적분이 있습니까?
내가 알 수있는 한, MetaML과 같은 계산법은 의견에서 제안했지만 먼 길을 갔지만 이미 작성된 코드 조각을 일치시키고 해체하는 기능은 포함하지 않았습니다.
내가 할 수있는 한 가지는 다음과 같습니다.
그런 다음 결과에 대해 패턴 일치를 수행하여 완전히 다른 표현을 만듭니다.
이것은 확실히 -calculus에 대한 보수적 인 확장이 아니며 메타 이론은 추악한 것 같지만 이것은 내 응용 프로그램의 요점입니다. -abstractions를 분리 하고 싶습니다 .λ