Compilateurs et langages sur mesure
Un langage généraliste ne colle jamais parfaitement à votre domaine. Nous étendons des compilateurs existants (GCC, LLVM, GnuCOBOL) ou concevons des langages dédiés (DSL) sur mesure, avec la sémantique formelle qui garantit leur comportement.
Performance ciblée
Un compilateur généraliste optimise pour le cas moyen. Le vôtre peut optimiser exactement pour votre domaine, vos structures de données, votre matériel cible.
Sûreté par construction
Un DSL restreint l'espace des programmes possibles : des classes entières de bugs deviennent tout simplement impossibles à écrire.
Indépendance vis-à-vis des éditeurs
Un dialecte propriétaire ou un outil legacy ne doit pas dicter votre feuille de route. Nous reprenons le contrôle de votre chaîne de compilation.
Flambda2 : le backend d'optimisation d'OCaml
Nous développons et maintenons Flambda2 avec Jane Street, l'un des plus gros utilisateurs d'OCaml au monde. Une démonstration concrète de notre capacité à faire évoluer un compilateur de production, à grande échelle.
Notre expertise en compilateurs et DSL
Extension de compilateurs existants
GCC, LLVM, GnuCOBOL : nous ajoutons des dialectes, des cibles et des optimisations à des compilateurs déjà en production.
Conception de DSL
Langages dédiés à votre domaine métier, avec une sémantique formelle garantissant leur comportement, comme pour Kopek.
Optimisations backend
Passes d'optimisation sur mesure, comme notre travail sur Flambda2 pour le compilateur OCaml.
Portage vers de nouvelles cibles
WebAssembly, architectures embarquées : nous portons votre langage là où vous en avez besoin.
Outillage développeur
LSP, coloration syntaxique, autocomplétion : un langage sur mesure mérite les mêmes outils qu'un langage mainstream.
Problèmes résolus par un compilateur sur mesure
Dialecte propriétaire non supporté
Votre code dépend d'une extension propriétaire d'un compilateur historique ? Nous l'implémentons dans l'outil open source équivalent, comme pour GnuCOBOL.
Performance insuffisante
Un langage généraliste ne tient pas la charge sur votre cas d'usage ? Nous concevons le langage ou le compilateur qui la tient.
Verrouillage propriétaire
Dépendre d'un compilateur ou d'un IDE propriétaire vous expose. Nous construisons des alternatives ouvertes et maintenables.
Langage métier non sûr
Vos règles métier sont encodées dans du code généraliste, source d'erreurs. Un DSL les rend explicites et vérifiables.