WikiNotte

LinotteSpec032

PagePrincipale :: ParametresUtilisateur :: Vous êtes ec2-54-145-183-34.compute-1.amazonaws.com

Carte d'identité

*Version spécification : 0.3.2
*Nom : Linotte
*Adresse Internet : http://langagelinotte.free.fr/
*Licence : GPL et http://www.gnu.org/copyleft/fdl.html

Brouillon, document en cours d'écriture.

Introduction

Soyons fou, écrivons un livre à une linotte !

Un "livre linotte" est une liste d'actions qui va être exécutée par des acteurs.
Il peut être composé d'un ou plusieurs paragraphes. Dans chaque paragraphe, on annonce en premier les acteurs qui vont intervenir ainsi que les rôles et sens qu'ils vont interpréter. Ensuite, on décrit une à une les actions que ces acteurs vont devoir exécuter par l'intermédiaire de phrases simples.
Ces phrases sont composées de la façon suivante :

un sujet qui est notre Linotte,
le verbe qui indique l'action à faire,
le COD, notre acteur.

Les différents rôles possibles pour un acteur sont : nombre, texte, casier et espèce.

Nouveautés par rapport à la 0.3.1

- Les souffleurs
- Le joker !
- L'écriture des acteurs anonymes nombres est simplifiée.
- Les acteurs collants/persistants/hébergés/à mémoire/ (les fichiers textes ou nombres)

Exemple simple
On a un acteur que l'on va nommer "ville" avec un rôle texte et un sens :"Paris".
Maintenant, cet acteur, on va lui demander de nous afficher ce qu'il représente.
Sur une scène de théâtre, l'acteur peut par l'intermédiaire de sa voix crier "Paris" ! Sur un écran d'ordinateur, le mode de communication est différent ! On va afficher sur l'écran les lettres du mot "Paris".

Voici donc l'exemple d'un livre Linotte qui va permettre d'écrire sur l'écran de notre ordinateur le nom d'une ville.

Livre : la capitale de la France
Paragraphe : afficher la ville
Les rôles :
Ville est un texte avec "Paris"
Les actions :
tu affiches la ville
tu arrêtes

Ce livre Linotte contient :
un seul paragraphe,
un acteur avec un rôle et un sens.
une liste d'actions

Pour comprendre l'utilité d'un paragraphe, il suffit de s'imaginer lire un livre dont on est le héros. Suivant l'action demandée, par exemple : "je veux manger" ou "je veux dormir", on ira dans des paragraphes différents.

Mais, qui est 'TU' ? 'TU' est notre linotte, c'est elle qui lit notre livre et manipule nos acteurs !

En résumé :
On a un livre linotte qui contient des paragraphes, des acteurs qui ont un rôle, un sens et on a des actions destinées à notre linotte pour manipuler nos acteurs.

Les rôles :


Les rôles sont attribués à des acteurs.

nombre
Le rôle nombre permet de stocker des nombres décimaux.
Attention : pour stocker un nombre décimal, il faut utiliser le point et non la virgule.( bogue à corriger !)
Exemple : pi est un nombre avec 3.14
texte
Le rôle texte permet de stocker des chaînes de caractères.
Exemples :
nom est un texte avec Ronald
nom est un texte avec "Des guillemets pour ne pas effacer les espaces"
casier
Le rôle casier est une liste d'acteur.
Il existe trois types de casier : le casier de nombre, le casier de texte, le casier d'espèce
Attention : l'utilisation du "ET" pour séparer les éléments n'existe plus dans cette version.
Exemple : langage est un casier de texte avec Java, C++, Linotte
espèce
Une espèce est un acteur que l'on constitue avec des caractéristiques. Par exemple, on peut créer l'espèce voiture et indiquer à notre linotte que les voitures sont constituées d'un âge et d'une marque.

Exemple :
[...]
Les espèces :
années est un nombre
marque est un texte
une voiture contient une couleur, une marque
[...]
Les rôles :
clio est une voiture, il a 5 années, la marque est renault
(la syntaxe :
il a [valeur] [acteur]
fonctionne seulement dans le cas d'une création d'un acteur avec un rôle espèce)
[...]
Les actions :
tu demandes la marque de la clio

