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.
  • Danvy, O.; Shan, C. C.; Zerny, I. (2009). "J Is for JavaScript: A Direct-Style Correspondence between Algol-Like Languages and JavaScript Using First-Class Continuations". Domain-Specific Languages (PDF). LNCS. Vol. 5658. pp. 1—19. doi:10.1007/978-3-642-03034-5_1. ISBN 978-3-642-03033-8. Архивировано из оригинала (PDF) 18 августа 2010. Дата обращения: 19 сентября 2009. Архивная копия от 18 августа 2010 на Wayback Machine