ASIC es un compilador y entorno de desarrollo integrado para un subconjunto del lenguaje de programación BASIC . Fue lanzado para MS-DOS y sistemas compatibles como shareware . Escrito por Dave Visti de 80/20 Software, fue uno de los pocos compiladores de BASIC disponibles legalmente para su descarga desde BBS . ASIC permite compilar a un archivo EXE o COM . Un archivo COM para el programa "Hola mundo" tiene 360 bytes. [ 3 ]
ASIC tiene poco o ningún soporte para operadores lógicos , estructuras de control [ 4 ] y aritmética de punto flotante . Estas deficiencias dieron lugar al lema irónico: "ASIC: ¡Es casi BASIC! " [ 5 ] [ 3 ]
Características
ASIC es mucho más limitado que sus contemporáneos BASIC. Las características de ASIC se seleccionaron para que un programa se pudiera compilar de forma fácil y directa a lenguaje máquina . Por lo tanto, muchas construcciones del lenguaje ASIC son equivalentes a construcciones del lenguaje ensamblador .
Elementos del programa
Ni los identificadores ni las palabras clave distinguen entre mayúsculas y minúsculas .
Cualquier DIMinstrucción, si se especifica, debe preceder a todas las demás instrucciones, excepto REMlas instrucciones o las líneas en blanco.
Todas DATAlas instrucciones deben colocarse al principio del programa, antes de todos los demás tipos de instrucciones, excepto DIMlas REMinstrucciones o las líneas en blanco.
Expresiones
ASIC no tiene el operador de exponenciación^ .
ASIC no tiene operadores booleanosAND ( , OR, NOTetc.).
Matrices
El tamaño del array especificado en la DIMinstrucción debe ser una constante literal. Una sola instrucción DIMpermite declarar un único array.
Entrada y salida
PRINTLos argumentos de deben ser un literal o una variable. PRINTNo permite expresiones combinadas como argumentos, ni cadenas concatenadas con ;o +.
Si un PRINTcomando termina con ;o ,, entonces el siguiente PRINTcomando continuará en la posición donde este se quedó, como si su argumento se hubiera añadido al argumento del PRINTcomando actual.
La PRINTinstrucción imprime valores enteros de seis caracteres de ancho. Están alineados a la derecha (sin espacios al final).
LOCATE row, column- Mueve el cursor de texto a la posición (
column,row), donde 0 ≤columny 0 ≤row. La posición (0, 0) es la esquina superior izquierda.
Gráficos
PSET (row,column),color- Activa el píxel del color
coloren la posición (column,row), donde 0 ≤columny 0 ≤row. La posición (0, 0) es la esquina superior izquierda.
Estructuras de control
Una condición booleana solo puede ser una comparación de números o cadenas, pero no una comparación de expresiones combinadas. Un literal no puede ser el operando izquierdo de la comparación (por ejemplo, puede ser X = 2, no 2 = X).
Decisiones
Después de THEN, puede haber una secuencia de instrucciones delimitadas por ELSEo ENDIF. Un ejemplo:
SI X < 0 ENTONCES IMPRIMIR "Negativo" SINO IMPRIMIR "No negativo" FIN SIA diferencia de otros BASIC, las instrucciones no se pueden colocar entre THENy el final de la línea.
Una sentencia if puede realizar el salto condicional. En este caso, después THENpuede haber una etiqueta.
Bucle
En FOR, después TOpuede haber solo un número (literal o variable), pero no una expresión combinada. La STEPcláusula no existe en ASIC.
Derivación
En una GOTOdeclaración, la etiqueta debe ir seguida de dos puntos.
Subrutinas
En una GOSUBdeclaración, la etiqueta debe ir seguida de dos puntos.
BAS2ASI
Esta utilidad, que sirve para convertir programas GW-BASIC a sintaxis ASIC, en la versión 5.0 no admite algunas características de GW-BASIC. Ejemplos:
STEPEn el bucle for no se convierte. El programa
10 PARA i = 10 HASTA 1 PASO -1 20 IMPRIMIR i 30 SIGUIENTE ise convierte en
REM 10 PARA i = 10 A 1 PASO -1 PARA I@ = 10 A 1 ASIC0@ = -1 -1 I@ = I@ + ASIC0@ REM 20 IMPRIMIR i IMPRIMIR I@ REM 30 SIGUIENTE i REM 30 SIGUIENTE i 3 : Error de sintaxisEl operador de exponenciación^ no se convierte. El programa
10 a = 2 20 b = a ^ 10 30 IMPRIMIR bse convierte en
REM 10 a = 2 L10: A@ = 2 REM 20 b = a ^ 10 2 : Error de sintaxisREM 30 PRINT b REM 30 PRINT b 3 : Error de sintaxisReferencias
- ↑ IBRARY: Biblioteca para el compilador ASIC. Versión actual: 3.1...David A. Visti , Catálogo - Actualizado: 1 de febrero de 1996, Charon Software
- ↑ ASIC 4.0 - Descargar
- 1 2 ASIC , Magia del código de área con AC Hunter (programa informático) (en disco) (evaluación), por George Campbell, COMPUTE! NÚMERO 126 / FEBRERO DE 1991 / PÁGINA 86
- ↑ En ASIC 3.01 (1991), el manual enumera FOR...NEXT , WHILE...WEND e IF...ENDIF , pero no sentencias switch , ni funciones o procedimientos con parámetros o variables locales , solo GOSUB para subrutinas . Los programas de ejemplo usan Goto en lugar de WHILE.
- ↑ ASIC es obra de David Visti y su compilador toma código que es "casi BASIC" y lo compila en un ejecutable muy pequeño. Archivado el 4 de noviembre de 2015 en Wayback Machine , Programmer's Corner: TIPI: Un pequeño lenguaje de programación para computadoras pequeñas, por Kent Peterson.
Enlaces externos
- ASIC 5.00 + Bibliotecas + Enlazador
- Categoría: Tareas ASIC implementadas en ASIC en rosettacode.org
- Familia de lenguajes de programación BASIC