Le langage BMF


BMF signifie Basic Minimal Français. Il s'agit d'un langage de programmation inspiré du Basic, utilisant une dizaine de mots clés français et permettant de mettre en oeuvre des algorithmes mathématiques simples. Le programme BMFCALC est un interpréteur du langage BMF.

Sommaire :


  1. Mise en oeuvre du programme
  2. La ligne de commande permettant de lancer le programme BMFCALC est :
    BMFCALC [NomFichier]
    où NomFichier représente le nom du fichier contenant le programme à exécuter
    ( si aucun nom de fichier n'est fourni, BMFCALC fonctionne comme une simple calculatrice). Ceci implique que le fichier soit écrit avant le lancement de BMFCALC. C'est pourquoi, comme Imageo ou Minilogo, BMFCALC est associé à l'éditeur de LILIMATH qui aura les fonctions suivantes : On met fin à l'exécution d'un programme BMF et on revient à l'éditeur en appuyant sur la touche Echap.

  3. Règles de base du langage BMF
  4. Les mots du vocabulaire de BMF sont de 3 types :

    Variables et fonctions

    Les variables représentent des nombres (en virgule flottante).
    Les fonctions sont des fonctions de la variable x.
    Nombres et fonctions ont un nom (de 10 lettres au maximum).
    Les noms prédéfinis sont :
    ABS, ENT, FRAC, CAR, RAC, DEG, RAD, HASARD, SIN, COS, TAN, ARCSIN, ARCCOS, ARCTAN, LN, EXP, LOG, SH, CH, TH, ARGSH, ARGCH et ARGTH pour les fonctions
    et
    PI, X, Y, Z, T pour les variables.
    Un programme peut définir de nouveaux noms de variables et de fonctions.

    Instructions de contrôle

    Le nombre d'instructions de contrôle est réduit au minimum, c'est en ce sens que BMF est un langage minimal. Bien sûr c'est une limitation par rapport aux langages évolués, mais c'est aussi un avantage du point de vue de l'apprentissage : un vocabulaire d'une douzaine de mots permet d'aller directement à l'essentiel.
    Les instructions sont de plusieurs types :

  5. Syntaxe
  6. Un programme est une suite de lignes qui ont l'une des formes suivantes : Les identificateurs utilisés comme noms de variables ou de fonctions doivent commencer par une lettre, ne contenir que des lettres, des chiffres et le symbole _ et ne pas avoir plus de 10 caractères.
    ExpressionAEvaluer est une expression mathématique pouvant faire intervenir les variables et fonctions prédéfinies ou définies par le programme. Si cette expression est entre guillemets, elle est conservée comme chaine de caractères, sinon elle est immédiatement évaluée.
    Par exemple :
    A=B+3 signifie que A prend la valeur actuelle de B+3 et ne dépend plus de B
    A="B+3" signifie que la valeur de A dépend de la valeur de B au moment de l'évaluation de A.
    ExpressionBooléenne est formée par 2 expressions mathématiques séparées par =,<,>,<=,>= ou <>. Elle est vraie ou fausse.

  7. Expressions mathématiques
  8. Elles utilisent les conventions habituelles en mathématiques et en informatique.
    La multiplication est représentée par * et peut être parfois omise.
    L'élévation à une puissance est représentée par ^ .
    Les nombres peuvent être écrit en écriture scientifique en utilisant la lettre E. Ainsi 2.5E3 signifie 2.5 multiplié par 10 puissance 3 soit 2500.
    On peut d'autre part utiliser les fonctions mathématiques prédéfinies suivantes :
    ABS(X) valeur absolue
    ENT(X) partie entière
    FRAC(X) partie fractionnaire
    CAR(X) carré
    RAC(X) racine carrée
    DEG(X) conversion en degrés
    RAD(X) conversion en radians
    HASARD(X) nombre au hasard entre 0 et X
    SIN(X) sinus
    COS(X) cosinus
    TAN(X) tangente
    ARCSIN(X) arc sinus
    ARCCOS(X) arc cosinus
    ARCTAN(X) arc tangente
    LN(X) logarithme népérien
    EXP(X) exponentielle
    LOG(X) logarithme décimal
    SH(X) sinus hyperbolique
    CH(X) cosinus hyperbolique
    TH(X) tangente hyperbolique
    ARGSH(X) argument sinus hyperbolique
    ARGCH(X) argument cosinus hyperbolique
    ARGTH(X) argument tangente hyperbolique

    d'autre part PI représente le nombre pi.

  9. Liste des Instructions du langage
  10. Instruction ECRIRE

    Permet d'afficher les paramètres à l'écran.
    Les paramètres, séparés par des espaces, sont de 2 types : Après une instruction ECRIRE, la position d'écriture passe au début de la ligne suivante.

    Exemples :
    ECRIRE "3+4" affichera 3+4
    ECRIRE 3+4 affichera 7

    Instruction LIRE

    Permet d'entrer des expressions mathématiques.
    LIRE peut être suivi de 2 paramètres : En cas d'affectation d'une chaîne vide le programme est interrompu.

    Exemples :
    LIRE "Entrer la valeur de X : " X permet d'attribuer une valeur à X
    LIRE "Fonction à étudier : f(x) = " f(x) permet de définir la fonction f(x)

    Instruction SOIT

    Permet d'effectuer des affectations, c'est à dire d'affecter une valeur à un nom de variable ou une définition de fonction à un nom de fonction.
    L'instruction SOIT peut ne pas être écrite de façon explicite, elle est l'instruction par défaut en cas d'absence d'instruction.
    L'instruction SOIT doit être suivie d'un nom de variable ou de fonction, puis du symbole = et enfin d'une expression définissant la variable ou la fonction.

    Exemples :
    SOIT A=5*7 ( ou simplement A=5*7 ) affecte la valeur 35 à la variable A
    SOIT g(x)=x²-3 ( ou simplement g(x)=x²-3 ) définit la fonction g(x) par x²-3

    Instruction RECOMMENCE

    Permet de reprendre le programme à la première instruction.
    Pas de paramètres.

    Instruction MARQUE

    Permet d'introduire des marques qui seront ensuite utilisées avec l'instruction RALLIER pour effectuer des branchements inconditionnels.
    Les marques n'ont pas d'effet direct sur le déroulement du programme.
    Un seul paramètre : un nom pour la marque.

    Exemples :
    MARQUE 1 utilisé avec RALLIER 1
    MARQUE Erreur utilisé avec RALLIER Erreur

    Instruction RALLIER

    Permet d'effectuer un branchement inconditionnel, c'est à dire de continuer l'exécution du programme à une ligne définie par une marque par l'intermédiaire de l'instruction MARQUE.
    Un seul paramètre : le nom de la marque.

    Exemples :
    RALLIER 1 pour reprendre à l'instruction suivant MARQUE 1
    RALLIER Fin pour reprendre à l'instruction suivant MARQUE Fin

    Instruction PAUSE

    Permet d'interrompre le déroulement du programme en attendant que l'utilisateur appuie sur une touche. Ce qui suit PAUSE est considéré comme un message d'invite; celui-ci sera effacé à la fin de la pause.

    Exemple :
    PAUSE Appuyer sur une touche ...

    Instruction QUITTER

    Permet de mettre fin au programme en disant Au revoir ... et en attendant que l'utilisateur appuie sur une touche. Pas de paramètres.

    Instruction SI

    Permet d'effectuer des branchements conditionnels.
    Doit être suivi d'une ligne commençant par ALORS.
    SI doit être suivi par l'expression d'une condition qui prend la forme de deux expressions mathématiques séparées par =,<,>,<=,>= ou <>. Si la condition est vérifiée, l'instruction qui suit ALORS dans la ligne suivante est exécutée, sinon on saute la ligne qui commence par ALORS.

    Exemple :
    SI x>=0
    ALORS ECRIRE "X est positif."

    Instruction ALORS

    Commence une ligne suivant une instruction SI.
    Derrière ALORS se trouve une instruction autre que SI.
    Cette instruction n'est exécutée que si la condition suivant SI est vraie.

    Exemple :
    SI x²>x+1
    ALORS ECRIRE "X est solution de l'inéquation x²>x+1."

    Instruction SINON

    Commence une ligne suivant les instructions SI et ALORS.
    Derrière SINON se trouve une instruction autre que SI.
    Cette instruction n'est exécutée que si la condition suivant SI est fausse.

    Exemple :
    SI x>=0
    ALORS ECRIRE "X est positif."
    SINON ECRIRE "X est négatif."

    Instruction REM

    Permet d'introduire un commentaire.
    Pas d'effet sur le déroulement du programme.
    Ce qui suit REM est le commentaire.

    Exemple :
    REM Utilisation de l'algorithme d'Euclide.

  11. Intérêt de l'utilisation de BMF
  12. BMF permet une initiation à la programmation. Le vocabulaire en français permet un accès rapide à la compréhension des algorithmes que l'on retrouve dans tous les langages. Certes rudimentaire, il permet néanmoins à un élève de créer rapidement une bibliothèque de programmes pour résoudre des problèmes rencontrés en mathématiques, ou dans d'autres disciplines. La programmation de la résolution d'un problème est aussi un moyen pour l'élève de réinvestir et tester ses connaissances, avec un résultat et une sanction immédiats.

Voir aussi :