Sobre o serviço
TraduzidoSou engenheiro em computação concorrente e trabalhei com a linguagem Occam por muitos anos, que surgiu da teoria de Hoare sobre processos sequenciais comunicantes. Normalmente, recebo um dos dois tipos de tarefas. Ou há um sistema de transputador antigo que ainda controla uma instalação, scanner ou bancada de testes, e ninguém consegue entender seu código. Ou um novo projeto está sendo planejado onde é necessário um paralelismo livre de deadlock que possa ser provado correto, em vez do habitual emaranhado de threads e mutexes. Aceito ambos os tipos de trabalho. Para sistemas legados, leio o código-fonte do Occam 2, reconstruo a rede de processos no papel, descrevo cada canal e as construções PAR e ALT, e então mantenho a operação em emuladores de transputador ou reescrevo a lógica em occam-pi, em C com uma biblioteca CSP, ou em canais Go, preservando a semântica de sincronização exata. Para novos sistemas, modelo tudo como processos sequenciais comunicando através de canais tipados, provando a ausência de deadlocks e livelocks, e entrego código limpo e bem comentado com um ambiente de teste. Uma entrega típica inclui um mapa de processos documentado, código-fonte funcional sob controle de versão, construção e simulação, bem como um breve relatório sobre o modelo de concorrência para que sua equipe possa mantê-lo facilmente. A correção é mais importante para mim do que truques inteligentes: canais permanecem não bufferizados sem boa razão, guardas ALT são verificadas, e o estado compartilhado que projeto para que simplesmente não exista. Seja para reviver um módulo de transputador teimoso ou construir uma simulação paralela do zero, acompanharei o trabalho desde a análise até a entrega testada. Descreva o que o sistema faz, em qual hardware ou tempo de execução ele opera, e quanto código antigo sobreviveu, e eu avaliarei honestamente o escopo do trabalho antes de começarmos.