ASIC (langage de programmation)

langage de programmation informatique

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

modifier

ASIC est fortement pauvre par rapport à ses contemporains BASICs.

Expressions

modifier

ASIC 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

modifier

Des 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

modifier
PSET (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

modifier

Décisions

modifier

Une 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

modifier

En 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

modifier

Cet 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

Liens externes

modifier