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 :
-
Mise en oeuvre du programme
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 :
- permettre d'écrire le texte des programmes
- sélectionner et ouvrir des textes existants
- lancer BMFCALC (touche F9 de l'éditeur)
- fournir une aide en ligne sur le langage BMF.
On met fin à l'exécution d'un programme BMF et on revient à l'éditeur en
appuyant sur la touche Echap.
-
Règles de base du langage BMF
Les mots du vocabulaire de BMF sont de 3 types :
- noms de fonctions prédéfinies
- noms de variables prédéfinies
- instructions de contrôle du déroulement du programme
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 :
- affectation d'un nom à une variable ou une fonction (SOIT)
- acquisition et restitution de données (LIRE,ECRIRE)
- branchements inconditionnels (MARQUE, RALLIER, RECOMMENCE)
- branchements conditionnels (SI,ALORS,SINON)
- déroulement (PAUSE,QUITTER)
- commentaires (REM)
-
Syntaxe
Un programme est une suite de lignes qui ont l'une des formes suivantes :
- Instruction [Param1 [Param2 [......]]]
- NomDeVariable = ExpressionAEvaluer
- NomDeVariable = "ExpressionAEvaluer"
- NomDeFonction(x) = Formule
- Si ExpressionBooléenne
- Alors Instruction [Param1 [Param2 [......]]]
- Sinon Instruction [Param1 [Param2 [......]]]
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.
-
Expressions mathématiques
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.
-
Liste des Instructions du langage
Instruction ECRIRE
Permet d'afficher les paramètres à l'écran.
Les paramètres, séparés par des espaces, sont de 2 types :
- chaînes de caractères s'ils sont entourés par des guillemets "
- expression mathématique, c'est alors le résultat qui est affiché.
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 :
- un message d'invite qui s'affichera avant d'effectuer l'entrée; ce message
est facultatif, il doit être entouré par des guillemets "
- un nom de variable (10 lettres maxi) ou un nom de fonction terminé par
(x) qui sera affecté aux données entrées.
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.
-
Intérêt de l'utilisation de BMF
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 :