ASIC (langage de programmation)
ASIC est un langage de programmation, en fait un dialecte du BASIC, et aussi un compilateur diffusé en shareware pour DOS. Écrit par Dave Visti de 80/20 Software, il a atteint une brève popularité dans les années 1990 comme l'un des rares compilateurs BASIC légalement disponibles pour téléchargement à partir de BBS. Cependant, ASIC comprend seulement un petit sous-ensemble du langage BASIC, n'ayant peu ou pas de support pour les opérateurs logiques, les structures de contrôle et l'arithmétique en virgule flottante. Ces lacunes sont la raison pour laquelle la devise du logiciel fut « ASIC est presque un BASIC ! » [1][2].
Cependant, ASIC dispose d'un rudimentaire environnement de développement intégré et une bibliothèque de com RS-232 pour l'écriture de terminal et serveurs BBS, et n'exiger pas les numéros de ligne. La dernière version de ASIC, version 5.00, améliora la compatibilité avec GW -BASIC et a offert un utilitaire pour convertir des programmes GW-BASIC à la syntaxe ASIC.
ASIC permet la compilation d'un programme au format .EXE (MZ) ou .COM. La faible taille du format de fichier COM permet à ASIC de faire l'un des plus petits exécutables compilés du marché mondial, le programme écrivant « Bonjour » fait 360 octets.
Caractéristiques
modifierASIC est fortement pauvre par rapport à ses contemporains BASICs.
Expressions
modifierASIC n’a pas l’opérateur d’exponentiation ^
.
ASIC n’a pas d’opérateurs booléens (AND
, OR
, NOT
, etc.).
Entrées et sorties
modifierDes arguments de PRINT
doivent être un littéral ou une variable. PRINT
ne permet pas d'utiliser des valeurs d'expressions combinées comme ses arguments, et ne permet pas d'utiliser des chaînes concaténées avec ;
ou +
.
Si une commande PRINT
se termine par ;
, alors la prochaine commande PRINT
reprendra dans la position où celui-ci était arrêtée, comme si son argument a été annexé à l’argument de la commande PRINT
actuelle.
LOCATE ligne,colonne
- Déplace le curseur de texte à la position (
colonne
,ligne
), où 0 ≤colonne
et 0 ≤ligne
. La position (0, 0) est le coin supérieur gauche.
Graphique
modifierPSET (ligne, colonne),couleur
- Allume le pixel de la couleur
color
à la position (colonne
,ligne
), où 0 ≤colonne
et 0 ≤ligne
. La position (0, 0) est le coin supérieur gauche.
Structures de contrôle
modifierDécisions
modifierUne condition booléenne en IF
peut être seulement une comparaison des nombres ou des chaînes de caractères, mais pas une comparaison des expressions combinées.
Boucles
modifierEn FOR
, après TO
il y a peut-être seulement un nombre - littéral ou variable - mais pas une expression combinée. La clause STEP
n’existe pas en ASIC.
Utilitaire BAS2ASI
modifierCet utilitaire, qui sert à convertir les programmes GW-BASIC en syntaxe ASIC, dans la version 5.0 ne supporte pas certaines fonctionnalités de GW-BASIC. Exemples :
STEP
de la boucle for n’est pas converti. Le programme
10 FOR i=10 TO 1 STEP -1
20 PRINT i
30 NEXT i
est converti en
REM 10 FOR i=10 TO 1 STEP -1
FOR I@ = 10 TO 1
ASIC0@ = -1 -1
I@ = I@ + ASIC0@
REM 20 PRINT i
PRINT I@
REM 30 NEXT i REM 30 NEXT i 3: Syntax error
L’opérateur d’exponentiation (^
) n’est pas converti. Le programme
10 a=2
20 b=a^10
30 PRINT b
est converti en
REM 10 a=2
L10:
A@ = 2
REM 20 b=a^10
2: Syntax error
REM 30 PRINT b REM 30 PRINT b 3: Syntax error