저는 SICP의 메타 순환 평가 기 (meta-circular evaluator)를 기반으로 장난감 파이썬 Scheme 인터프리터를 작성하려고합니다. 파이썬은 제한된 깊이의 호출 스택만을 지원하므로 꼬리 호출을 제거해야합니다. 나는 trampolines에 대해 읽고 parser를 구현했다. 하지만 trampolines와 함께 사용할 연속 통과 스타일에서 분
후킹에 관심이있어서 몇 가지 기능을 연결할 수 있는지 알아보기로했습니다. 우회로와 같은 도서관을 사용하는 것에 관심이 없었습니다. 왜냐하면 저는 혼자서 그것을하는 경험이 있기를 원하기 때문입니다. 인터넷에서 찾은 일부 소스를 통해 아래 코드를 만들 수있었습니다. 그것은 기본이지만 괜찮습니다. 그러나 여러 스레드에서 호출하는 함수를 후크하는 경우 매우 불안정
오히려 못생긴 템플릿 코딩을 다시 코딩하려고합니다. 참고로 원래는 여기 : CPython의 (C 라이브러리)와 https://codereview.stackexchange.com/questions/69545/recode-c-c-trampoline-function-macros-using-templates class Final : Base
{
void
나는 최근에 JS를 배우기 시작했으며 이것은 기능 언어 영역으로의 첫 번째 다이빙입니다. functional-javascript-workshop npm 모듈에서 "트램펄린"운동을하고 있었고 내 솔루션과 공식 솔루션의 흥미로운 차이점을 발견했습니다. 둘 다 완벽하게 잘 작동하지만, 나는 그들 사이의 실제적인 차이가 정확히 무엇인지에 관해서는 손해보고 있습니다
이 질문은 here에서 따릅니다. 그러나, 이전의 질문은 나쁘게 (사실은 잘못) 말한 것이므로 처음부터 다시 묻는 것이 좋습니다. 나는 C- 함수 포인터 테이블을 가지고있다. 일부 C 코드 (lib-X라고 부름)에는 기본 구성 블록 (X-object라고 부름)이 있습니다. 각 X 객체는이 테이블에서 함수를 호출 할 수 있습니다. 이 테이블 함수는 일반적으로
올바르게 이해하면 scala.util.control.TailCalls을 사용하여 트램펄린을 사용하여 비 꼬리 재귀 함수의 스택 오버플로를 방지 할 수 있습니다. 이 API에 주어진 예제는 간단합니다 : 당신이 recursve 호출 후 일부 작업을 수행하려는 경우 import scala.util.control.TailCalls._
def isEven(xs
나는 C/C++의 신성하지 않은 혼합으로 작은 Scheme 인터프리터를 작성했지만 아직 proper tail calls을 구현해야합니다. 나는 고전적인 Cheney on the MTA algorithm을 알고 있지만 이것을 구현하는 다른 좋은 방법이 있습니까? 나는 Scheme 스택을 힙에 넣을 수는 있지만, 여전히 표준 제거는 활성 테일 호출을 무제한으로
에 나는 메타 프로그래밍에 대한 책을 읽고 오전 탈퇴는 트램폴린에있다 : struct generic_t
{
void* obj;
void(*del)(void*);
};
template <typename T> // outer template parameter
generic_t copy_to_generic(const T& value)
최근에는 꼬리 호출을 제거하는 방법으로 trampolining에 대해 읽었습니다. 내 기능 중 하나를 trampolines을 사용하는 무언가로 변환하고 싶지만 힘든 시간을 보내고있다 (나는 OO 세계에서 온다). 특히 'More()'문을 작성하려는 두 가지 다른 재귀 호출이 있다면 괜찮습니까?
우리는 iOS 앱을 개발 중입니다. 우리가 PC에서 응용 프로그램을 테스트했을 때 모든 것이 잘 작동하지만 iPad/iPhone4에서 실행했을 때 "Trampolines type 2 밖으로 뛰쳐 나오다"오류 메시지와 응용 프로그램이 자주 중단됩니다. 우리는 지난 며칠 동안 그 원인을 밝히기 위해 노력했지만 그 문제를 해결하고 우리가 그물에서 발견 한 모든