Теория взаимодействующих последовательных процессов
Теория взаимодействующих последовательных процессов (CSP, англ. communicating sequential processes) — формальный язык для описания моделей взаимодействия в параллельных системах[1], теория из семейства исчислений процессов, основанных на передаче сообщений по каналам. Применена как теоретическая основа для языка программирования Оккам[1][2], заложена в моделях параллелизма языков Limbo и Go[3].
Первый вариант описан в статье Энтони Хоара в 1978 году[4], но он был признан неудачным, поскольку не представлял неограниченный индетерминизм[англ.]. Впоследствии под влиянием идей, заимствованных из модели акторов Карла Хьюитта[англ.] теория была значительно изменена. В версиях от 1985 года уже использовался неограниченный индетерминизм; с тех пор теория значительно развита[5] и остаётся предметом активных исследований[6].
На практике теория применялась в качестве инструмента формальной спецификации систем с параллелизмом, таких как, например, транспьютер T9000[7] или безопасной системы электронной коммерции[8].
Примечания
[править | править код]- ↑ 1 2 Bill Roscoe. The Theory and Practice of Concurrency. — Prentice Hall, 1997. — ISBN 0-13-674409-5.
- ↑ INMOS[англ.]. occam 2.1 Reference Manual (неопр.). — SGS-Thompson Microelectronics Ltd., 1995. Архивировано 1 августа 2020 года., INMOS document 72 occ 45 03
- ↑ Language Design FAQ: Why build concurrency on the ideas of CSP? Дата обращения: 7 ноября 2015. Архивировано 2 января 2013 года.
- ↑ C. A. R. Hoare. Communicating sequential processes (англ.) // Communications of the ACM. — 1978. — Vol. 21, no. 8. — P. 666—677. — doi:10.1145/359576.359585.
- ↑ Abdallah, Ali E.; Jones, Cliff B.; Sanders, Jeff W. Communicating Sequential Processes: The First 25 Years (англ.). — Springer, 2005. — Vol. 3525. — (LNCS).
- ↑ Creese, S. Data Independent Induction: CSP Model Checking of Arbitrary Sized Networks (англ.) : journal. — Oxford University, 2001. — Vol. D. Phil..
- ↑ Barrett, G. Model checking in practice: The T9000 Virtual Channel Processor (англ.) // IEEE Transactions on Software Engineering : journal. — 1995. — Vol. 21, no. 2. — P. 69—78. — doi:10.1109/32.345823.
- ↑ Hall, A; Chapman, R. Correctness by construction: Developing a commercial secure system (англ.) // IEEE Software : journal. — 2002. — Vol. 19, no. 1. — P. 18—25. — doi:10.1109/52.976937. Архивировано 2 декабря 2020 года.
Литература
[править | править код]- Хоар Ч. Взаимодействующие последовательные процессы. — М.: Мир, 1989. — 264 с. — ISBN 5030010432.
- Ali E. Abdallah, Cliff B. Jones, Jeff W. Sanders. Communicating Sequential Processes. The First 25 Years: Symposium on the Occasion of 25 Years of CSP, London, UK, July 7-8, 2004. Revised Invited Papers. — Springer Science & Business Media, 2005. — ISBN 978-3-540-25813-1.
- A. W. Roscoe. Understanding Concurrent Systems. — Springer Science & Business Media, 2010. — ISBN 978-1-84882-258-0.
![]() | В другом языковом разделе есть более полная статья Communicating sequential processes (англ.). |