BASIC du VPC-32V

Langage BASIC du VPC-32V

Licence

Ce document fait partie du projet VPC-32V et est fourni sous licence CC-NC-SA-BY V3.0

auteur: Jacques Deschênes
révision 1.0
Copyright: 2013-2018, Jacques Deschênes

Présentation

L'ordinateur VPC-32V possède un interpréteur BASIC inspiré de QBASIC mais n'est pas indentique. Le code source BASIC est d'abord compilé en bytecode pour être exécuté sur une machine virtuelle à piles. Ce document décris le langage BASIC et son utilisation.

Caractéristques du langage.

Référence du vpcBASIC

vpcBASIC est insensible à casse tous les mots réservés et indentificateurs de variables sont convertis en majuscules par le compilateur.

conventions typographiques

les éléments de syntaxe indiqués entre '[' et ']' sont des éléments optionnels. si le caractère '+' suit le caractère ']' l'élément peut-être répété un nombre abritraire de fois.

le caractère '|' sépare les alternatives

Dans les exemples le > au début d'une ligne représente l'invite de la ligne de commande.

expr signifie une expression arithmétique.
str_expr signifie une expression chaîne. Le signe + peut-être utilisé pour concaténer des chaînes.
expr_list liste d'expression numérique. Les éléments sont séparés par la virgule ','.
cond signifie une condition logique résultant de la comparaison de 2 expr.
log_expr signifie un ensemble de cond reliées par les opérateurs logiques AND et OR.
arg_list est la liste des arguments passés à une sous-routine ou fonction. La virgule ',' est le séparateur de liste.
val_list est une liste de valeur numérique ou chaîne servant à initialiser un tableau lors de sa déclaration.
var représente un nom de variable.
num représente un nombre entier.
float représente un nombre en virgule flottante
const représente une constante numérique.
block groupe d'instructions BASIC.

Opérateurs par ordre de précédence

Cette table montre les opérateurs par ordre de précédence. À précédence égale les opérateurs sont traités de gauche à droite.

opérateurdescription
()Parenthèses de groupement d'expression. Le groupement entre parenthèses est réservé aux expression arithmétiques. Les cond et les log_expr ne peuvent pas être regroupées.
func()Les fonctions ont la plus haute priorité dans les expression arithmétiques.
* / %multiplication, division entière, modulo
+ -addition soustraction
= >= < <= <> >< les opérateurs de comparaison utilisés dans les cond
NOT négation logique appliquée au résultat d'une cond
ANDconjonction logique appliqué entre les cond
ORalternative logique appliqué entre les cond

nom de variables

Les noms de variables sont insensibles à la casse. Tous les noms sont convertis en majuscules par le compilateur. Un nom peut avoir un maximum de 31 caractères, doit commencer par une lettre mais peut contenir des chiffres et le caractère '_'. Le type des variables peut-être déterminé de 2 façon.

  1. Par utilisation d'un caractère spécial à la fin du nom.
  2. AS INTEGER|STRING|BYTE|FLOAT
    exemple:
    
    		dim var1 as integer
    		dim var2 as string
    		dim var3 as byte, var4 as float
    	
    On a donc ici déclarer 4 variables, VAR1 de type entier 32 bits. VAR2 de type chaîne de caractères. VAR3 de type octet et finalement VAR4 de type float32.

valeurs litérales

Les valeurs litérales numérique peuvent-être saisie sous 3 formes:

  1. entier en décimal 23, -267 , -32560, 255
  2. entier en hexadécimal $23f2, $fff3
  3. virgule flottante 1.0, 3.23e-23

Les chaînes de caractères sont saisies entre guillemets '"'. Un caractère ASCII est saisie en le précédent de la barre oblique '\'

 example: 
>print "Hello world"
Hello world
>putc \a
a
>|

fonctions et sous-routines

Les paramètres des fonctions et sous-routines sont passées par valeur sauf si le nom de la variable est précédé du caractère '@'. Dans ce cas le paramètre doit-être le nom d'une variable qui est passée par référence.

example:
    sprite(10,10,8,8,@lem#) ' lem# est le nom d'une variable taleau qui contient un sprite.
                            ' ce tableau doit-être passé par référence.

Le type de la valeur retournée par une fonctions peut-être déterminé en utilisant un caractère spécial à la fin du nom de la fonction comme pour les variables. Le mot clé AS n'est pas supporté pour les fonctions et non plus pour la liste des arguments de FUNC et SUB. Le programmeur doit s'assurer qu'il passe des paramètres du bon type.

Si une fonction est appellée comme s'il s'agissait d'une sous-routine, la valeur retournée est simplement jetée comme c'est le cas dans le langage C.

commandes BASIC

index

Examples de programmes

En suivant ce lien vous trouverez quelque programmes écris en vpcBASIC.


INDEX