Les articles :


"le ", "la ", "l' ", "les ", "du ", "un ", "une ", "mon " "ma " "ton " "ta " "tes "
Les articles servent à faciliter la lecture d'un livre car il est plus facile de lire :
tu affiches la table
que
tu affiches table

Attention : les articles ne doivent pas être utilisés dans la définition des rôles.

Les acteurs :


Si on définie les acteurs dans un paragraphe, il ne sera visible que dans celui-ci.
Pour qu'un acteur soit visible dans tout le livre , il faut le déclarer dans la section "des grands rôles" (cf. Structure d'un livre ).

Un acteur permet de stocker des valeurs. On attribue à un acteur un rôle. Il peut être nombre, texte, casier.
exemple :
ville est un texte avec Paris

Acteurs anonymes

Un acteur anonyme est un acteur qui est visible qu'au niveau d'un action car son existence est éphémère.

Il doit être encapsulé entre des guillemets si c'est un texte.

Exemple 1 : tu affiches "Bonjour !"
Exemple 2 : tu calcules le logarithme décimal de 100

Acteurs particuliers

Ces acteurs ont une valeur dynamique définie directement par Linotte. Pour les utiliser, il faut les encapsuler entre des apostrophes.

exemple : tu affiches la 'minute'

* joker :
voir le chapitre sur les boucles
* année :
Contient l'année en cours
* mois :
Contient le numéro du moins en cours
* jour :
Contient le numéro du jour en cours
* heure :
Contient l'heure en cours
* minute :
Contient la minute en cours
* seconde :
Contient la seconde en cours
* version
Contient la version de l'interpréteur Linotte
* auteur
Contient l'auteur de l'interpréteur Linotte
* spécification
Contient la version des spécifications de l'interpréteur Linotte


Un paragraphe particulier
* sortie
En l'utilisant avec le verbe ALLER : tu vas vers sortie (ou tu vas vers la sortie ) : on arrête la lecture du livre Linotte.

Structure d'un livre :


Livre : nom du livre

