Linotte (langage)

Linotte (langage)
Linotte
Apparu en 22 octobre 2005
Paradigme objet, prototype, 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é de type L4G. Sa particularité est sa syntaxe en français.

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[1].

Sommaire

Exemple d'Hello world

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

Le vocabulaire

Linotte a la particularité d'utiliser un vocabulaire non technique plutôt proche de termes utilisés, soit dans le monde cinématographique, soit dans la littérature.

Un programme devient un livre, une méthode, un paragraphe, une variable, un acteur et l'écran, une toile. On n'exécute pas un livre, mais on le lit.

Linotte n'introduit pas de nouveaux concepts mais les renomme tout simplement.

Le livre

Le livre est la structure mère d'un programme écrit en Linotte. Un livre est représenté par un fichier texte dont l'extension est ".liv".

Un livre commence toujours par la déclaration de son nom :

Livre : nom du livre

ou

Nom du livre :

Le paragraphe

Le paragraphe est une méthode définie dans un livre. Chaque paragraphe implémente un algorithme ou un traitement particulier qui peut être utilisé à partir de n'importe quels autres paragraphes du même livre.


Le premier paragraphe d'un livre est le premier lu lors du lancement de la lecture d'un livre.

Il est définit ainsi :

Paragraphe : ma méthode

ou

Ma méthode :

Les acteurs et les rôles

L'association d'une valeur à un nom s'effectue par l'instanciation dans la mémoire de l'ordinateur d'un acteur. Chaque acteur est un objet caractérisé par une valeur, un nom et un rôle (son type). L'acteur porte la sémantique d'une expression en langage Linotte.

L'acteur peut être comparé au mot variable que l'on retrouve dans les autres langages de programmation.

Les rôles disponibles en Linotte sont : nombre, texte, drapeau, casier, espèce.

Les actions

Un programme informatique est une suite d'opérations, un livre en langage Linotte, une suite d'actions. Une action est constituée d'un verbe et d'acteurs ; elle est destinée à lancer un traitement particulier :

demande acteur
affiche acteur
acteur vaut 5 * 5

Caractéristiques du langage

Programmation impérative

Historiquement implémentée 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 fonctions. Il est également possible d'utiliser des acteurs locaux au paragraphe (n'étant visibles à l'exécution que dans ce paragraphe).

Nombre Fibonacci : 
 
 entrée :  
  rôles :
   a :: nombre
  actions :                
   questionne a sur "Entrez un nombre :" 
   fibo(a) !               
   termine 
 
 fibo :    
  rôles :          
   * n :: nombre   
  actions :                
   si n est < 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 :: nombre
 Couleur :: texte
 Repas :: texte
 L'espèce animal contient Patte , Couleur, Repas
 
Premier :
 Rôles :
  chat :: 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 :: formulaire, titre vaut "La boite à texte", largeur vaut 400, hauteur vaut 260         
  boite :: boite,x vaut 30, y vaut 30, largeur vaut 200, hauteur vaut 100         
  b1 :: bouton, texte vaut "Afficher le texte dans le tableau", x vaut 30, y vaut 150         
  l1 :: é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 != 2, lis                    
    temporise                   
   ferme  
 
 Afficher valeur :
  Rôles :          
   *b :: 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 :: cercle, x vaut 311, y vaut 285, couleur vaut "rouge", plein vaut "oui", rayon vaut 50 
  boule :: rectangle,  largeur vaut 40, hauteur vaut 20, couleur vaut "noir", plein vaut "oui" 
  Salle :: toile, couleur vaut "blanc"  
 
 Décor :
  Actions :                
   Efface toile                 
   Projette 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 :: 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

À 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 :: nombre
  data :: texte
  l'espèce note contient id, data

 Chargement :
  Rôles : 
   valeurs :: 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

À 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 :: texte vide%>
<%§n :: nombre vide%>
<%§durée :: nombre vide%>
<html>
<head><title>Suite de Syracuse en ligne</title></head>
<body>
<h1>Suite de Syracuse :</h1>
<% 
   demande action 
   si action == "resultat" alors lis 
      demande n 
      tant que n > 1, lis
                durée vaut durée + 1
                si (n mod 2) == 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>

L'interprète "L'atelier Linotte"

Linotte est un langage interprété. Pour l'instant un seul interprète est disponible, mais il reste néanmoins libre. Il est développé en Java, son code source est distribué sous la licence GNU-GPL. Il existe également en version packagée pour les plateformes MS-Windows, Ubuntu, Fedora, Archlinux et la clé USB Framakey

Le webonotte

Le Webonotte est un serveur HTTP intégré à l'Atelier Linotte basé sur Jetty. Il produit des pages web dynamiques développées en langage Linotte.

Voir aussi

Notes et références

  1. Éducation nationale, [1].

Liens externes



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Linotte (langage) de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • Linotte Mélodieuse — Linotte mélodieuse …   Wikipédia en Français

  • Linotte melodieuse — Linotte mélodieuse Linotte mélodieuse …   Wikipédia en Français

  • Linotte (oiseau) — Pour les articles homonymes, voir Linotte. Nom vernaculaire ou nom normalisé ambigu : Le terme « Linotte » s applique en français à plusieurs taxons distincts …   Wikipédia en Français

  • Linotte mélodieuse — Linotte mélodieuse …   Wikipédia en Français

  • Langage de quatrième génération — L4G Un L4G ou langage de quatrième génération est un langage de programmation ayant un haut niveau d abstraction. Ils sont généralement utilisés pour les applications de gestion. Un L4G doit offrir : un langage déclaratif de manipulation de… …   Wikipédia en Français

  • Linotte — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Les linottes sont des passereaux (oiseaux) L expression tête de linotte y fait référence. Linotte est un langage de programmation. Catégorie : Homonymie …   Wikipédia en Français

  • Carduelis cannabina — Linotte mélodieuse Linotte mélodieuse …   Wikipédia en Français

  • MÉMOIRE — La mémoire est la propriété de conserver et de restituer des informations. Cette propriété n’est pas exclusivement propre à l’homme. Celui ci la partage avec les organismes vivants et certaines machines, de sorte qu’il est nécessaire de préciser… …   Encyclopédie Universelle

  • Hello World — Pour les articles homonymes, voir Hello (homonymie). hello world (traduit littéralement en français par « bonjour le monde ») sont les mots traditionnellement écrits par un programme informatique simple dont le but est de faire la… …   Wikipédia en Français

  • tête — [ tɛt ] n. f. • teste, test « crâne », opposé à l a. fr. chef « tête », 1050; lat. méd. testa « boîte crânienne », sens spécialisé de « coquille dure » → 1. test I ♦ 1 ♦ Partie, extrémité antérieure (et supérieure chez les animaux à station… …   Encyclopédie Universelle

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”