Partage
  • Partager sur Facebook
  • Partager sur Twitter

langage de script

    17 août 2018 à 18:05:40

    Bonjour,

    Je crée un programme en C++ qui pilote différent matériel (moteur, chauffage...), l'enchaînement des actions est défini par un opérateur (pas programmeur) qui doit faire un script pour définir l'enchaînement des étapes. 

    Je me demande donc si je dois créer mon propre langage que mon programme saura interpréter, ou s’il existe un langage qui serait plus approprié: Python, TCl...

       Merci de votre aide

    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2018 à 11:41:18

      Sauf contrainte vraiment spécifique comme par exemple la cohérence cad vérifier que le matériel à piloter peut effectivement être piloté par le contrôleur qui va exécuter le script, il sera beaucoup plus simple de passer par un langage de script qui possède déjà une interface avec C++ (un binding). Tu auras déjà l'interpréteur ainsi que les mécanismes d'expositions d'objets programme <=> script, donc beaucoup moins de boulot à faire.
      • Partager sur Facebook
      • Partager sur Twitter
      Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
        24 août 2018 à 18:04:59

        Ok, merci pour ta réponse !

        Maintenant je réfléchi à savoir quel langage de script est le plus intéressant pour mon application sachant que j'ai besoin de vérifier les erreurs de syntaxe avant de lancer mon système : soit en précompilant le script soit en le simulant.

        • Partager sur Facebook
        • Partager sur Twitter
          24 août 2018 à 21:46:46

          Tous les interpréteurs remontent une erreur s'il ne peuvent pas exécuter un script à cause de la syntaxe. Par contre, c'est souvent une vérification au moment de l'exécution. Pour du scripting non supervisé, cad le script qui va s'exécuter le dimanche entre 2 et 3 h du matin, on le teste généralement sur un émulateur, c'est à dire un programme qui se comporte exactement comme le tien, mais qui ne pilote rien, ce qui va permettre à celui qui écrit le script de le tester tranquillement. Après si on est joueur, on peut monter un émulateur capable de jouer des scénarios plus ou moins sophistiqués qui permettent de tester le programme et les scripts dans des cas d'usages assez concret sans avoir le matériel à disposition. Le fait de disposer d'un tel émulateur, est comment dire, un avantage scandaleusement efficace ^^ Le truc , c'est que si tu as bien conçu ton projet, l'émulateur est une version bricolée de ton programme (90% voir plus de code commun entre l"émulateur et le programme de production). 

          Le principal problème avec un langage de script c'est le public auquel il est destiné, cad les gens qui vont écrire les scripts. Ecrire un bout de programme dans un langage de script n'est pas à la porté de tout le monde. On a fait un truc comme ça, le public visé, c'était nos propres techniciens d'installation/maintenance, la syntaxe ressemble à celle de javascript, au début on a laissé ouvert, puis on a sorti une version qui n'acceptait plus les boucles, et qui contrôlait sévèrement les récursions parce qu'on s'est rendu compte qu'ils étaient complètement à la rue sur les boucles et les récursions. Pour finir on leur a fait un éditeur de logigramme entièrement graphique, et là c'est nickel, ils décrivent le comportement qu'ils veulent avec un logigramme, le logiciel, convertit le logigramme en un script qui est passé au programme qui pilote le hard. Après quelques heures à manipuler, ils arrivent à construire des scripts très complexes. La plupart d'entre eux ignorent même que le logigramme qu'ils ont produit est finalement transformé en un script écrit dans un langage proche de javascript qui est envoyé aux unités de traitement.

          -
          Edité par int21h 24 août 2018 à 22:17:53

          • Partager sur Facebook
          • Partager sur Twitter
          Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

          langage de script

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown