Описание услуги
Я разрабатываю низкоуровневое программное обеспечение на языке Cyclone — безопасном диалекте C, который сохраняет скорость и предсказуемость привычного C, но убирает целые классы ошибок, стоящих за большинством инцидентов безопасности. Если у вас есть небезопасный код на C, который течёт по памяти, разыменовывает висячие указатели или выходит за границы буфера, я перенесу его на язык Cyclone и позволю компилятору доказать отсутствие этих дефектов. Моя работа строится вокруг трёх вещей. Первое — региональное управление памятью: я раскладываю время жизни объектов по явным регионам, так что выделение и освобождение проверяются на этапе компиляции, а не остаются надеждой во время выполнения. Второе — безопасность указателей: я применяю толстые указатели, ограниченные массивы, а также квалификаторы размеченных объединений и запрета null языка Cyclone, чтобы выход за границы и разыменование null просто не компилировались. Третье — аккуратный перенос: я беру существующий модуль на C, перевожу его идиома за идиомой и сохраняю поведение неизменным, тогда как система типов теперь гарантирует безопасность. За годы я перенёс парсеры, сетевые демоны и встраиваемые процедуры, всегда с регрессионными тестами, подтверждающими побайтовую эквивалентность. В результат входят исходники на языке Cyclone, сборочная обвязка, набор тестов и письменный отчёт, где каждая небезопасная конструкция сопоставлена своей безопасной заменой и объяснена выбранная структура регионов. Предлагаю и исследовательскую поддержку: сравнительный анализ языка Cyclone с современными альтернативами и прототипы, показывающие, подходит ли ваш код для миграции. Опишите объём и форму вашего кода на C — и я точно оценю задачу.