J-оператор

J-оператор (оператор Лэндина) — программная конструкция, которая объединяет предшествующее λ-выражение с продолжением программы в текущий λ-контекст. Результатом действия этого оператора является объект первого класса, который может быть передан в другие функции в качестве аргумента или вычислен непосредственно.

Введён Питером Лэндином (англ. Peter Landin) в серии работ середины 1960-х работ, основная из которых была посвящена теоретическому языку программирования ISWIM, в котором оператор играл ключевую роль, обеспечивая реализацию изменяемого состояния, присваивание и механизм управления. Для реализации оператора Лэндин ввёл синтаксис, основанный на where-выражениях. Впоследствии этот синтаксис был реализован в реальном языке CPL.

Литература

  • P. Landin. The Next 700 Programming Languages // Communications of the ACM. — 1966.
  • Landin, P. J. (January 1964). “The Mechanical Evaluation of Expressions”. Comput. J. 6 (4): 308—320. DOI:10.1093/comjnl/6.4.308.
  • Landin, P. J. (February 1965). “Correspondence between ALGOL 60 and Church's Lambda-notation: Part I”. Comm. ACM. 8 (2): 89—101. DOI:10.1145/363744.363749.
  • Landin, P. J. (March 1965). “A correspondence between ALGOL 60 and Church's Lambda-notations: Part II”. Comm. ACM. 8 (3): 158—167. DOI:10.1145/363791.363804.
  • Landin, P. J., A formal description of Algol 60. Presented at IFIP Working Conf., Baden, Sept. 1964.
  • Landin, P. J., Programming without lmperatives—an Example, UNIVAC S.P. Research Report (March, 1965)
  • Landin, P. J., Getting Rid of Labels, UNIVAC S.P. Research Report (July, 1965)
  • Landin, P. J., An Analysis of Assignment in Programming Languages, UNIVAC S.P. Research Report (September, 1965)
  • Thielecke, H. (December 1998). “An Introduction to Landin's "A Generalization of Jumps and Labels" (PDF). Higher-Order and Symbolic Computation. 11 (2): 117—123. DOI:10.1023/A:1010060315625.
  • Danvy, O.; Millikin, K. (November 2008). Tennent, Robert, ed. “A Rational Deconstruction of Landin's SECD Machine with the J Operator”. Logical Methods in Computer Science. 4 (4:12): 1—67. arXiv:0811.3231. DOI:10.2168/LMCS-4(4:12)2008.
  • (2009) «Domain-Specific Languages». 5658: 1–19. DOI:10.1007/978-3-642-03034-5_1. Архивная копия от 18 августа 2010 на Wayback Machine
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.