Langage de programmation Linotte 2.6, programmons avec des blocs

Posté par . Édité par Benoît Sibaud et tankey. Modéré par Xavier Claude. Licence CC by-sa
17
8
oct.
2015
Éducation

Après 10 ans d'existence, le langage Linotte revient avec une nouvelle version : Linotte 2.6. Pour rappel, Linotte est un langage de programmation et un atelier de programmation entièrement en français.

Cette dernière version apporte un nouveau module facilitant la réalisation d'algorithme ou la découverte de la programmation. Ce nouveau module permet de programmer visuellement en utilisant des blocs (ou timbres) que l'on glisse sur une planche les uns à la suite des autres.

Logo

Pas de révolution dans le concept, car d'autres langages de programmation sont allés plus loin comme par exemple Scratch.

Ce nouveau module doit surtout être utilisé pour comprendre le code qui a été produit et non pour programmer.

L'avantage d'utiliser le langage Linotte est d'utiliser un langage simple mais proche des autres langages plus complexes (Java, Python par exemple).

Avec ce module visuel, on peut écrire des conditions, des boucles, mais on peut également créer des fonctions et ainsi mettre en place des algorithmes récursifs.

Par exemple, le programme visuel suivant (suite de Syracuse du nombre n) :

Suite de Syracuse

devient textuellement :

principale :
    durée est un nombre
    e est un nombre
    début
        demande e
        tant que e != 1 lis
            durée vaut durée + 1
            si (e mod 2) = 0 lis
                e vaut e / 2
            ferme
            sinon lis
                e vaut e * 3 + 1
            ferme
        ferme
        affiche durée

Et enfin, le programme visuel suivant (affiche un nombre de la suite Fibonacci) :

suite de Fibonacci

  • devient après avoir été traduit en langage Linotte :
    principale :
    // Nombre de Fibonacci
        n est un nombre
        début
            affiche "Quelle est la valeur de n ?"
            demande n
            affiche fibo(n)
    fibo : n
        début
            si n<2 lis
                retourne n
            ferme
            sinon lis
                retourne fibo(n-1) + fibo(n-2)
            ferme

L'Atelier de programmation est depuis la version 2.4 multilangages : des langages simplifiés destinés à l'apprentissage de l'algorithmique ont été ajoutés, à savoir Lyre et Linnet.

  • Le dernier code devient en langage Lyre :
   // Nombre de Fibonacci
   n := 0
   affiche "Quelle est la valeur de n ?"
   demande n
   affiche fibo(n)

   fibo : n
     si n<2 {
       retourne n
     }
     sinon {
       retourne fibo(n-1) + fibo(n-2)
     }
  • Et en langage Linnet :
   // Nombre de Fibonacci
   n := 0
   print "Quelle est la valeur de n ?"
   input n
   print fibo(n)

   fibo : n
    if n<2 {
      return n
    }
    else {
      return fibo(n-1) + fibo(n-2)
    }

Le module graphique est compatible avec tous ces langages.

Linotte est sous licence GPL V3. On peut dire que Linotte est RERware car aujourd'hui il est développé principalement dans le RER E le matin et le soir… En espérant que la SNCF ne viendra pas un jour me demander des droits sur le code source !

