Gibiane

Gibiane est un langage de programmation développé par le Commissariat à l’énergie atomique et aux énergies alternatives (CEA) au début des années 80 sur la base du langage Fortran 77. Ce langage est la base des codes de calcul neutronique déterministes APOLLO2 et CRONOS2. Il est également le code de base du logiciel de calcul par éléments finis Cast3M, également développé par le CEA.

Gibiane est un langage de haut niveau qui est interprété et orienté objet destiné au calcul éléments finis, agissant comme interface textuelle entre l'utilisateur et le code de calcul. Sa syntaxe a la particularité d'être exprimée en français. Soumis à diverses évolutions depuis sa création, Gibiane est aujourd'hui conforme à l'approche orientée objet de la normalisation UML.

L'objectif initial de la création de Gibiane est de supprimer la phase de programmation demandant à l'utilisateur un savoir-faire extérieur à son domaine d'activité pour qu'il se concentre sur la spécification du problème particulier à résoudre.

Syntaxe 
Les instructions élémentaires en Gibiane prennent la forme :
RESULTAT = OPERATEUR OPERANDES ;
Chaque instruction se termine par un point-virgule « ; ».

Il est possible d'ajouter des lignes de commentaire en ajoutant le caractère étoile « * » en début de ligne.

Les commandes sont lues et exécutées ligne à ligne. La fin du programme est indiqué par la commande :
FIN ;
Gibiane est insensible à la casse des caractères, l'interpréteur remplaçant les minuscules par des majuscules. Les guillemets encadrant des caractères marquent la définition d’une chaîne de caractères à prendre sans modification.

Priorité d'exécution 
L’exécution des commandes s'effectue de gauche à droite. Ainsi la commande :
X = 3 + 5 * 8 ;
retourne la valeur X = 64.

Il est possible de préciser l’ordre d’exécution des commandes à l’aide de parenthèses.
X = 3 + ( 5 * 8 ) ;
retourne alors la valeur X = 43.

Il peut y avoir autant de parenthèses emboitées que nécessaires, la règle étant d’exécuter d’abord les parenthèses en commençant à chaque fois
par la plus interne qui se trouve le plus à gauche.

Limitations 

 Le nom d’un objet ne peut pas faire plus de 24 caractères.
 L’instruction est lue et exécutée de gauche à droite sans notion de hiérarchie entre opérateurs.

Opérateurs de base

Opérateurs de type LOGIQUE 
VRAI
FAUX
ET
OU
NON (Négation d'une proposition logique)
EGA (Comparer si deux objets sont égaux)
NEG (Comparer si deux objets ne sont pas égaux)

Opérateurs logiques de comparaison 
L’opérateur « SI » permet, suivant la valeur d'un objet de type LOGIQUE d’exécuter une séquence une commandes ou une autre. Ainsi dans l'exemple ci dessous, lorsque « A » est égale à « B » la suite de commandes 1 s'exécute, sinon c'est la suite de commande 2 qui s'exécute.
SI ( A EGA B ) ;
suite de commandes 1
SINON;
suite de commandes 2
FINSI;

Boucles d'exécution répétitive 
L’opérateur « REPETER » permet de définir une séquence de commandes à exécuter autant de fois que nécessaire. Dans l'exemple ci-dessous la suite de commande est répétée NFOIS.
REPETER NOMBOUCL NFOIS;
suite de commandes
FIN NOMBOUCL ;
L'opérateur « SI » peut être utilisé à l'intérieur d'une boucle « REPETER ».

A l’intérieur d’une séquence REPETER l’opérateur ITERER permet de créer des exceptions dans la boucle d'exécution en sautant la partie finale de la séquence.
I = 0 ;
REPETER NOMBOUCL 4;
I = I + 1;
SI ( I EGA 2 ) ; ITERER NOMBOUCL ; FINSI;
MESSAGE ’ I VAUT ’ I ;
FIN NOMBOUCL ;
produit les résultats :
I VAUT 1
I VAUT 3
I VAUT 4

Principaux objets 
 ENTIER : Nombre entier
 FLOTTANT : Nombre réel
 LISTENTI : Liste de nombres entiers
 LISTREEL : Liste de nombres réels
 MOT : Mot
 LOGIQUE : Objet logique
 LISTMOTS : Liste de mots
 TABLE : Groupe d'objets indexés par objets
 EVOLUTION : Représentation d'une fonction numérique
 NUAGE : Ensemble d'éléments

Programmes utilisant Gibiane 
 CAST3M, logiciel de calcul par la méthode des éléments finis pour la mécanique des structures et des fluides notamment utilisé dans le secteur de l’énergie nucléaire
 APOLLO2, un code de calcul spectral multigroupe à deux dimensions résolvant l’équation du transport des neutrons
 CRONOS2, un code de calcul à 3 dimensions utilisé pour la conception et l’expertise des cœurs des réacteurs nucléaires
 FLICA4, dédié aux calculs d’écoulements diphasiques pour des régimes aussi bien stationnaires que transitoires, pour rendre compte du comportement thermohydraulique des cœurs de réacteurs nucléaires
 ISAS (Integrated safety analysis code system), un programme pour les analyses de séquences accidentelles

Notes et références

Voir aussi 
 CAST3M
 Commissariat à l'énergie atomique et aux énergies alternatives
 Institut national de recherche et de sécurité

Langage de programmation