Каковы общие характеристики в occam и csp?

Я видел вопрос, пока учился в OCCAM и CSP (передача последовательных процессов). Я нашел несколько основных ответов, таких как;

  • они оба для параллельного программирования,
  • они получают ввод с вопросительным знаком (?),
  • отправить вывод с восклицательным знаком (!).

Но я хочу узнать больше технических деталей об их общих особенностях.

1 ответ

Решение

На CSP

CSP Хоара был закончен в 1979-1984 годах, когда его Книга о CSP (сегодня насчитывающая более 260 страниц) была впервые опубликована в 1985 году.

Эта окончательная версия CSP также включает каналы, которые обеспечивают межпроцессное взаимодействие и механизм синхронизации.

На occam

Дэвид Мэй вместе с командой Хоара в Оксфорде одновременно с разработкой CSP разработали occam - язык, тесно связанный с очень инновационными и передовыми процессорными сетями TRANSPUTER для InMOS, специально предназначенными для объединения CSP с практическим языком программирования.

Существуют непараллельные расширенные функции occam концепция языка, из которой могут исходить современные языки.

Забавный пример кода (C) 2000 года, Фред Барнс с некоторыми исправлениями / модами от Питера Уэлча иллюстрирует возможности концепций языка / канала CSP на игрушечном примере бар-симулятора, обслуживающего пиво, сохраняя код читабельным и выразительным.

-- ...(cleared for clarity >>> http://frmb.org/download/bar.occ )
-- ..
-- .
--{{{
PROC        bar.tender ( []CHAN OF BYTE  req, rsp,
                           CHAN OF INT   mode.change,
                           CHAN OF O.REQ d.chan,
                           SEMAPHORE     d.sem,
                           CHAN OF BOOL  kill
                           )
  CHAN OF BYTE spinal.chord:
  CHAN OF BOOL kill.brain, kill.body:

  PAR
    --{{{  terminator SEQ, BUT DECLARED TO RUN IN TRUE-PARALLEL EXEC WITH bar.brain() & bar.body()
    BOOL any:
    SEQ                   -- SEQ:
      kill ? any
      kill.brain ! any    -- order is
      kill.body ! any     -- important
    --}}}
    bar.brain ( req, spinal.chord, mode.change, kill.brain )
    bar.body  ( spinal.chord, rsp, d.chan, d.sem, kill.body )
:
--}}}

На следующих волнах CSP и Occam влияли друг на друга (например, в "Законах программирования Occam" ( ~90 страниц, отсканированная копия)), затрагивая такие сложные темы, как распределенная обработка в реальном времени и многие другие дополнительные области, представляющие интерес.

Другие вопросы по тегам