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ée 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».
À 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
↑Christian Queinnec, Le langage de commande GIBIANE: Description informelle, Révision 2.2, Université Paris 6, LIP6, (lire en ligne)
12Christine Fedon-Magnaud, The Saphyr system: An overview (PHYSOR 2002, Seoul, Korea), (lire en ligne)
↑Ramón Antonio Otón Martínez, Multidimensional modelling of multiphase reactive mixture (Doctoral Thesis): Caracterización de la movilización y combustión de mezclas bifásicas de gases y partículas en procesos transitorios, Universidad Polytécnica de Cartagena, , 303p. (lire en ligne), p.238
1234Thierry Charras, Utiliser Cast3m: Langage Gibiane, CEA, (lire en ligne)
↑Rigobert Tchienkoua, Programmer en Gibiane - Tome 1: Structures de données & Algorithmes associés, Éditions GrassFields Paris
↑M. Dumas et J.B. Thomas, Superviseur de codes modulaires: Génération automatique du langage de commande, Symposium GRECO-GIS on structures calculation, (lire en ligne)
↑Emmanuelle Le Fichoux (ENSTA), Utiliser Cast3m: Présentation et utilisation de Cast3m, CEA,
↑S. Loubière, R. Sanchez, M. Coste, Alain Hébert, Z. Stankovski, C. Van Der Gucht et I. Zmijarevic, APOLLO2 Twelve Years Later: paper presented at the international conference on mathematics and computation, reactor physics and environmental analysis in nuclear applications, Madrid, Spain,
↑P. Raymond, G. Allaire, G. Boudsocq, D. Caruge, T. de Gramont et I. Toumi, FLICA-4 (Version 1) A computer code for three dimensional thermal analysis of nuclear reactor cores, International conference on mathematics and computations, reactor physics and environmental analyses (Portland Oregon, USA), (lire en ligne)
↑M.T. Porfiri et G. Cambi, Integrated safety analysis code system (ISAS) application for accident sequence analyses, Elsevier, (lire en ligne)