Table des Contenus

Langages Métiers / DSL

Langages Métiers / DSL


OCamlPro développe des langages métiers ou DSL: grâce à notre grande expertise des langages informatiques, des plus généralistes aux plus spécifiques, nous concevons des langages informatiques adaptés à chaque type de métiers.

Les avantages d'un langage métier sont nombreux : les langages génériques souvent peinent à exprimer les contraintes de votre métier, et les outils construits avec s'avèrent souvent inadaptés et n'augmentent que peu votre productivité. Au contraire, nos experts peuvent s'imprégner de votre métier, et puiser dans leur expertise des langages les concepts les plus adaptés à votre usage. Résultats: productivité supérieure, amélioration de la qualité de vos prestations, performance et réactivité accrue.

Contactez-nous pour en discuter !

Domain Specific Languages

L'utilisation de langages métiers peut rendre simples les tâches les plus complexes.

Une Introduction aux Langages Métiers

Depuis la nuit des temps, chaque corps de métier a construit un langage adapté à son besoin, autour d'un vocabulaire et d'expressions qui permettent aux experts de ce métier d'échanger entre eux de façon concise et précise.

Loin d'imiter ce processus, l'informatisation des métiers s'est pourtant contenté d'utiliser des langages informatiques génériques (COBOL, C/C++, Java, Javascript, etc.) pour proposer à ces mêmes corps de métier des logiciels, qui s'avèrent hélas souvent inadaptés, lourds, et peinent à exprimer les concepts et les opérations sur ces concepts dont ont besoin les professionels.

Pourtant, l'informatique regorge de langages, créés spécifiquement pour tels ou tels métiers, mais leur conception requièrt une expertise spécifique peu commune.

OCamlPro est l'une des rares entreprises à posséder une équipe d'experts des langages de progammation capables de créer ou d'adapter des langages aux métiers de l'industrie. 80% de nos ingénieurs sont ainsi titulaires d'un doctorat en informatique en théorie des langages de programmation.

En partant d'une connaissance aussi bien des langages génériques (Rust, OCaml, Java, Javascript, C/C++, etc.) que de langages spécifiques (Scade pour l'avionique, Solidity pour la blockchain, Coq pour la preuve formelle, etc.), nous avons déjà développés de nombreux langages métiers, que ce soit pour le monde du cinéma, pour l'administration publique ou encore pour les blockchains.

N'hésitez pas à nous contacter, afin de discuter ensemble de votre métier et de voir si en langage métier pourrait améliorer la productivité de vos équipes !


L'Exemple de Niagara pour la Remontée des Recettes du Cinéma

CNC

OCamlPro est Lauréat de l’appel à projets Transparence de la remontée de recettes du CNC.

En 2022, OCamlPro a postulé à l'appel à projets "Transparence de la remontée de recettes" du CNC, et a été sélectionné avec 7 autres entreprises.

La première originalité de notre approche est de proposer de concevoir un langage métier pour ce domaine, basé sur un système complexe de cascades, que les spécialistes du domaine peinent à exprimer dans les outils logiciels disponibles aujourd'hui.

La seconde originalité de notre approche est de fournir un socle open-source pour ce langage, qui permettra d'améliorer aussi bien l'interopérabilité des outils l'utilisant, de fédérer les acteurs de l'écosystème, et de garantir sa pérennité sur le long terme, les retombées des oeuvres s'étendant souvent sur plusieurs dizaine d'années.


L'Exemple de Mlang pour l'Impôt sur le Revenu

DGFIP

OCamlPro travaille avec la DGFIP à l'amélioration du langage Mlang.

En 2021, OCamlPro a été sélectionnée par la DGFIP pour participer à l'amélioration et à la mise en production du langage Mlang.

Initialement conçu dans les années 80 pour le Minitel, le précurseur de Mlang a permis pendant plusieurs décennies à la DGFIP de modifier chaque année le calcul complexe de l'impôt sur le revenu (IR) au regard de chaque nouvelle loi des finances, avec une équipe de moins de cinq personnes !

Néanmoins, le langage souffrait d'une dette technique importante, et le développement d'une nouvelle implémentation par Denis Mérigoux, un chercheur de l'Inria, a été vue par la DGFIP comme une opportunité idéale pour moderniser ce langage, avec le concours de l'équipe d'OCamlPro.


L'Exemple de Michelson pour les Smart Contracts sur Blockchain

Tezos

OCamlPro a développé la blockchain Tezos et son langage de smart contracts Michelson.

De 2014 à 2017, OCamlPro a développé le coeur de la blockchain Tezos. L'une des innovations de Tezos, à l'époque, est de proposer une plateforme moins vulnérable aux nombreuses attaques dont souffrent Ethereum et autres blockchains, qui se chiffrent en vols de centaines de millions de dollars.

Pour cela, OCamlPro conçoit plusieurs langages métiers, pour développer des smart contracts, qui devront être robustes à ces attaques:

  • À la base du socle, le langage Michelson permet d'écrire des contrats dans un langage peu expressif, mais formellement bien défini, ce qui ouvre la voie à la vérification formelle (mathématique) de ces contrats.

  • Au dessus, le langage Liquidity permet d'écrire les contrats dans un langage de haut niveau, facile à utiliser par les concepteurs de contrats, puis ces contrats sont traduits automatiquement vers Michelson, pour profiter des propriétés de ce dernier.


Modalités d'Intervention pour Concevoir votre Langage Métier

Tezos

OCamlPro conçoit et améliore des langages informatiques depuis plus de 10 ans.

N'hésitez pas à nous contacter pour discuter d'un projet de langage métier pour votre domaine !

Les étapes d'un tel projet sont généralement:

  1. Prise d'un rendez-vous pour discussions/consultation, soit en visio, soit en présentiel;

  2. Mission d'analyse du métier: nos ingénieurs interviewent vos équipes pour recueillir leurs besoins métier, analysent les données sur lesquelles elles travaillent, créent des cas d'usage des plus simples aux plus compliqués. Ces informations leur permettent de déterminer le type de langage métier qui peut convenir à ce domaine;

  3. Conception du langage et développement de l'outillage, qui doit permettre d'exécuter le langage efficacement, mais aussi de vérifier la correction des programmes écrits dans ce langage pour améliorer la productivité de ses utilisateurs;

  4. Aide au déploiement, intégration et support: nos ingénieurs participent à l'intégration de l'outillage dans votre environnement logiciel et fournissent du support aussi bien correctif qu'évolutif sur le langage et l'outillage créé;

Il ne vous reste plus qu'à prendre rendez-vous avec notre équipe: