IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Langage de script fortement typé


Sujet :

Langages de programmation

  1. #1
    Invité
    Invité(e)
    Par défaut Langage de script fortement typé
    Bonjour,

    Étant sous Unix, le langage de script que j'utilise principalement est le shell bash. Cependant, il y a plein de choses que je n'aime pas dans ce langage :

    - pas de types, il n'y à que des chaines de caractères
    - modifications à tout va d'une instruction avant de l'exécuter (remplacement des étoiles par le contenu du répertoire, suppression des espaces multiples, suppression des backslashs ...)

    En bref, il est très difficile de faire un programme vraiment fiable avec ça.

    Donc j'aimerais trouver un langage de script avec ces caractéristiques :
    - typage fort, une variable ne doit pas pouvoir changer de type
    - typage statique, le type d'une variable doit être déclaré ou inféré (pas d'ambiguïtés)
    - pas de substitution par défaut dans le code. Pour illustrer cela, pensez au préprocesseur du C (#define) ou à la fonction eval() des langages de script : une instruction est créée à partir de bouts de texte qui viennent de n'importe où. Et en bash, c'est la cerise sur le gâteau : toutes les variables sont substituées par défaut par leur contenu sur chaque ligne de code, et même parfois plusieurs fois sur la même ligne.
    - des fonctions qui sont capables de renvoyer une valeur, car en bash, on doit exécuter la fonction dans un nouveau processus (un sous shell), la fonction doit écrire le résultat d'une fonction sur la sortie standard et enfin on doit récupérer la sortie standard du sous shell pour le mettre dans une variable. J'utilise ce mécanisme pour faire intéragir des programmes entre eux, mais j'aimerais aussi pouvoir utiliser des fonctions normales dans mon propre script.

    En définitive ce que j'aimerais c'est trouver un langage interprété qui se comporte comme un langage compilé (comme le C). Il n'a pas besoin d'être portable au delà des systèmes POSIX car c'est juste pour administrer / utiliser ma machine au quotidien. Comme c'est pour une utilisation quotidienne, les mécanismes de "répertoire courant" et de "pipe" (manipulation des entrées et sorties standards) seraient appréciables.

    Merci à ceux qui voudront bien partager leurs connaissances.

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    pas de substitution par défaut dans le code. Pour illustrer cela, pensez au préprocesseur du C (#define) ou à la fonction eval() des langages de script : une instruction est créée à partir de bouts de texte qui viennent de n'importe où.
    en gros, tu ne veux pas un vrai langage de script... mais juste une version interprété d'un langage statique pur et dur ?

    pourquoi ne pas utiliser ton langage préféré en mode interprété (ocaml ?)

  3. #3
    Invité
    Invité(e)
    Par défaut
    En fait, c'est le langage que j'apprenais au moment ou j'ai choisis mon avatar. Ça fait lontemps que je n'y ai pas touché. Mais après tout, pourquoi pas, c'est vrai que j'aime bien ce langage car il est rigoureux.

    Citation Envoyé par gorgonite
    en gros, tu ne veux pas un vrai langage de script... mais juste une version interprété d'un langage statique pur et dur ?
    Oui c'est exactement ça. Mais en plus il me faut les primitives de base d'un shell pour une utilisation quotidienne :
    - navigation dans le système de fichier de type cd ("change directory")
    - lancement de programmes (par exemple connexion en ssh à une machine distante)
    - le système de pipes | et de redirection des entrées et sortie standard des programmes lancés (en bash : < et >)

    Mais après tout, je pense que je peux adapter ocaml avec une petite bibliothèque qui me permettrais d'émuler tout ces comportements avec une syntaxe agréable. D'après ce que je me souviens, on peut créer des opérateurs infixes, donc je pourrais renommer les fonctions de bibliothèque. En plus d'après ce que je vois, il y a deux bibliothèques (Unix et UnixLabels) qui ont déjà plein de trucs tout prêts (mkdir, rmdir, getcwd, chroot, pipe, mkfifo, symlink, kill, ...).

    Merci pour cette très bonne suggestion. Je suis toujours à l'écoute d'autres suggestions.

  4. #4
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    regardes aussi cette lib :
    http://pauillac.inria.fr/cash/

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci ! Ça à l'air d'être exactement ce que je veux. Je vais tester ça.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 309
    Points : 933
    Points
    933

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Article] JavaScript est un langage fortement typé
    Par Bovino dans le forum Général JavaScript
    Réponses: 145
    Dernier message: 23/04/2020, 10h21
  2. Réponses: 4
    Dernier message: 01/06/2005, 17h01
  3. Définition langage de scripting
    Par Filippo dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/12/2004, 09h25
  4. [langage] perl script pour balancer un B-arbre
    Par RonMaster dans le forum Langage
    Réponses: 5
    Dernier message: 22/10/2004, 17h35
  5. [langage] cherche script pour formater une chaine
    Par MASSAKA dans le forum Langage
    Réponses: 7
    Dernier message: 12/11/2003, 12h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo