환원전략

Reduction strategy

재작성할 때, 축소전략이나 재작성전략은 주어진 축소관계와 양립할 수 있는 각 객체나 용어에 대해 재작성을 명기하는 관계다.[1]일부 저자는 평가 전략을 언급하기 위해 이 용어를 사용한다.[2][3]

정의들

Formally, for an abstract rewriting system , a reduction strategy is a binary relation on with , where is 반사적 폐쇄는 아님).[1]또한 전략의 정상적인 형태는 원래 재작성 시스템의 정상적인 형태와 같아야 한다. 즉, 에 대해 a. . b. . a. b a. b [4]

단계 축소 전략은 그렇지 않으면 여러 단계 전략이다.[5]

결정론적 전략은 부분적인 함수인 경우, 즉 a A에 대해 최대 ( 하나 있는 것이다 않으면 비결정론적 전략이다.[5]

용어 재작성

용어 재작성 시스템에서 재작성 전략은 모든 축소 가능한 하위 용어(redex) 중에서 한 기간 내에 축소(계약)해야 하는 것을 명시한다.

용어 재작성을 위한 한 단계 전략에는 다음이 포함된다.[5]

  • 가장 왼쪽 가장자리: 각 단계에서 가장 안쪽의 가장 왼쪽의 리덱스가 수축되며, 가장 안쪽 리덱스는 리덱스를[6] 포함하지 않는 리덱스가 된다.
  • 가장 왼쪽 가장자리: 각 단계에서 가장 바깥쪽 가장 왼쪽의 리덱스가 수축되며, 여기서 가장 바깥쪽 리덱스는 어떤 리덱스에도[6] 포함되지 않은 리덱스임
  • 가장 오른쪽 가장 오른쪽 가장 오른쪽 가장 오른쪽 가장 오른쪽 가장자리:

다단계 전략에는 다음이 포함된다.[5]

  • 가장 병렬 처리: 가장 안쪽의 모든 리디렉스를 동시에 줄인다.이것은 리덱스가 쌍방향으로 분리되어 있기 때문에 잘 정의되어 있다.
  • 가장 병렬 처리: 유사
  • 총-크누스 감소([7]전체 대체 또는 클레인 감소라고도 함):[5] 용어의 모든 리덱스는 동시에 감소함

병렬 외측 및 총-핵감소(Gross-Knuth)는 거의 모든 직교 용어 재작성 시스템에 대해 초정규화(hyperormalization)하고 있는데, 이는 이러한 전략이 연속적인 전략 적용 사이에 임의적인 감소를 수행(완전히 다수)하더라도, 그것이 존재한다면 결국 정상적인 형태에 도달할 것이라는 것을 의미한다.[8]

스트래티지오는 프로그래밍 용어 재작성 전략을 위해 특별히 고안된 도메인별 언어다.[9]

람다 미적분학

람다 미적분학의 맥락에서 정상 순서 감소에서 주어진 의미에서 가장 왼쪽에서 가장 바깥쪽으로 감소하는 것을 말한다.[10]정상적인 순서 감소는 용어의 형식이 정상이면 결국 정상 순서 감소에 도달한다는 의미에서 정상 순서 감소라는 명칭이 정상화된 것이다.이것을 표준화 정리라고 한다.[11][12]

사전 주문 통과 개념과 유사하게 람다 용어를 문자 문자열로 간주할 때 가장 왼쪽의 리덱스는 가장 왼쪽의 시작 문자와 가장 왼쪽의 시작 문자를 가진 리덱스(readx)를 나타내기 위해 가장 왼쪽의 감소를 참조하는 데 사용된다.[13][14]순서 내 횡단을 사용하여 "가장 왼쪽"을 정의할 때 개념은 구별된다.예를 들어 용어 ( x. )( y. )에서{\(\ x여기, (가) 정의된 I는 순서 내 트래버설의 가장 왼쪽 redex는 {\이고, 가장 왼쪽 끝의 redex는 전체 식입니다.[15]

적용적용적 주문감소란 가장 왼쪽 안쪽의 감소를 말한다.[10]정상적인 순서와 대조적으로, 용어의 형식이 정상인 경우에도 적용적용적 순서 감소가 종료되지 않을 수 있다.[10]예를 들어 적용 오더 감소를 이용하여 다음과 같은 감산 순서가 가능하다.

그러나 정상 순서 축소를 사용하면 동일한 시작점이 빠르게 정상 형태로 감소한다.

완전 β 감소란 각 단계에서 모든 redex를 줄일 수 있는 비결정적 1단계 전략을 말한다.[3]다카하시의 병렬 β-축소란 용어의 모든 redex를 동시에 감소시키는 전략이다.[16]

약감소

람다 추상화 시 감소를 허용한다는 점에서 정상적이고 적용 가능한 주문 감소가 강하다.와는 대조적으로, 약한 감소는 람다 추상화 하에서는 줄어들지 않는다.[17]호별 감축은 람다 추상화 내부가 아닌 가장 바깥쪽 가장 바깥쪽 가장자리를 줄인 약한 감축 전략이고, 가치별 감축은 람다 추상화 내부가 아닌 가장 왼쪽 가장 안쪽 가장 안쪽 가장자리를 줄이는 약한 감축 전략이다.이러한 전략은 호별 및 호별 평가 전략을 반영하기 위해 고안되었다.[18]실제로 적용 순서 축소는 원래 알골 60과 현대 프로그래밍 언어에서 발견되는 가치별 매개변수 전달 기법을 모델링하기 위해 도입되었다.약한 감소의 개념과 결합하면 결과적으로 발생하는 가치별 감소는 실로 충실한 근사치가 된다.[19]

불행하게도 약감축은 합성이 되지 않고,[17] 약평가체제에 위배되는 관계를 제시하기 때문에 람다 미적분학의 전통적인 감량 방정식은 무용지물이다.[19]그러나, 특히 리덱스가 추상화에 의해 구속되는 변수를 수반하지 않는 경우, 추상화 하에서는 제한된 형태의 감소를 허용함으로써, 시스템이 융합될 수 있도록 연장할 수 있다.[17]예를 들어,λx.(λy.x)z는 람다 추상화에 들어있기 때문에 약한 축소전략을 위해 정상적인 형태를 취하고 있다.그러나 redex.(λy.y)z라는 용어는 readx(λy.y)zx를 지칭하지 않기 때문에 확장된 약세축소전략 하에서 여전히 축소될 수 있다.[20]

최적감소

최적의 감축은 일련의 감축이 존재하지 않는 람다 용어의 존재에 의해 동기가 부여되어 중복 작업을 하지 않아도 이를 감소시킨다.예를 들어 다음을 고려하십시오.

(λg. (gx.x))) (hh.(λf.(f(zz.z))))) (λw.(w(λy.y))))))))

중첩된 3개의 항, x=(((λg…… ) (λh.y)), y=(ff. ...) (λw.z)), z=λw.(w(λy.y))로 구성되어 있다.여기서 x와 y에 대해 가능한 β-저감을 두 개만 수행할 수 있다.외부 x 항을 줄이면 먼저 내부 y 항이 중복되어 각 사본은 축소되어야 하지만, 내부 y 항을 먼저 줄이면 그 주장 z가 중복되어 h와 w의 값이 알려졌을 때 작업이 중복되게 된다.[a]

β-축소 수행은 대체된 redex에 대한 정보를 공유하지 못하기 때문에 엄밀한 의미에서 람다 미적분학의 최적축소는 감소 전략이 아니다.대신에 그것은 공유되어야 하는 작업에 대한 정확한 개념을 포착하는 주석으로 표시된 람다 미적분인 람다 미적분학에 대해 정의된다.[21]: 113–114

라벨은 셀 수 없을 정도로 무한대의 원자 라벨 집합과 그리고 라벨 밑줄을 잇는 로 구성된다.라벨로 표시된 항은 각 하위 항에 라벨이 있는 람다 미적분 항이다.람다 용어의 표준 초기 라벨링은 각 하위 용어에 고유한 원자 라벨을 제공한다.[21]: 132 라벨로 표시된 β 감소는 다음을 통해 제공된다.[22]

where concatenates labels, , and substitution is defined as follows (using the Barendregt convention):[22]

그 시스템은 혼합된 것으로 증명될 수 있다.최적 감소는 패밀리에 의한 감소를 이용한 정상 순서 또는 최측근 감소로 정의된다. 즉, 기능 부품 라벨이 동일한 모든 리덱스의 병렬 감소가 그것이다.[23]가족 축소 단계의 최적(최소) 횟수를 수행한다는 점에서 전략이 최적이다.[24]