Les espèces :
(définition des espèces que l'on va pouvoir utiliser)
marque est un texte
couleur est un texte
une voiture contient une couleur, une marque

Les grands rôles :
( Ici, on va créer les acteurs qui seront visibles depuis tout le livre )
( même syntaxe que 'Les rôles' )

Paragraphe : nom du paragraphe
Les rôles :
( définition des variables visibles seulement dans la paragraphe )
agenda est un casier de texte
(Lecture de la valeur de la mémoire ou alors création de la variable vide si elle n'existe pas
Une variable est automatiquement créée. Lorsque le programme termine, elle n'est pas supprimée de la mémoire).
téléphone est un nombre vide
(En ajoutant le mot 'vide', on ne charge pas la valeur de la mémoire)
nom est un texte vide
taille est un nombre avec 6
clio est une voiture
(Acteur bla bla depuis un fichier)
modèle est un texte depuis "/les modèles.txt"

Les souffleurs :
Dés que (...)

les actions :
(sujet + verbe au présent + article + COD(acteur ou paragraphe)
tu affiches le téléphone
tu affiches la couleur de la voiture.
(permet d'afficher l'attribut couleur de l'acteur clio )



Les boucles et le joker :

Pour chaque [acteur] ,
Si notre acteur est un nombre, linotte va boucler autant de fois que la valeur de l'acteur. Par exemple, si la valeur de l'acteur est dix, Linotte boucle dix fois.
Si notre acteur est un texte, linotte va boucler pour autant de fois du nombre de lettres dans la valeur de l'acteur. Si la valeur est "demo", Linotte va boucler 4 fois.
Si notre acteur est un casier, linotte va boucler pour autant de fois que le nombre d'éléments dans le casier.
Si notre acteur est une espèce, notre linotte ne sait pas le faire...

Lors de l'utilisation d'une boule, l'acteur qui se nomme 'joker' est modifié :

Il peut être NOMBRE ou TEXTE, sa valeur est attribuée par la commande POUR CHAQUE.

Exemple 1 :
on a le rôle : ma boucle EST UN NOMBRE AVEC 10
on a l'action : POUR CHAQUE ma boucle , TU VAS VERS mon action

Le langage Linotte va affecter la valeur 0 puis aller vers mon action,
il va affecter la valeur 1 puis aller vers mon action,
etc, etc jusqu'à la valeur 9 incluse.
Dans le paragraphe "mon action", l'acteur 'joker' est automatiquement créé avec le rôle NOMBRE.

exemple 2 :
on a le rôle : mes villes EST UN CASIER DE TEXTE AVEC Paris ET Londres ET Rome
on a l'action : POUR CHAQUE ma ville , TU VAS VERS afficher ma ville

Le langage Linotte va affecter la valeur Paris à 'joker' puis aller vers afficher ma ville,
il va affecter la valeur Londres à 'joker' puis aller vers afficher ma ville,
etc, etc
Dans le paragraphe "afficher ma ville", l'acteur 'joker' est automatiquement créé avec le rôle TEXTE.

Exemple complet :

Livre : le verbe afficher

paragraphe le premier

les rôles :
valeur est un nombre avec 10

les actions :
tu affiches "on commence"
pour chaque valeur,tu affiches le 'joker'
tu termines


Les conditions possibles pour la commande SI:

si nom est vide alors
si nom est non vide alors
si nom est plus grand que nom alors
si nom est plus petit que nom alors
si nom est moins grand que nom alors
si nom est moins petit que nom alors
si nom est égal a nom2 alors
si nom contient nom2 alors


Les commentaires :


On peut mettre des lignes, une ligne ou une partie d’une ligne en commentaire. Un commentaire est non interprété par Linotte.
Exemple :

livre : logarithme simple
(Voici un exemple
très simple)
les grands rôles :
nombre est un nombre avec 100

paragraphe : p1

les actions :
tu calcules le logarithme décimal (naturel) de nombre
tu arrêtes

Les souffleurs :


Dans une pièce de théâtre, un souffleur intervient si un acteur a besoin d'aide.
C'est ce même concept qui existe dans Linotte.
On crée au début d'un paragraphe un souffleur et on lui indique a quel moment il doit "se réveiller" pour aider notre acteur.

Pour créer un souffleur, il faut ajouter ce bloque au début d'un paragraphe :

Les souffleurs :
Dés que mon nombre est égal à 0 , tu vas vers la suite

Ainsi, on peut imaginer un livre qui divise une valeur par mon nombre. Si mon nombre est à 0, notre Linotte va afficher un message d'erreur et arrêter l'exécution du livre mais grâce à l'ajout de notre souffleur va permettre d'éviter ce cas là !

Voici la syntaxe générale d'un souffleur :
Dés que [condition] , [action]

Exemple :

Livre : le souffleur
Paragraphe : boucle
Les rôles :
Boucle est un nombre avec 10
Nombre est un nombre avec 5
Les souffleurs :
Dés que la boucle est plus grand que le nombre , tu affiches "le souffleur fonctionne !"
Les actions :
Pour chaque boucle, tu affiches "On boucle !"
Tu affiches "ok !"
Tu termines


Les actions possible :


Il est impossible d'utiliser directement une espèce dans une action, il faut appeler un attribut : [nom attribut] de [nom acteur]
































Les fichiers textes ou nombres (fonctionnalité non implémentée !!!):

Pour lire ou modifier un fichier dans Linotte, il faut déclarer un acteur afin qu'il pointe vers ce fichier. La valeur de l'acteur n'est plus stockée dans la mémoire de l'ordinateur mais directement sur le disque dur.
Au moment de la déclaration de l'acteur, il faut ajouter "depuis" puis la localisation sur le disque du fichier.

Exemple : données est un texte depuis "/home/mes_données"

Si le fichier n'existe pas :
- A la lecture il va renvoyer une chaine vide.
- Si vous affectez une valeur, Linotte va créer un fichier avec la valeur sur le disque dur.

Exemple :

Livre : Mon message
Paragraphe : modification du message
Les acteurs :
Message est un texte depuis "c:\ronan\mon_message"
Les actions :
Tu affiches "Voici l'ancien message"
Tu affiches le message
Tu affiches "Quel est le nouveau message ?"
Tu demandes le message
Tu termines


Auteur du document


Ronan Mounès
2005,2006,2007

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]