À propos du service
TraduitJe suis un développeur Standard ML et j'écris du code qui doit être correct : compilateurs, interprètes, analyseurs statiques, langages spécifiques à un domaine et outils soutenant le raisonnement formel. Je travaille spécifiquement dans la famille ML — SML/NJ pour le développement interactif et le prototypage rapide, MLton pour l'optimisation de programme complet et des binaires natifs rapides, Poly/ML où un REPL réactif sur une grande base de code est nécessaire. Ce n'est pas Haskell, OCaml ou F#, mais Standard ML avec sa définition formelle précise, ses types algébriques, son appariement de motifs exhaustif et, surtout, un puissant système de modules de structures, signatures et foncteurs qui vous permet d'assembler de grands systèmes fidèles à leurs interfaces.
Mon travail quotidien consiste à transformer la grammaire ou la sémantique en code fonctionnel et maintenable. Je conçois la syntaxe abstraite, écris des analyseurs lexicaux et des parseurs, construis des passes de vérification de type et d'élaboration, abaisse tout à des représentations intermédiaires et génère ou interprète des résultats. Je m'efforce de rendre les états invalides non représentables : j'incorpore des invariants dans le système de types afin que le compilateur élimine toute une classe d'erreurs avant le premier test. Lorsque la correction doit être prouvée plutôt que simplement vérifiée, je relie le code SML avec des systèmes de preuve et des outils de spécification, écris des tests basés sur des propriétés et des interprètes de référence pour cerner le comportement avec précision.
Je suis à l'aise pour rejoindre un groupe de recherche, une équipe de langage ou une entreprise qui a hérité d'un système SML mature et a besoin de quelqu'un qui s'y connaît. Je lis les foncteurs des autres, démêle des signatures complexes, ajoute des fonctionnalités sans briser les frontières d'abstraction et documente le raisonnement afin que la personne suivante puisse le suivre. Dites-moi quel langage, invariant ou passe vous avez besoin, et je vous fournirai un Standard ML propre, typé et bien structuré sur lequel vous pouvez compter.
— Compilateurs et interprètes sur SML/NJ, MLton, Poly/ML
— Analyseurs lexicaux, parseurs, vérification de type et passes d'élaboration
— Conception de modules : structures, signatures et foncteurs
— Langages spécifiques à un domaine et interprètes embarqués
— Tests basés sur des propriétés et validation d'interprète de référence
— Raisonnement formel, spécifications et intégration de prouveurs
— Refactorisation et maintenance de code Standard ML hérité
Mon travail quotidien consiste à transformer la grammaire ou la sémantique en code fonctionnel et maintenable. Je conçois la syntaxe abstraite, écris des analyseurs lexicaux et des parseurs, construis des passes de vérification de type et d'élaboration, abaisse tout à des représentations intermédiaires et génère ou interprète des résultats. Je m'efforce de rendre les états invalides non représentables : j'incorpore des invariants dans le système de types afin que le compilateur élimine toute une classe d'erreurs avant le premier test. Lorsque la correction doit être prouvée plutôt que simplement vérifiée, je relie le code SML avec des systèmes de preuve et des outils de spécification, écris des tests basés sur des propriétés et des interprètes de référence pour cerner le comportement avec précision.
Je suis à l'aise pour rejoindre un groupe de recherche, une équipe de langage ou une entreprise qui a hérité d'un système SML mature et a besoin de quelqu'un qui s'y connaît. Je lis les foncteurs des autres, démêle des signatures complexes, ajoute des fonctionnalités sans briser les frontières d'abstraction et documente le raisonnement afin que la personne suivante puisse le suivre. Dites-moi quel langage, invariant ou passe vous avez besoin, et je vous fournirai un Standard ML propre, typé et bien structuré sur lequel vous pouvez compter.
— Compilateurs et interprètes sur SML/NJ, MLton, Poly/ML
— Analyseurs lexicaux, parseurs, vérification de type et passes d'élaboration
— Conception de modules : structures, signatures et foncteurs
— Langages spécifiques à un domaine et interprètes embarqués
— Tests basés sur des propriétés et validation d'interprète de référence
— Raisonnement formel, spécifications et intégration de prouveurs
— Refactorisation et maintenance de code Standard ML hérité