정규화 (람다 아래에서의 대체 포함)를 "최적화"로 사용하는 형식화 된 람다 - 미적분의 단순한 컴파일러 (비단 말 및 암시 적 재귀 문제를 제외)를 상상해보십시오.프로그램을 악용하는 컴파일 타임 대체 예제
대부분 또는 모든 변수를 한 번만 사용하는 간단한 프로그램의 경우 정규화로 인해 프로그램이 더 짧아지고 빠릅니다.
제게는 "명백합니다"일반적으로 좋은 생각이 아닙니다. 즉, 정규화로 공유가 줄어들 기 때문에 최적화로 인해 악화되는 용어가 있습니다. 2 곱셈
\x -> let a = x * x in a * a
와 용어는 그 중 3
\x -> (x * x) * (x * x)
에 "최적화"됩니다.
임의로 악화되는 예제를 구성하려면 어떻게해야합니까? 정상화 될 때 RAM 오버플로 가능성이있는 용어가 있습니까?
Google은 정규화가 강한 유형 시스템에서 작업하므로 발산 할 수 없습니다. 예 : 상수 및 델타 규칙을 사용하여 시스템 F의 적절한 하위 집합에서
또는 mul
과 같은 상수를 추가하는 "자유로운"방법으로.
따라서 상수를 추가하는 대신 "런타임시 제공되는 추가 매개 변수"입니다.
질문은 SE Computer Science에 속한 것처럼 보일 수 있지만 IMO는 정말 엔트리 레벨이므로 여기가 더 적절하다고 생각합니다.
어 [cs. se]는 초보자 용을 포함하여 모든 종류의 cs 관련 질문 사이트입니다. [cstheory.se]는 연구 수준의 질문을위한 곳입니다. –