Linotte (langage) - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Linotte
Apparu en 22 octobre 2005
Paradigme Programmation orientée objet, structurée et impérative
Système d'exploitation Multiplateforme
Licence GNU GPL
Site Web langagelinotte.free.fr


Linotte est un langage de programmation interprété un peu particulier de type L4G, créé par Ronan Mounès en 2005. Sa particularité est sa syntaxe en français ; il est l'un des rares langages dans ce cas.

Ce langage est libre et a été créé dans le but de permettre aux enfants et aux personnes n'ayant pas une connaissance approfondie de l’informatique d’apprendre la programmation facilement. Comme sa devise l'indique : « Tu sais lire un livre, alors tu peux écrire un programme informatique », ce langage se veut très simple ; une variante de la devise dit aussi « tu sais écrire une phrase, donc tu sais écrire un programme ». Il est adapté à l'apprentissage de l'algorithmique au lycée.

Exemple d'Hello world

      HelloWorld:              affichage:       Actions:         "Hello World !" !      

Caractéristiques du langage

Programmation impérative

Historiquement implémenté dans le langage, elle offre un accès rapide à la compréhension des bases de la programmation.

      Programmation spaghetti:              Premier:        Actions:         Affiche "Je suis là"         Va vers deuxième              Deuxième:        Actions:         Affiche "Je suis ici maintenant !"         Termine      

Programmation fonctionnelle

Linotte offre des mécanismes permettant d'implémenter des algorithmes répondant au paradigme fonctionnel : l'utilisation de paramètres et de fonction. Il est également possible d'utiliser des acteurs locaux au paragraphe (visible à l'exécution que dans un paragraphe).

      Nombre Fibonacci:               entrée: 	        rôles:         a est un nombre        actions: 		         questionne a sur "Entrez un nombre:"          fibo(a) ! 		         termine               fibo: 	        rôles: 		         * n est un nombre 	        actions: 		         si n est plus petit que 2 alors retourne n 		         retourne fibo(n-1) + fibo(n-2)       

Programmation objet

Les espèces sont un type d'acteur complexe caractérisé par des attributs. Elles permettent au développeur de créer ses propres objets :

      Les espèces:             Espèces:        Patte est un nombre       Couleur est un texte       Repas est un texte       L'espèce animal contient une Patte , une Couleur, un Repas             Premier:       Rôles:        chat est un animal, Patte est 4, Couleur est "noir", Repas est "souris"       Actions:        affiche repas de chat        termine      

Programmation évènementielle

Les événements sont attachés à des composants graphiques lors de la construction d'IHM :

      Boite à texte:              Grands rôles:                 form est un formulaire, titre vaut "La boite à texte", largeur vaut 400, hauteur vaut 260                 boite est une boite,x vaut 30, y vaut 30, largeur vaut 200, hauteur vaut 100                 b1 est un bouton, texte vaut "Afficher le texte dans le tableau", x vaut 30, y vaut 150                 l1 est une étiquette, texte vaut "", x vaut 30, y vaut 200         		               Début:        Actions:                  Ajoute boite & b1 & l1 dans form		                  Fais réagir b1 à "clic souris" pour afficher valeur 		         tant que 1 est différent de 2, lis 			         temporise	 		         ferme                Afficher valeur:        Rôles: 		         *b est une bouton 	        Actions: 		         Affiche texte de boite 		         Reviens      

Traitement parallèle

      Traitements en parallèle:              Démonstration:        Actions: 		         appelle traitement 		         affiche "On attend 3 secondes" 		         attends 3 secondes 		         affiche "Fin des 3 secondes" 		         termine                traitement:        Actions: 		         attends 1 seconde 		         affiche "....moi, je ne veux pas attendre !" 		         reviens        

Manipulation d'objets graphiques

      Collision:              Grands rôles:          centre est un cercle, x vaut 311, y vaut 285, couleur vaut "rouge", plein vaut "oui", rayon vaut 50         boule est un rectangle,  largeur vaut 40, hauteur vaut 20, couleur vaut "noir", plein vaut "oui"         Salle est une toile, couleur vaut "blanc"                Décor:        Actions: 		         Efface la toile 		         Projette la salle & centre & boule 		         Va vers action                action:        Actions: 		         temporise 		         déplace boule vers sourisx et sourisy 		         si boule est en collision avec centre alors couleur de centre vaut "jaune" 		         sinon, couleur de centre vaut "rouge" 		         va vers action       

Programmation réseau

      Client:               Connexion:        Rôles:          connexion est un pont, adresse vaut "localhost"         Actions: 	         Ouvre connexion avec "" depuis "" 	         Décharge message depuis connexion 	         Affiche "Message du serveur" + message          Ferme connexion 	         Termine       

Connexion à une base de données

A partir de la version 1.2.2 alpha, Linotte est capable de se connecter sur une base de données du moment qu'un pilote JDBC est disponible. Linotte construit ses requêtes SQL à partir des noms des acteurs. Le nom d'une espèce représente le nom d'une table, les attributs de cette même espèce, les colonnes de la table.

      Bloc-notes:               Espèces:        id est un nombre        data est un texte        l'espèce note contient id, data             Chargement:        Rôles:          valeurs est un casier de note depuis "source:masourcesql"          ("Linotte va créer la requête SQL: SELECT ID, DATA FROM NOTE")        Actions: 	         Pour chaque valeurs, lis 	          Affiche "La note numéro " + id@joker + " vaut " + data@joker         Ferme         Termine       

Programmation de pages Web dynamiques

A partir de la version 1.2.2 alpha, le concept de weblivre est introduit. Il mélange dans un même fichier, du langage HTML et du langage Linotte. Ce dernier est intégré directement dans le HTML par un balisage précis à l'instar des langages PHP ou JAVA (JSP).

      <%§action est un texte vide%>      <%§n est un nombre vide%>      <%§durée est un nombre vide%>      <html>      <head><title>Suite de Syracuse en ligne</title></head>      <body>      <h1>Suite de Syracuse:</h1>      <%          demande action          si action est égal à "resultat" alors lis             demande n             tant que n est plus grand que 1, lis      		durée vaut durée + 1      		si (n mod 2) est égal à 0 alors n vaut n / 2      		sinon, n vaut n * 3 + 1      	  ferme		      %>          La durée du vol est égale à <%affiche durée%>          <form action="syracuse.wliv" method="post">      	  <input type="submit" value="Recommencer" />          </form>	      <%          ferme          sinon, lis       %>           <form action="syracuse.wliv" method="post">      	  <input type="hidden" name="action" value="resultat" />      	  Nombre de départ: <input type="texte" name="n"  />      	  <input type="submit" value="Calculer la durée" />          </form>      <%          ferme       %>      </body>      </html>      
Page générée en 0.099 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise