À propos du service
TraduitJ'écris du code de systèmes de production en ATS (Système de Types Appliqué) — un langage qui vous permet de combiner la vitesse du matériel nu avec une correction vérifiée mathématiquement. Si vous avez besoin d'un pilote, d'une routine embarquée, d'un analyseur ou d'un chemin critique qui n'a pas le droit de fuir de la mémoire ou de lire au-delà d'un tampon, je coderai ces garanties directement dans le système de types. En ATS, le compilateur m'oblige à remplir les obligations de preuve avant même que le code ne compile, donc toute une classe d'erreurs qui se glissent dans les versions C sans être remarquées ne compile tout simplement pas ici. Le travail commence avec vos invariants. Nous convenons de ce qui doit être respecté : pas de doubles libérations, pas de débordements de tampon, propriété linéaire de chaque ressource, terminaison garantie des routines récursives. Ensuite, j'exprime cela en types dépendants et en preuves linéaires, j'implémente du code contre eux, et je livre un résultat qui porte son propre certificat de sécurité. Puisqu'ATS compile en C propre, le résultat s'intègre dans votre construction sans problème et s'exécute sans surcharge de collecte des ordures. La livraison comprend les sources ATS, le C généré, le script de construction, un petit banc d'essai avec des annotations de preuve, et une note explicative pour chaque invariant prouvé. Au fil des années de travail de bas niveau, j'ai construit des structures sans verrou et des liaisons ATS sûres vers des bibliothèques C héritées. Raisonnement sur les pointeurs, les tailles et les durées de vie au niveau de la logique formelle est routinier pour moi. Décrivez une contrainte qui vous préoccupe, et je la transformerai en un théorème que le compilateur vérifie à chaque reconstruction.