Über den Service
ÜbersetztIch entwickle Software auf niedriger Ebene in Cyclone – einem sicheren Dialekt von C, der die Geschwindigkeit und Vorhersehbarkeit des vertrauten C bewahrt, aber ganze Klassen von Fehlern beseitigt, die den meisten Sicherheitsvorfällen zugrunde liegen. Wenn Sie unsicheren C-Code haben, der Speicherlecks verursacht, auf hängende Zeiger dereferenziert oder außerhalb der Grenzen liest, portiere ich ihn nach Cyclone und lasse den Compiler beweisen, dass diese Mängel nicht vorhanden sind. Meine Arbeit konzentriert sich auf drei Dinge. Erstens, regionsbasierte Speicherverwaltung: Ich mappe die Lebensdauer von Objekten auf explizite Regionen, sodass Allokation und Deallokation zur Kompilierzeit überprüft werden, anstatt während der Ausführung auf Hoffnung zu setzen. Zweitens, Zeigersicherheit: Ich verwende fette Zeiger, begrenzte Arrays und Cyclones getaggte Union und Nicht-Null-Qualifikatoren, um zu verhindern, dass Out-of-Bounds- und Null-Dereferenzierungen überhaupt kompiliert werden. Drittens, sorgfältiges Portieren: Ich nehme ein bestehendes C-Modul, übersetze es idiomatisch und halte das Verhalten unverändert, während das Typsystem jetzt Sicherheit garantiert. Im Laufe der Jahre habe ich Parser, Netzwerk-Daemons und eingebettete Prozeduren portiert, immer mit Regressionstests, die die Byte-für-Byte-Äquivalenz bestätigen. Das Ergebnis umfasst Cyclone-Quellen, Build-Wrapper, eine Test-Suite und einen schriftlichen Bericht, der jede unsichere Konstruktion ihrem sicheren Ersatz zuordnet und die gewählte Regionsstruktur erklärt. Ich biete auch Forschungsunterstützung an: vergleichende Analyse von Cyclone im Vergleich zu modernen Alternativen und Prototypen, die zeigen, ob Ihr Code ein Kandidat für die Migration ist. Beschreiben Sie den Umfang und die Form Ihres C-Codes – und ich gebe Ihnen eine präzise Schätzung.