O usłudze
PrzetłumaczoneJestem inżynierem w obliczeniach współbieżnych i pracowałem z językiem Occam przez wiele lat, który wyrosł z teorii Hoare'a o komunikujących się procesach sekwencyjnych. Zazwyczaj otrzymuję jeden z dwóch typów zadań. Albo istnieje stary system transputera, który nadal kontroluje instalację, skaner lub stanowisko testowe, a nikt nie potrafi już zrozumieć jego kodu. Albo planowany jest nowy projekt, w którym potrzebna jest równoległość wolna od zakleszczeń, która może być udowodniona jako poprawna, zamiast zwykłego splątania wątków i mutexów. Podejmuję się obu rodzajów pracy. W przypadku systemów dziedziczonych czytam kod źródłowy Occam 2, rekonstruuję sieć procesów na papierze, opisuję każdy kanał oraz konstrukcje PAR i ALT, a następnie albo utrzymuję działanie na emulatorach transputerów, albo przepisuję logikę w occam-pi, w C z biblioteką CSP lub w kanałach Go, zachowując dokładną semantykę synchronizacji. W przypadku nowych systemów modeluję wszystko jako procesy sekwencyjne komunikujące się przez typowane kanały, udowadniam brak zakleszczeń i żywych zakleszczeń oraz dostarczam czysty, dobrze skomentowany kod z środowiskiem testowym. Typowa dostawa obejmuje udokumentowaną mapę procesów, działający kod źródłowy pod kontrolą wersji, budowę i symulację, a także krótki raport na temat modelu współbieżności, aby Twój zespół mógł łatwo go utrzymać. Poprawność jest dla mnie ważniejsza niż sprytne sztuczki: kanały pozostają niebuforowane bez dobrego powodu, strażnicy ALT są sprawdzani, a stan współdzielony projektuję tak, aby po prostu nie istniał. Niezależnie od tego, czy muszę ożywić jeden uparty moduł transputera, czy zbudować symulację równoległą od podstaw, doprowadzę pracę od analizy do przetestowanej dostawy. Opisz, co system robi, na jakim sprzęcie lub w jakim czasie działa oraz ile starego kodu przetrwało, a ja szczerze ocenię zakres pracy przed rozpoczęciem.