Über den Service
ÜbersetztIch bin Ingenieur für paralleles Rechnen und habe viele Jahre mit der Occam-Sprache gearbeitet, die aus Hoares Theorie der kommunizierenden sequentiellen Prozesse hervorgegangen ist. Typischerweise erhalte ich eine von zwei Arten von Aufgaben. Entweder gibt es ein altes Transputersystem, das noch eine Installation, einen Scanner oder eine Testbank steuert, und niemand kann den Code mehr verstehen. Oder ein neues Projekt wird geplant, bei dem ein nachweislich korrektes, toterfreies Parallelismus benötigt wird, anstatt des üblichen Wirrwarrs von Threads und Mutexen. Ich übernehme beide Arten von Arbeiten. Für Legacy-Systeme lese ich den Occam 2 Quellcode, rekonstruiere das Prozessnetz auf Papier, beschreibe jeden Kanal sowie PAR- und ALT-Konstrukte und halte dann entweder den Betrieb auf Transputer-Emulatoren aufrecht oder schreibe die Logik in occam-pi, in C mit einer CSP-Bibliothek oder in Go-Kanälen um, wobei ich die exakte Synchronisationssemantik bewahre. Für neue Systeme modelliere ich alles als sequentielle Prozesse, die über typisierte Kanäle kommunizieren, beweisen die Abwesenheit von Deadlocks und Livelocks und liefere sauberen, gut kommentierten Code mit einer Testumgebung. Eine typische Lieferung umfasst eine dokumentierte Prozesskarte, funktionierenden Quellcode unter Versionskontrolle, Build und Simulation sowie einen kurzen Bericht über das Parallelitätsmodell, damit Ihr Team es leicht warten kann. Korrektheit ist mir wichtiger als clevere Tricks: Kanäle bleiben ohne guten Grund ungepuffert, ALT-Wächter werden überprüft, und den gemeinsamen Zustand entwerfe ich so, dass er einfach nicht existiert. Ob ich ein hartnäckiges Transputermodul wiederbeleben oder eine parallele Simulation von Grund auf neu erstellen muss, ich werde die Arbeit von der Analyse bis zur getesteten Lieferung durchziehen. Beschreiben Sie, was das System tut, auf welcher Hardware oder Laufzeit es läuft und wie viel alten Code es überlebt hat, und ich werde den Umfang der Arbeit ehrlich einschätzen, bevor wir beginnen.