Описание услуги
Я инженер по конкурентным вычислениям и уже много лет работаю с языком Occam, который вырос из теории взаимодействующих последовательных процессов Хоара. Ко мне приходят обычно с одной из двух задач. Либо есть старая транспьютерная система, которая до сих пор управляет установкой, сканером или стендом, а разобраться в её коде уже некому. Либо задумывается новый проект, где нужен доказуемо свободный от взаимоблокировок параллелизм, а не привычный клубок потоков и мьютексов. Берусь и за то, и за другое. Для легаси я читаю исходники на Occam 2, восстанавливаю сеть процессов на бумаге, описываю каждый канал и конструкции PAR и ALT, а затем либо поддерживаю работу на эмуляторах транспьютера, либо переписываю логику на occam-pi, на C с CSP-библиотекой или на каналы Go, сохраняя точную семантику синхронизации. Для новых систем я моделирую всё как последовательные процессы, общающиеся через типизированные каналы, доказываю отсутствие дедлоков и живлоков и отдаю аккуратный прокомментированный код с тестовым окружением. В типовую поставку входят описанная карта процессов, рабочие исходники под контролем версий, сборка и симуляция, а также короткий отчёт о модели конкурентности, чтобы вашей команде было легко её сопровождать. Корректность для меня важнее эффектных приёмов: каналы остаются небуферизованными без веской причины, охранники ALT проверяются, а разделяемое состояние я проектирую так, чтобы его просто не было. Нужно ли оживить один упрямый транспьютерный модуль или построить параллельную симуляцию с нуля, я доведу дело от анализа до протестированной сдачи. Опишите, что делает система, на каком железе или рантайме она работает и сколько старого кода уцелело, и я честно оценю объём работ ещё до старта.