J-оператор
Внешний вид
J-оператор (оператор Лэндина) — программная конструкция, которая объединяет предшествующее λ-выражение с продолжением программы в текущий λ-контекст. Результатом действия этого оператора является объект первого класса, который может быть передан в другие функции в качестве аргумента или вычислен непосредственно.
Введён Питером Лэндином (англ. Peter Landin) в серии работ середины 1960-х работ, основная из которых была посвящена теоретическому языку программирования ISWIM, в котором оператор играл ключевую роль, обеспечивая реализацию изменяемого состояния, присваивание и механизм управления. Для реализации оператора Лэндин ввёл синтаксис, основанный на where-выражениях. Впоследствии этот синтаксис был реализован в реальном языке CPL.
Литература
- P. Landin. The Next 700 Programming Languages // Communications of the ACM. — 1966.
- (January 1964) «The Mechanical Evaluation of Expressions». Comput. J. 6 (4): 308–320. doi:10.1093/comjnl/6.4.308.
- (February 1965) «Correspondence between ALGOL 60 and Church's Lambda-notation: Part I». Comm. ACM 8 (2): 89–101. doi:10.1145/363744.363749.
- (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)
- (December 1998) «An Introduction to Landin's "A Generalization of Jumps and Labels"». Higher-Order and Symbolic Computation 11 (2): 117–123. doi:10.1023/A:1010060315625.
- (November 2008) «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.
- Domain-Specific Languages // [1]. — 2009. — Vol. 5658. — P. 1–19. — doi:10.1007/978-3-642-03034-5_1.
Архивная копия от 18 августа 2010 на Wayback Machine
Для улучшения этой статьи желательно: |