Bonne programmation et n'hésitez pas à faire la promotion du langage Linotte autour de vous et si vous avez la possibilité dans le monde scolaire.

  • # Couleurs et contrastes

    Posté par (page perso) . Évalué à 9.

    Bonjour,

    D’abord bravo pour tout ce qui a déjà été fait, c’est très impressionnant. Au niveau du visuel, il serait bon que le projet trouve un graphiste. À minima, il faudrait veiller à un contraste suffisant entre les couleurs de fond et ceux de la police, ne serait-ce que d’un point de vue accessibilité. Il existe déjà des palettes murement réfléchies, comme tango ou solarized pour ne citer que des exemples qui restent encore fort encré dans la culture hacker.

    Encore bravo, et tout mes encouragements pour les suites du projet.

    • [^] # Re: Couleurs et contrastes

      Posté par . Évalué à 2.

      Merci pour tes encouragements et aussi tes conseils sur les couleurs.
      J'ai pourtant passé des heures à regarder les autres logiciels et comparer les couleurs et polices.
      Je vais parcourir tes liens et m'en inspirer.

  • # "valoir"? "lire"?

    Posté par . Évalué à 6.

    Hello,

    Effectivement, le boulot est sympa pour mettre des gens (enfants, parents, etc.) à la programmation.

    Ça me rappelle plus "LabVIEW" que "Scratch", qui très utilisé par les professionnels électroniciens débutant en info.

    Je plussoie l'histoire des couleurs, mais surtout, j'ai du mal avec certains termes choisis :

    • "lis" : pourquoi le verbe "lire", plutôt que "faire", alors qu'il s'agit bien d'effectuer des actions, comme le mot "do" en anglais l'exprime ?

    • "valoir" : pourquoi tomber dans le piège de l'ambigüité affectation/test. Il s'agit pas ici de /tester/ si "xxx "vaut"/"valoir" yyy", mais bien d'"affecter yyy à xxx" (encore une fois, il s'agit d'une action pas d'un truc passif)

    Il serait donc pas mal d'homogénéiser le vocabulaire, en utilisant :
    1. des termes qui représentent bien ce qui se passe
    2. par exemple, des infinitif quand il y a une action et autre chose quand c'est un test.

    Mes 2 cents!

    • [^] # Re: "valoir"? "lire"?

      Posté par . Évalué à 1.

      Bonjour,
      Cela peut paraître étrange mais le choix d'un mot se fait souvent (pas toujours) par le nombre de lettres qu'il contient. Eh oui, on m'a fait souvent fait le reproche (à juste titre) que le langage est trop verbeux.
      Ainsi, entre plusieurs mots correspondant au sens souhaité, je choisis le plus court !

      • [^] # Re: "valoir"? "lire"?

        Posté par . Évalué à 3.

        J'ai également tiqué comme gyom en regardant les diagrammes.

        "Ainsi, entre plusieurs mots correspondant au sens souhaité…"

        Sauf que ces mots n'expriment pas du tout la même chose. Ils ne sont pas équivalent.

        "… je choisis le plus court !"

        C'est pas comme s'il y avait un problème de place.

        Alors pour des outils pédagogiques, la priorité n'est elle pas faire passer des concepts clairs ?

        On en est à 4 cents :-)

        • [^] # Re: "valoir"? "lire"?

          Posté par . Évalué à 1.

          "… je choisis le plus court !"

          En disant cela, je savais que je m'engageais sur une pente glissante et dangereuse…
          Maintenant, je comprends le problème sémantique. Ce n'est pas la première fois qu'il est remonté.

          Je pensais au verbe "prendre" :
          pi vaut 3.14
          le code devient :
          pi prend 3.14

          Un caractère de plus :) je vais y réfléchir.

      • [^] # Re: "valoir"? "lire"?

        Posté par (page perso) . Évalué à 2.

        Ainsi, entre plusieurs mots correspondant au sens souhaité, je choisis le plus court !

        Ah bon? C'est bizarre comme critère… Dans ce cas, retourne pourrait être avantageusement (c'est plus court) par "dis" et je trouve ce ferme bien abstrait, puisque je ne vois pas de mot-clé dans le champ sémantique de "ouvrir" (aggravé par le fait qu'il y a un début - wow, si j'oublie l’accent ça plante, je suppose :p - mais pas de fin)..?

        Proposition (pseudocode non testé :p)

        connerie est une constante
        parole est une chaine
        
        bon
            si parole approche connerie beaucoup dis
                parole + " ne marche pas, idée suivante"
            point
        

        J'hésite entre point et na pour la fermeture du si :)

    • [^] # Re: "valoir"? "lire"?

      Posté par (page perso) . Évalué à 2.

      Ça me rappelle plus "LabVIEW" que "Scratch", qui très utilisé par les professionnels électroniciens débutant en info.

      Chez nous, même après 15 ans dessus, ils programment toujours en boiboite… Un truc pourris pour faire du collaboratif et du versionning. Il y a une autre solution avec LabVIEW permettant de basculer sur du vrai code ligne à ligne ?

  • # merci

    Posté par . Évalué à 1.

    Purée depuis le temps, que je dois m'y mettre à ce language.
    Merci en tout cas pour ton dévouement.

    • [^] # Re: merci

      Posté par . Évalué à 1.

      Merci beaucoup ! j'attends tes premières réalisations sur le forum :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.