최적 감소를 위한 실제 알고리즘은 1974년 최적 감소를 처음 정의한 지 10년이 넘은 1989년에 처음 설명되었다.[25][26]볼로냐 최적 고차수 기계(BOHM)는 상호작용 네트에 대한 기법의 확장을 시제품으로 구현한 것이다.[21]: 362 [27]람다스코프는 상호 작용 그물을 이용하는 등 최적 감소를 보다 최근에 구현한 것이다.[28][b]

니즈 축소 콜 바이 니즈 감소

니즈 감소에 의한 호 감소는 라벨이 약간 다른 람다 미적분학에 대해 동일한 라벨을 가진 리덱스의 병렬 감소를 사용하여 최좌측 최측근 감소를 최적으로 약한 것으로 정의될 수 있다.[17]대체 정의는 베타 규칙을 다음 "필요한" 계산을 찾아 평가하고 결과를 모든 위치로 대체하는 연산으로 변경한다.이를 위해서는 구문적으로 인접하지 않은 항을 줄일 수 있도록 베타 규칙을 확장할 필요가 있다.[29]호별, 호별, 호별 가치와 마찬가지로 호별 감소가 '호별' 또는 게으른 평가로 알려진 평가 전략의 행동을 모방하기 위해 고안되었다.

참고 항목

메모들

  1. ^ 우발적으로 위의 용어는 ID 함수( (y.y)로 감소하고, 바인더 g=λh..., f=λw..., h=λx.x(처음에는 h=λx.x) 및 w=λz.z(처음에는)에 ID 함수를 사용할 수 있게 하는 포장지를 만들어 구성하는데, 이 모든 것이 가장 안쪽 용어인 λy.y에 적용된다.
  2. ^ 최적 절감에 대한 최근 연구의 요약은 짧은 글에서 찾을 수 있다. 람다 용어의 효율적 축소에 관한 것이다.

참조

  1. ^ a b Kirchner, Hélène (26 August 2015). "Rewriting Strategies and Strategic Rewrite Programs". In Martí-Oliet, Narciso; Ölveczky, Peter Csaba; Talcott, Carolyn (eds.). Logic, Rewriting, and Concurrency: Essays Dedicated to José Meseguer on the Occasion of His 65th Birthday. Springer. ISBN 978-3-319-23165-5. Retrieved 14 August 2021.
  2. ^ Selinger, Peter; Valiron, Benoît (2009). "Quantum Lambda Calculus" (PDF). Semantic Techniques in Quantum Computation: 23. doi:10.1017/CBO9781139193313.005. Retrieved 21 August 2021.
  3. ^ a b Pierce, Benjamin C. (2002). Types and Programming Languages. MIT Press. p. 56. ISBN 0-262-16209-1.
  4. ^ Klop, Jan Willem; van Oostrom, Vincent; van Raamsdonk, Femke (2007). "Reduction Strategies and Acyclicity". Rewriting, Computation and Proof. 4600: 89–112. CiteSeerX 10.1.1.104.9139. doi:10.1007/978-3-540-73147-4_5.
  5. ^ a b c d e Klop, J. W. "Term Rewriting Systems" (PDF). Papers by Nachum Dershowitz and students. Tel Aviv University. p. 77. Retrieved 14 August 2021.
  6. ^ a b Horwitz, Susan B. "Lambda Calculus". CS704 Notes. University of Wisconsin Madison. Retrieved 19 August 2021.
  7. ^ Barendregt, H. P.; Eekelen, M. C. J. D.; Glauert, J. R. W.; Kennaway, J. R.; Plasmeijer, M. J.; Sleep, M. R. (1987). "Term graph rewriting". PARLE Parallel Architectures and Languages Europe. 259: 141–158. doi:10.1007/3-540-17945-3_8.
  8. ^ Antoy, Sergio; Middeldorp, Aart (September 1996). "A sequential reduction strategy" (PDF). Theoretical Computer Science. 165 (1): 75–95. doi:10.1016/0304-3975(96)00041-2. Retrieved 8 September 2021.
  9. ^ Kieburtz, Richard B. (November 2001). "A Logic for Rewriting Strategies". Electronic Notes in Theoretical Computer Science. 58 (2): 138–154. doi:10.1016/S1571-0661(04)00283-X.
  10. ^ a b c Mazzola, Guerino; Milmeister, Gérard; Weissmann, Jody (21 October 2004). Comprehensive Mathematics for Computer Scientists 2. Springer Science & Business Media. p. 323. ISBN 978-3-540-20861-7.
  11. ^ Curry, Haskell B.; Feys, Robert (1958). Combinatory Logic. Vol. I. Amsterdam: North Holland. pp. 139–142. ISBN 0-7204-2208-6.
  12. ^ Kashima, Ryo. "A Proof of the Standardization Theorem in λ-Calculus" (PDF). Tokyo Institute of Technology. Retrieved 19 August 2021.
  13. ^ Vial, Pierre (7 December 2017). Non-Idempotent Typing Operators, beyond the λ-Calculus (PDF) (PhD). Sorbonne Paris Cité. p. 62.
  14. ^ Partain, William D. (December 1989). Graph Reduction Without Pointers (PDF) (PhD). University of North Carolina at Chapel Hill. Retrieved 10 January 2022.
  15. ^ Van Oostrom, Vincent; Toyama, Yoshihito (2016). "Normalisation by Random Descent" (PDF): 32:3. doi:10.4230/LIPIcs.FSCD.2016.32. {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)
  16. ^ Takahashi, M. (April 1995). "Parallel Reductions in λ-Calculus". Information and Computation. 118 (1): 120–127. doi:10.1006/inco.1995.1057.
  17. ^ a b c d Blanc, Tomasz; Lévy, Jean-Jacques; Maranget, Luc (2005). "Sharing in the Weak Lambda-Calculus". Processes, Terms and Cycles: Steps on the Road to Infinity: Essays Dedicated to Jan Willem Klop on the Occasion of His 60th Birthday. Springer. pp. 70–87. CiteSeerX 10.1.1.129.147. doi:10.1007/11601548_7. ISBN 978-3-540-32425-6.
  18. ^ Sestoft, Peter (2002). Mogensen, T; Schmidt, D; Sudborough, I. H. (eds.). Demonstrating Lambda Calculus Reduction (PDF). The Essence of Computation: Complexity, Analysis, Transformation. Essays Dedicated to Neil D. Jones. Lecture Notes in Computer Science. Vol. 2566. Springer-Verlag. pp. 420–435. ISBN 3-540-00326-6.
  19. ^ a b Felleisen, Matthias (2009). Semantics engineering with PLT Redex. Cambridge, Mass.: MIT Press. p. 42. ISBN 0262062755.
  20. ^ Sestini, Filippo (2019). "Normalization by Evaluation for Typed Weak lambda-Reduction" (PDF). 24th International Conference on Types for Proofs and Programs (TYPES 2018). doi:10.4230/LIPIcs.TYPES.2018.6.
  21. ^ a b c Asperti, Andrea; Guerrini, Stefano (1998). The optimal implementation of functional programming languages. Cambridge, UK: Cambridge University Press. ISBN 0521621127.
  22. ^ a b Fernández, Maribel; Siafakas, Nikolaos (30 March 2010). "Labelled Lambda-calculi with Explicit Copy and Erase". Electronic Proceedings in Theoretical Computer Science. 22: 49–64. doi:10.4204/EPTCS.22.5.
  23. ^ Lévy, Jean-Jacques (1988). "Sharing in the Evaluation of lambda Expressions" (PDF): 187. {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)
  24. ^ Terese (2003). Term rewriting systems. Cambridge, UK: Cambridge University Press. p. 518. ISBN 978-0-521-39115-3.
  25. ^ Lamping, John (1990). "An algorithm for optimal lambda calculus reduction" (PDF). Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '90: 16–30. doi:10.1145/96709.96711.
  26. ^ Lévy, Jean-Jacques (June 1974). Réductions sures dans le lambda-calcul (PDF) (PhD) (in French). Université Paris VII. pp. 81–109. OCLC 476040273. Retrieved 17 August 2021.
  27. ^ Asperti, Andrea. "Bologna Optimal Higher-Order Machine, Version 1.1". GitHub.
  28. ^ van Oostrom, Vincent; van de Looij, Kees-Jan; Zwitserlood, Marijn (2010). "Lambdascope: Another optimal implementation of the lambda-calculus" (PDF). {{cite journal}}:Cite 저널은 필요로 한다. journal=(도움말)
  29. ^ Chang, Stephen; Felleisen, Matthias (2012). "The Call-by-Need Lambda Calculus, Revisited" (PDF). Programming Languages and Systems. 7211: 128–147. doi:10.1007/978-3-642-28869-2_7.

외부 링크